03字符串

整理

字符串

1.什么是字符串

a.使用单引号或者双引号括起来的字符集就是字符串。
b.引号中单独的符号、数字、字幕等叫字符
c.转义字符:可以用来表示一些有特殊功能或者是特殊意义的字符(通过在固定的字符前加\)
\' -> '
\\ -> \
\n -> 换行
\t -> 制表符
\" -> "
转义字符,在计算字符串长度的时候,转义字符代表一个字符

2.python中阻止转义

可以通过在字符串前面加r或R,来阻止转义字符转义

str = r'\\1\n2'
print(str)
结果
\\1\n2
3.python字符串中的字符是Unicode编码

Unicode编码:使用16位对一个字符进行编码。编码的目的是让字符可以存储到计算机中。
Unicode码中包含了ASCII码,可以表示世界上所有的语言和符号

4.字符串比较大小,从字符串开始依次往后比较每个字符的大小,知道遇到字符不一样为止。

比较字符大小的时候,实质比的是他们编码的大小。

print('abc'>'b')
print('abc'>'aa')
print('Zbc'>'aa')
结果
False
True
False

获取字符串中的字符

1.获取字符串长度:(长度->字符串中字符的个数)

len是获取序列长度的内置函数

count=len('abc\n123')
print(count)
结果
7
2.通过下标获取字符串中的某一个字符

字符串中每个字符都对应一个下标(索引),我么可以通过索引值去获取固定的字符
'abc' --->a:0,b:1,c:2

str1='abc'
print(str1[0]) # a
print(str1[2]) # c

下标的范围:0 ~ 字符串长度-1;-1 ~ 字符串长度
获取字符的时候,索引值不能超过索引的范围,否则会报IndexError
print(str1[3]) # IndexError: string index out of range

print(str1[-1]) # c 获取字符串str1中的最后的字符
print(str1[-2]) # b 获取字符串str1中的倒数第二个字符
3.获取字符串中的部分字符:

字符串[开始下标:结束下标] --->获取字符串中从开始下标到结束下标的字符(包含开始下标对应的字符,不包含结束下标对应的字符)
要求:开始下标对应的字符,要在结束下标对应的字符前面
字符串[开始下标:结束下标:步进]
字符串[开始下标:结束下标] == 字符串[开始下标:结束下标:1]

# a.开始和结束下标都有值:开始下标对应的字符,要在结束下标对应的字符前面(步进是正数)
str3 ='hello python'
print(str3[6:12]) # python
print(str3[-6:12]) # python

# b.开始下标省略:从字符的最前面取到结束下标前
print(str3[:4]) # hell

# c.结束下标省略:从开始位置获取到字符串结束
print(str3[4:]) # o python

# d.两个都省略:获取整个字符串的内容
print(str3[:]) # hello python

# e.每两个取一个
print(str3[::2]) # hlopto

字符串运算符

1.+ : 字符串拼接

字符串1+字符串2

str1 = 'hello' +' '+ 'python'
print(str1)
结果
hello python

注意:+ 号两边要么都是数字,要么都是字符串。不能是一个数字一个字符串,例如print(12+'34')

2.*:让字符串重复

字符串**整数

str1='abc'*3
print(str1)
结果
abcabcabc
3. in

字符串1 in 字符串2 : 判断字符串1是否在字符串2中 --->在就是True,不在是False

result = 'a' in 'abc'
print(result) 
结果
True
4.not in

字符串1 not in z字符串2: 判断字符串1是否不在字符串2中 --->不在就是True,在是False

result='123' not in 'abc'
print(result) 
结果
True
5.格式字符串

格式:'占位符1占位符2'%(值1,值2)

str1 = 'abc%s12%s3'%('>>>','!!!') 
print(str1) 
结果
abc>>>12!!!3

%s --->字符串占位符(格式符)
%d --->整数占位符(格式符)
%f --->浮点数占位符
%c --->长度是一的字符串占位符(字符占位符)---可以给一个字符,也可以给字符的编码值

str2 = '-%s-%d-%f-%c'%('我是字符串',123,12.4,'k')
print(str2)
结果
-我是字符串-123-12.400000-k

%.nf : 使用n值限制小数点后面的小数的位数(默认六位小数)

str3 = '金额:%.2f元'%(100)
print(str3) 
结果
金额:100.00元

如果后面没有加%,那么这个字符串只是一个普通的字符串

str3 = '金额%.2f元'
print(str3) 
结果
金额%.2f元

%x和%X --->十六进制数据占位符

number = 15
# XXX的十六进制是XXXX
str4 = '%d的十六进制是%x'%(number,number)
print(str4)
结果
15的十六进制是f
6.格式化输出
name = '陈酌'
age = 18
# XX今年xx岁
print('%s今年%d岁'%(name,age))
结果
陈酌今年18岁

字符串相关方法

字符串相关方法的通用格式:字符串.函数()

1.capitalize:将字符串的首字母转换成大写字母,并且创建一个新的字符串返回
str1 = 'abc'
new_str=str1.capitalize()
print(str1,new_str)
结果
abc Abc
2.center(width,fillchar):将原字符串变成指定长度并且内容居中,剩下的部分使用指定的字符填充
new_str = str1.center(7,'*')
print(str1,new_str) 
结果
**abc**
3.rjust(width,fillchar):
new_str = str1.rjust(7,'*')
print(new_str)
结果
****abc
4.ljust(width,fillchar):左对齐
number = 44
num_str = str(number)
new_str = num_str.ljust(4,'0')
new_str = '幸运数字'+new_str
print(new_str)
结果
幸运数字4400
5.字符串1.join(字符串2):在字符串2中的每个字符串之间插入一个字符串1
new_str = '*'.join('bbb')
print(new_str) 
结果
b*b*b
6.maketrans()
new_str = 'abc'.maketrans('abc','bbb')
print(new_str)  
结果
{97: 98, 98: 98, 99: 98} 

if语句

if语句
结构
1.if 条件语句:
条件语句结果为True执行的代码块
执行过程:先判断条件语句是否为True,如果为True就执行if语句后:后面对应的一个缩进的所有代码。
为False,就不执行冒号后面一个缩进的代码块,直接执行后续的其他语句
条件语句:可以是任何有值的表达式,但是一般是布尔值
if:关键字

if True:
    print('代码1')
    print('代码2')
    print('代码3')
print('代码4\n')

if False:
    print('代码1')
    print('代码2')
    print('代码3')
print('代码4')

结果
代码1
代码2
代码3
代码4

代码4

练习:用一个变量保存时间(50米短跑),如果时间小于8秒,打印及格

time = 6.3
if time<8:
    print('及格') # 只有条件成立的时候才会执行
print(time) # 不管if语句的条件是否成立,这个语句都会执行
结果
及格
6.3

2.if 条件语句
语句块1
else:
语句块2
执行过程:先判断条条件语句是否为True,如果为True就执行语句块1,否则执行语句块2

练习:用一个变量保存成绩,如果成绩大于等于60,打印及格,否则打印不及格

score = 100
if score >= 60:
    print('及格')
else:
    print('不及格')
结果
及格

作业

2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。

name = 'chenzhuo'
print('hello'+' '+name+', '+'would you like to learn some Python today?')
结果
hello chenzhuo, would you like to learn some Python today?

2-4 调整名字的大小写: 将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。

name = 'chenzhuo'
print(name.lower())# 小写
print(name.swapcase())# 大写
print(name.capitalize())# 首字母大写
结果
chenzhuo
CHENZHUO
Chenzhuo

2-5 名言: 找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):Albert Einstein once said, “A person who never made a mistake never tried anything new.”

print('Steve Jobs once said,“Stay Hungry,Stay Foolish.”')
结果
Steve Jobs once said,“Stay Hungry,Stay Foolish.”

2-6 名言2: 重复练习2-5,但将名人的姓名存储在变量famous_person 中,再创建要显示的消息,并将其存储在变量message 中,然后打印这条消息。

famous_person = 'Steve Jobs'
message = 'once said,“Stay Hungry,Stay Foolish.”'
print(famous_person+' '+message)
结果
Steve Jobs once said,“Stay Hungry,Stay Foolish.”

2-7 剔除人名中的空白: 存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"\t" 和"\n" 各一次。 打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数lstrip() 、rstrip() 和strip() 对人名进行处理,并将结果打印出来。

name = 'chenzhuo'
print(name)
结果
chenzhuo


name = '\tchenzhuo'
print(name)
print(name.lstrip())
结果
    chenzhuo
chenzhuo


name = 'chenzhuo \n'
print(name)
print(name.rstrip())
结果
chenzhuo 

chenzhuo


name = '\t chenzhuo \n'
print(name)
print(name.strip())
结果
     chenzhuo 

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

推荐阅读更多精彩内容