2018-08-22-day3

一、字符串

1.什么是字符串

  • 用单引号或双引号括起来的字符集就是字符串
    'jfcsiufcs',"ivisl "
  • 字符串中的每个独立的单元我们叫它字符
    例如:字符串'kjdnds'中'k','j'等

2、转义字符

说明python中没有字符类型,如果要表示字符,就是用一个长度为1的字符串表示
长度:指的就是字符串中字符的个数,例如:'abc'-长度是3,空格,Tab键都是1个字符

  • 转义字符的长度都为1
    a、通过\将一些特殊的字符转换成一个具有特殊功能或特殊意义的字符,这就是转义字符
    b、常见的转义字符
    \n-换行
    \t-制表符
    \-增加1个
    '-增加一个'
    ......
poem='床前明月光,疑是地上霜'
str1='abc\nbcd'
str2='abc\\bcd'
print(poem,'\n',str1,str2)
床前明月光,疑是地上霜 
 abc
bcd abc\bcd

3、Unicode编码

a、python中字符的编码采用的是Unicode编码
b、Unicode是采用两个字节对一个字符进行编码(2~15)
c、Unicode编码中包含了ASCII码
注:
将字符转换成指定的数值,这个过程就是编码
将数值转换成对应的符号的过程就是反编码

  • 将Unicode码转换成字符
    print(chr(0xA001))——ꀁ
  • 将字符转换成Unicode编码
    print(ord("樊"),ord('振'),ord('霖'))——27146 , 25391, 38678

二、获取字符

字符串实质可以看成一个不可变的序列,序列内容是字符,一旦字符确定,那么里面的字符和字符的位就不可变,例如:‘abc’

1、python中的字符串,可以通过下标(索引)来获取指定位置上的字符:字符串【索引】

说明:
a、字符串:可以是字符串值,也可以是字符串变量
b、[]:中括号是固定语法
c、索引:

  • 从0开始到字符串长度减一,
  • -1~-长度(-1对应的是最后一个字符,-2对应是倒数第二个字符)
    注意索引不能越界,否则会报错(产生异常)

2.获取部分字符(获取子串)——切片

  • 字符串[下标1:下标2]:从下标1开始,获取到下标2前的所有字符
  • 从下标1开始,每次下标值加一,一直加到下标二前可视为步进默认为1
    注意:下标1对应的位置一定要在下标2对应的位置前
str2='hello world'
print(str2[0:8])  #hello wo
print(str2[2:-1]) #llo worl
print(str2[2:14]) #llo world

切片操作时下标可以越界,越界时取到临界值

3、取字符串时的步进

字符串[下标1:下标2:步进]
从下标1开始获取,每次下标值增加步进值,每增加一次取一个字符,直到取到下标2前为止
注意:
a、步进是正数,那么下标1对应的字符的位置一定要在下标2对应的位置的前面
b、步进是负数,那么下标1对应的字符的位置一定要在下标2对应的位置的后面
c、下标2对应的字符是取不到的,因为只能取到下标2前一位

str3='hello world'
print(str3[0:5:2])   步进2:hlo  步进3: hl
print(str3[0:5:-1])  #无法取,第0位在第五位前面,而步进为负
print(str3[-1:5:-1]) #dlrow

4、 下标的省略

切片的时候,下标1和下标2是可以省略的

  • 下标1省略:默认从开头开始获取(开头可能是字符串的第一个字符,也可能是最后一个字符)
str4='good good study,day day up'
print(str4[:4])
print(str4[:4:-1])
  • 下标2省略:从下标1位置开始获取,获取到结束(结束可能是字符串的最后一个字符,也可能是第一个字符)
print(str4[1:])  
print(str4[3::-1])  #doog
print(str4[:]) #good good study,day day up
print(str4[::-1])  #pu yad yad,yduts doog doog

练习,将一个字符串中奇数位取出(从0位开始)

str='kjdsns'
print(str[1::2])

三、字符串的相关运算

1、+运算符

  • python支持两个字符串相加,其效果就是将两个字符串拼接在一起产生一个新的字符串
    注意:如果加的一边是字符串,那么另外一个也必须是字符串
print('abc'+'123')
str='world'
newstr='hello'+' '+str
print(newstr)

2、*运算符

str1* 整数(n):字符串重复n次

print('abc'*3)——abcabcabc

3、所有比较运算符

  • 比较相等'==',‘!=’
    str1='abc'
    print('abc'==str1)
    print(str1!='ab')
  • 比较大小‘>’,'<'
    str1>str2;str1<str2
    让str1中的每一位字符,分别和str2中每一位的字符依次比较直到不同为止,再看看不同字符中谁的编码值大或者小
print('abcd'>'abcde')  ——False

4、in和not in

str1 in str2:判断str1是否在str2中
结果是布尔值

print('abc'in'abcde')  ——True
print('abc'in'a1b22c3') ——False

5、获取字符串长度

字符串的长度指的是字符串中字符的个数
len()内置函数
str3='project'
print(len(str3),len('abc 123\n')) #7 8
空串(引号内什么都没有)

str4=''
print(len(str4))
len1=len(str3)
index=len1-1
print(str3[-1],str3[len(str3)-1],'\n',str3[index])

6、阻止转义

  • 在字符串的最前面添加r/R可以阻止转义
print('a\nb')  #b
print(r'a\nb') #a\nb
print(r'a\nb',R'a\nb\\') #a\nb a\nb\\

7.字符串的格式化

'格式符' %(格式符对应的值)
说明:

  • %是固定格式
  • 带格式符的字符串中有几个格式符,那么在后面的括号中就有几个和它一一对应的值
    %s——字符串
    %d——整数
    %f——浮点数 %.nf-
    %c——字符 可以将数字转换成字符拼接到字符串中
first_name='樊'
last_name='振霖'
age=21
name=first_name+last_name
print(name)

hello,xxx!今年x岁

new_str='hello,%s%s!今年%d岁。'%(first_name,last_name,age)
print(new_str)

金额:xx.xx

money=100
print('金额:%.2f元'%(money))

%c的用法

unit='$'
str5='金额:%.2f%c'%(money,unit)
char_code=94
new_str='%d对应的字符是%c'%(char_code,char_code)
print(new_str)

%x/%X

number=1000
newstr='%d的十六进制进制:%x'%(number,number)
print(newstr)

练习使用变量保存学生的名字,年龄和成绩
xxx今年xx岁,他的语文成绩是xxx。要求成绩只保留一位小数

name='樊振霖'
age=21
score=98
print('%s今年%d岁,他的语文成绩是%.1f。'%(name,age,score))

四、字符串中的相关方法

python为字符串提供了很多内置函数
使用方式是:字符串.函数()
注意:这些所有函数的功能都不会影响原来的字符串,而是产生一个新的字符串

1、capitalize()

将字符串的第一个字符转换成大写
str1='hello python'
newstr=str1.capitalize()
print(newstr,str1)
print('abc'.capitalize())——

2、center(width,fillchar)

让字符串变成width对应的长度,原内容居中,剩余部分使用fillchar的值来填充
width-整数 fillchar——任意字符
print('abc'.center(10,'')) ——**abc****

3、rjust(width,fillchar)

让字符串变成width长度,原内容靠右,剩余的部分使用fillchar填充
1 2 3 4————>001 002 003 004
number='1'
new_id=number.rjust(3,'0')
print(new_id)——001

4、count(str)

判断str值在原字符串中出现的次数
str——>字符串
print('abcaaa'.count('a'))

5、str1.join(str2)

在str2中的每个字符之间插入一个str1
print('+'.join('abc'))

6.str1.replace(old,new)

将str1中'old'全部替换成'new'
print('shdb'.replace('h','fg'))

7.str.endswith(str1)

判断字符串str是否以字符串str1结尾
print('dsobj'.endswith('bj'))

8、str.expandtabs(tabsize=8)

把字符串str中的tab符号转为空格,tab符号默认的空格数为8
str='abcd efg'
print(str.expandtabs(tabsize=3))

9.find(str)

检测 str 是否包含在字符串中,包含则返回最开始的索引值,没有则返回-1
print('abcd'.find('n'))

10、index(str)

跟find()方法一样,只不过如果str不在字符串中会报一个异常.
print('abcd'.index('b'))
print('abcd'.index('n'))

11.isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回 False
print('abcd'.isalnum()) ——True
print('ab12'.isalnum()) ——True
print('ab 12'.isalnum()) ——False

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 看章子怡训郑爽的推文看哭了……她说的我都懂……可是好像白懂了……也许我在故意悲观……但不管怎么说,现在的我,是一个...
    yani3927阅读 169评论 0 0
  • 偶然, 你的心情, 夹杂诗歌的韵味。 无语, 只是一瞬, 世界太繁华, 落寞, 与你独享。 明天, 告别今日荒芜。...
    Galory阅读 331评论 0 7