2018-09-28day4-字符串(切片、字符串运算)

(补充):字符前面加r/R来阻止转义

字符串

python中可以把字符串看成是一个序列(容器),容器中内容只能是字符,每一个字符可以称为字符串中的元素。
字符串是一个不可变的序列,有序的(不可变指的是字符串中的每个字符,以及每个字符的位置不可变)

获取字符串中的单个字符

每一个字符串中的字符都会对应一个下标,下标是根据字符在字符串中的位置,从前往后依次增加的(第一个是0)

获取单个字符(下标不能越界)

语法:字符串[下标] ---> 根据下标获取字符串中的字符
说明:
字符串:可以是字符串的变量,也可以是字符串值
[]:固定写法
下标:0~字符串长度-1; -1 ~ -长度

str3 = 'python'
#p -->0   y -->1  t -->2 h-->3......n -->5
#n -->-1   0 -->-2  h -->-3 t-->-4......p -->-6

切片

获取部分字符

a.语法:字符串[起始下标:结束下标] -->获取字符串中从起始下标开始,到结束下标-1的字符
默认步长为1

注意:起始下标对应的字符一定要在结束下标对应的字符前面,否则取不到值。
str2 = '今天心情也要美美哒'
print(str2[1:-1])
#天心情也要美美

b.语法:字符串[ 起始下标:结束下标:步长] --> 从起始下标开始获取,每步长获取一个,获取到结束下标前一个为止
步长为正:从前往后取(起始下标对应的字符要在结束下标对应的字符前面,否则取不到值)
步长为负:从后往前取(起始下标对应的字符要在结束下标对应的字符后面,否则取不到值)

str5 = '海贼王、一拳超人、一人之下、进击的巨人'
print(str5[1:10:2])
#贼、拳人一
print(str5[10:0:-1])
#人一、人超拳一、王贼
切片时下标可以省略,省略不同下标有不同意义
str3 = '阁下何不同风起,扶摇直上九万里'
print(str3[:4])
#阁下何不
print(str3[:4:-1])
#里万九上直摇扶,起风
省略结束下标:字符[起始下标:] ---->从开始下标取,取到最后
str3 = '阁下何不同风起,扶摇直上九万里'
print(str3[-4:])
#上九万里
str3 = '阁下何不同风起,扶摇直上九万里'
print(str3[-4::-1])
#上直摇扶,起风同不何下阁
str3 = '阁下何不同风起,扶摇直上九万里'
print(str3[::-1])
#里万九上直摇扶,起风同不何下阁

注意:下标可以越界

字符串运算符

字符串支持+、*和比较运算符

+

字符串的+号运算符
字符串1 + 字符串2 --> 将字符串1和字符串2拼接在一起产生一个新的字符串

str4 = '玉树临风美少年'
str6 = '揽镜自顾夜不眠'
str7 = ' '
print(str4+str7+str6)
#玉树临风美少年 揽镜自顾夜不眠

*

字符串的*号运算符
字符串1 * n -->字符串1重复n次,产生一个新的字符串(n只能是数字)

str8 = '家有千金,行止由心!'
print(str8*3)
#家有千金,行止由心!家有千金,行止由心!家有千金,行止由心!

比较运算符

判断相等
print('abc' == 'abc')(判断字符串两边的值是否相等)
#True
print('abc' != 'ac')
#True

比较大小

从前往后,每个字符的编码值的大小,如果第一个相等就比第二个直到比到不相同为止 (如果都相等就是True)

print('zabcdef' > 'zbc')
#False
判断一个字符是否是数字字符,判断一个字符是否是字母字符(根据编码值比较)
char = '5'
print('0'<=char<='9')
#True          (判断char是否是数字字符)
char = 'H'
print('a'<=char<='z' or 'A' <=char<='z')    (判断判断char是否是字母字符)
##True

in和not in

字符串1 in 字符串2 --> 判断字符串1是否在字符串2中(字符串2是否包含字符串1)结果是布尔值。

print('ab' in 'abc')
#True
print('ab' in 'acd')
#False
print('ab' not in 'abc')
#False
print('ab' not in 'acd')
#True

len()函数

len是python内置函数,功能是用来获取序列的长度(容器中元素的个数)
len(序列)
字符串的长度就是字符串中字符的个数

str9 = '床前明月光\n疑是地上霜!'
print(len(str9))
#12
str9 = r'床前明月光\n疑是地上霜!'
#13
str9 = '你好吗?\u4eff\u5cff'
print(len(str9))
#6
str9 = '你好吗?\u4eff\u5cff'
print(str9[len(str9)-1])
#峿
str9 = '你好吗?\u4eff\u5cff'
print(str9[-len(str9)])
#你

%(格式字符串)

字符串的内部,通过格式占位符来表示字符串中变化的部分,然后在后面用值来填充变化的部分

语法:带有占位符的字符串 % (给占位符赋值的值)

注意:前面有多少个占位符,后边()中就必须有多少值。并且值的个数和值的类型要和前面的占位符一一对应

%s --->字符串
%d --->数字
%f --->浮点数
%.nf -->保留小数点后n位小数
%e -->用科学计数法格式浮点数
%c -->数字转字符

nsme = '叶玉'
age = 18
money = 19.699
message = '姓名:%s 年龄:%d 薪资:%.3f' %(nsme,age,money)
print(message)
#姓名:叶玉 年龄:18 薪资:19.699

字符串的内建函数

使用方法:字符串.方法名(参数)
capitalize():将字符串的第一个字符串转换为大写,返回一个新的字符串
如果第一个字符不是字母,就不转换

str1 = 'yeyu'
a = str1.capitalize()
print(a)
#Yeyu
字符串居中

center(width,fillchar)

str1 = '叶玉'
new_str = str1.center(8,'*')
print(new_str)
#***叶玉***
字符串左对齐

ljust(width,fillchar)

str1 = '叶玉'
new_str = str1.ljust(8,'*')
print(new_str)
#叶玉******
字符串右对齐

rjust(width,fillchar)

str1 = '叶玉'
new_str = str1.rjust(8,'*')
print(new_str)
#******叶玉

练习:根据进班顺序,添加学生号 例如 第一个人学号就是python0001

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

推荐阅读更多精彩内容