字符串的操作方法
capitalize() : 首字母大写
s1 = ‘my heart will go on‘
print(s1.capitalize()) #首字母大写
#执行结果:#My heart will go on
capitalize
upper() : 全部大写
s1 = ‘my heart will go on‘
print(s1.upper()) #全部转为大写
#执行结果:#MY HEART WILL GO ON
upper
lower() : 全部小写
s1 = ‘my heart will go on‘
print(s1.lower()) #全部转为小写
#执行结果:#my heart will go on
lower
这里写一个使用大小写转换的实例,验证码的比较:
auth_code = ‘KDwq‘
user_code = input(‘请输入验证码(不区分大小写):‘)
if user_code.upper() == auth_code.upper(): # 将验证码和用户输入的字符统一转换为大写进行比较;
print(‘验证成功.‘)
else:
print(‘验证失败.‘)
swapcase() : 大小写反转
s1 = ‘MY HEART will go ON‘
print(s1.swapcase()) #大小写反转;大写转换为小写,小写转换为大写
#执行结果:#my heart WILL GO on
swapcase
title(): 标题首字母大写
s1 = ‘MY HEART will go ON‘
print(s1.title()) #标题首字母大写,用空格隔开的每个单词都当作一个标题处理## 执行结果:#My Heart Will Go On
title
center(): 居中,默认填充空格
s1 = ‘MY HEART will go ON‘
print(s1.center(30, ‘#‘)) #居中显示,第一个参数是位宽int类型,第二个参数是占位符,str类型;
#执行结果:######MY HEART will go ON######
center
startswith(): 以什么开头,返回 bool 值
s1 = ‘nice to meeting you‘
print(s1.startswith(‘ni‘)) #判断以什么字符串开始,返回bool类型,正确返回 True,错误返回 False
#执行结果:#True
print(s1.startswith(‘no‘))#执行结果:#False
startswith
endswith(): 以什么结尾,返回 bool 值
s1 = ‘nice to meeting you‘
print(s1.endswith(‘you‘)) #判断以什么字符串结尾,返回bool类型,正确返回 True,错误返回 False
#执行结果:#True
print(s1.endswith(‘yyy‘))#执行结果:#False
endswith
find() 和 index() 都是通过元素找索引的方法,区别如下:
find()方法:元素存在打印索引,元素不存在返回 -1
index()方法:元素存在打印索引,元素不存在报错。错误信息:ValueError: substring not found
s1 = ‘nice to meeting you‘
print(s1.find(‘to‘))#执行结果:#5
print(s1.find(‘xxx‘))#执行结果:#-1
print(s1.index(‘to‘))#执行结果:#5
#print(s1.index(‘xxx‘))
#执行结果:#ValueError: substring not found
find 和 index
所以,在程序中应当使用 find() 来查找索引,尽量避免程序出现报错信息
strip(): 默认去除行首和行尾的空格;
rstrip() 从左删
lstrip() 从右删
s1 = ‘nice to meeting you‘
print(s1.strip()) #默认去除开头和结尾的空格部分;
#执行结果:#nice to meeting you
s1= ‘#######nice to meeting you#######‘
print(s1.strip(‘#‘)) #第一个参数为开头和结尾要去除的字符
#执行结果:#nice to meeting you
strip
count():统计字符串出现个数
s1 = ‘adfasdfasdfasdfertadf‘
print(s1.count(‘a‘)) #统计字符串出现的次数
#执行结果:#5
count
split(): 按照指定字符分隔成多个元素 str --> list
s1 = ‘nice to meeting you‘
print(s1.split()) #默认将字符串通过空格分隔并组成列表类型
#执行结果:#[‘nice‘, ‘to‘, ‘meeting‘, ‘you‘]
split
format 有三种用法:
print(‘我叫{}, 跟我念一遍:{}, 年龄:{}, 爱好:{}‘.format(‘clot‘, ‘clot‘, 20, ‘摄影‘))print(‘我叫{0}, 跟我念一遍:{0}, 年龄:{1}, 爱好:{2}‘.format(‘clot‘, 20, ‘摄影‘))print(‘我叫{name}, 跟我念一遍:{name}, 年龄:{age}, 爱好:{hobby}‘.format(name=‘clot‘, age=20, hobby=‘摄影‘))#执行结果:#
#我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影#我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影#我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影
format
replace(): 字符串替换
s1 = ‘nice to meeting you‘
print(s1.replace(‘meeting‘, ‘see‘)) #在字符串中,用第一个参数替换掉第二个参数,默认是匹配上则全部替换
#执行结果:#nice to see you
replace
isdigit(): 判断字符串是否全部是数字组成
s1 = ‘123123123123‘
print(s1.isdigit()) #判断字符串是否全部由数字组成,小数点无法匹配上,返回bool类型;
#执行结果:#True
isdigit
isalpha():判断字符串是否全是字母组成
s1 = ‘asdfasdf‘
print(s1.isalpha()) #判断字符串是否全部由字母组成,返回bool类型;
#执行结果:#True
isalpha
isalnum():判断字符串是否由数字和字母组成
s1 = ‘asdfa234asdf‘
print(s1.isalnum()) #判断字符串是否全部由字母或字母组成,返回bool类型;
#执行结果:#True
isalnum
作业题
1. 判断下列逻辑语句的 True、False
1) 1 > 1 or 3 > 4 or 4 > 5 and 2> 1 and 9 > 8 or 7 < 6
2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
3) 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2
2. 求出下列逻辑语句的值。
1) 8 or 3 and 4 or 2 and 0 or 9 and 7
2) 0 or 2 and 3 and 4 or 6 and 0 or 3
3) 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5
3. 下列结果是什么?
1) 6 or 2 > 1
2) 3 or 2 > 1
3) 0 or 5 < 4
4) 5 < 4 or 3
5) 2 > 1 or 6
6) 3 and 2 > 1
7) 0 and 3 > 1
8) 2 > 1 and 3
9) 3 > 1 and 0
10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
4. 写代码:计算 1-2+3...+99 中除了88意外所有数的总和?
以下 F 表示: False, T 表示:True1. 判断下列逻辑语句的 True、False1) 1 > 1 or 3 > 4 or 4 > 5 and 2> 1 and 9 > 8 or 7 < 6计算过程:#1 > 1 or 3 > 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#1 > 1 or 3 > 4 or F and 9 > 8 or 7 < 6#1 > 1 or 3 > 4 or F or 7 < 6#F or F or 7 < 6#F or 7 < 6#F
2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6计算过程:#F and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#F or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#F or F and 9 > 8 or 7 < 6#F or F or 7 < 6#F or 7 < 6#F
3) 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2计算过程:#1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2#F or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2#F or F or 9 < 8 and 4 > 6 or 3 < 2#F or F or F or 3 < 2#F or F or 3 < 2#F or 3 < 2#F
2. 求出下列逻辑语句的值。1) 8 or 3 and 4 or 2 and 0 or 9 and 7计算过程:#8 or 3 and 4 or 2 and 0 or 9 and 7#8 or 4 or 0 or 7#8 or 0 or 7#8 or 7#8
2) 0 or 2 and 3 and 4 or 6 and 0 or 3计算过程:#0 or 2 and 3 and 4 or 6 and 0 or 3#0 or 3 and 4 or 6 and 0 or 3#0 or 4 or 6 and 0 or 3#0 or 4 or 0 or 3#4 or 0 or 3#4 or 3#4
3) 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5计算过程:#5 and 9 or 10 and 2 or 3 and 5 or 4 or 5#9 or 10 and 2 or 3 and 5 or 4 or 5#9 or 2 or 3 and 5 or 4 or 5#9 or 2 or 5 or 4 or 5#9 or 5 or 4 or 5#9 or 4 or 5#9 or 5#9
3. 下列结果是什么?
提示:
(1)牢记优先级:not > and > or(2)and取值
从前往后,
(a) 第一个数的bool值为 False,那就直接返回第一个数(0就返回0,False就返回False);
(b) 如果第一个数的bool值为 True,第二个数的bool值为 False,则返回第二个数的值;
(c) 如果两个数的bool值都为True,则返回第二个数.
(d) 如果两个数的bool值都为False,则返回第一个数.
(3)or取值
从前往后,
(a) 第一个数的bool值为 False,那就直接返回第二个数;
(b) 如果第一个数的bool值为 True,第二个数的bool值为 False,则返回第一个数的值;
(c) 如果两个数的bool值都为True,则返回第一个数.
(d) 如果两个数的bool值都为False,则返回第二个数.1) 6 or 2 > 1计算过程:print(6 or 2 > 1)#6 or 2 > 1#6 or T#6
2) 3 or 2 > 1计算过程:print(6 or 2 > 1)#6 or 2 > 1#6 or T#6
3) 0 or 5 < 4计算过程:print(0 or 5 < 4)#0 or 5 < 4#0 or F#False
4) 5 < 4 or 3计算过程:print(5 < 4 or 3)#5 < 4 or 3#F or 3#3
5) 2 > 1 or 6计算过程:print(2 > 1 or 6)#2 > 1 or 6#T or 6#T
6) 3 and 2 > 1计算过程:print(3 and 2 > 1)#3 and 2 > 1#3 and T#T
7) 0 and 3 > 1计算过程:print(0 and 3 > 1)#0 and 3 > 1#0 and T#0
8) 2 > 1 and 3计算过程:print(2 > 1 and 3)#2 > 1 and 3#T and 3#3
9) 3 > 1 and0
计算过程:print(3 > 1 and0)#3 > 1 and 0#T and 0#0
10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2计算过程:print(3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2)#3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2#T and 2 or 2 < 3 and 3 and 4 or 3 > 2#2 or 2 < 3 and 3 and 4 or 3 > 2#2 or F and 3 and 4 or 3 > 2#2 or F and 4 or 3 > 2#2 or F or 3 > 2#2 or 3 > 2#2 or T#2
4. 写代码:计算 1-2+3...+99中除了88意外所有数的总和?
num=0
count=0while count < 100:
count+= 1 #count = count + 1 必须写在 continue 之前,否则进入死循环
if count == 88:continue
if count % 2: #获取奇数
num +=countelse:
num-=countprint(num)
作业题答案及分析过程
原文:https://www.cnblogs.com/hukey/p/9612961.html