关键词
- 数据类型
- int, bool, str之间的相互转换
- 字符串的索引与切片
- 字符串的操作
数据类型
int 1 2 3 用于计算
bool True False 用户判断
str 'haojile' 存储少量数据 进行操作
list ['xiaoming', 123] 存储大量数据
元祖 ('haojile', 1, 23)
dict {'name':'xiaoming', 'age':16, 'sex':'nan'}
集合 {1, 2, 3, 'asdf’}
int, str, bool之间的相互转化
# int >> str i = 1 s = str(i) # str >> int i = int(str) # int >> bool # 只要是0, False,其他为True b = bool(i) print(b) # 后者效率高 while True: pass while 1: pass # str >> bool # 非空字符串都是True s if s: print('你输入的为空,请重新输入') else: pass
字符串的索引和切片
# 字符串的索引与切片 s = 'hello,world' # 索引 print(s[0]) print(s[2]) print(s[-1]) print(s[-2]) #切片 print(s[0:5]) #hello print(s[:]) print(s[0:0]) print(s[0:5:2] #[start,end,step] print(s[4:0:-1]) # olle print(s[4::-1]) # olleh print(s[4::-2]) # olh print(s[-1::-1]) # dlrow,olleh print(s[::-1])
字符串的操作
1 # 字符串的操作 2 s = 'forDIGNITY' 3 4 s1 = s.capitalize() # 首字母大写 5 s2 = s.upper() # 全部大写 6 s3 = s.lower() # 全部小写 7 print(s1, s2, s3) 8 9 # 验证码是否正确,不区分大小写, 三次机会 10 # verifyCode = 'ABcd' 11 # i = 0 12 # while i < 3: 13 # temp = input('请输入验证码: ') 14 # if temp.upper() == verifyCode.upper(): 15 # print('输出正确') 16 # else: 17 # print('请重新输入') 18 # i += 1 19 20 # 大小写翻转 21 s4 = s.swapcase() 22 print(s4) 23 24 # 每个隔开(特殊字符或者数字)的单词字母大写 25 s = 'hello world3i am%larry' 26 s5 = s.title() 27 28 # 居中, 空白填充 29 s = 'guess' 30 s6 = s.center(8) 31 s7 = s.center(20, '#') 32 33 # = 8 - 之前字符 34 s = 'gue ss' 35 s8 = s.expandtabs() 36 37 # 计算长度,汉字算作一 38 s = 'hello小明' 39 s9 = len(s) 40 print(s4, s5, s6, s7, s8, s9) 41 42 # 是否以特定字母开头或结尾 43 s = 'freedom the best' 44 s10 = s.startswith('free') 45 46 if s10: 47 pass 48 49 s11 = s.startswith('d', 4,6) 50 print(s10, s11) 51 52 # find通过元素找索引,找不到返回-1 53 # index通过元素着索引,找不到报错 54 s12 = s.find('e') 55 s13 = s.index('e') 56 print(s12, type(s13)) 57 58 # strip默认删除前后空格 59 # 指定字符,从前后删除,删完即停 60 s = ' &love&story% ' 61 s14 = s.strip() 62 s15 = s14.strip('&%') 63 print(s12, s13, s14, s15) 64 65 # strip情景案例 66 # 有时候会习惯性键入空格,导致出错,strip贴心守护 67 username = input('请输入名字:').strip() 68 if username == 'xiaoming': 69 print('you got it!') 70 71 # 删除左边空格 72 s17 = s.lstrip() 73 74 # 删除右边空格 75 s18 = s.rstrip() 76 77 # 计算元素或者切片出现的次数 78 s = 'nothing is perferct' 79 s19 = s.count('no') 80 s20 = s.count('e') 81 print(s19, s20) 82 83 # str -- list 84 s = ';harry;potter;glory' 85 s21 = s.split(';') 86 print(s21) 87 88 # format的三种方法,格式化输出 89 s = '我是{},年龄{},性别{}, 再说一次我叫{}'.format('xiaoming', 18, 'nan', 'xiaoming') 90 print(s) 91 92 s = '我是{0},年龄{1},性别{2},再说一次我叫{3}'.format('xiaoming', 18, 'nan') 93 print(s) 94 95 s = '我是{name},年龄{age},性别{sex}, 再说一次我叫{name}'.format(name ='xiaoming', sex='nan', age=18) 96 print(s) 97 98 # 替换 99 s = '哦啊哥好饿好皇宫护卫哦佛好饿好我' 100 s22 = s.replace('好饿','明显') 101 s23 = s.replace('好饿','明显', 1) 102 print(s22, s23) 103 104 # for 105 s = 'haojile' 106 for i in s: 107 print(i) 108 109 # 敏感词汇查找 110 s = 'fs苍井空hhaha' 111 if '苍井空' in s: 112 print('您的评论里有敏感词汇..')
习题
字符串的切片
# 字符串的切片 s = '132a4b5c' # 132 print(s[0:3]) # a4b print(s[3:6]) # 1245 print(s[0:7:2]) # 3ab print(s[1:6:2]) # c print(s[-1]) # ba3 print(s[5:0:-2])
字符串的操作
# 在变量name = " aleX laNb " 完成如下操作 name = " aleX laNb " # 移除name变量中的空格,并输出处理结果 n1 = name.strip() print(n1) # 移除n1中的al,并输出 n2 = n1[2:] print(n2) # 移除n1中的Nb,并输出 n3 = n1[:-2] print(n3) # 移除n1开头的a和结尾的b,并输入 n4 = n1[1:-1] print(n4) # 判断n1是否是以al开头 n5 = n1.startswith('al') print(n5) # 判断n1是否以Nb结尾 n6 = n1.endswith('Nb') print(n6) # 将n1中所有的l都替换成p,并输出 n7 = n1.replace('l', 'p') print(n7) # 将n1中的第一个l替换成p,并输出 n8 = n1.replace('l', 'p', 1) print(n8) # 将n1中的值根据所有的l分割,并输出 n9 = n1.split('l') print(n9) # 将n1中的值根据第一个l分割,并输出 n10 = n1.split('l', 1) print(n10) # 将n1中对应的值大写,并输出 n11 = n1.upper() print(n11) # 将n1中对应的值小写,并输出 n12 = n1.lower() print(n12) # 将n1中对应的值首字母a大写,并输出 n13 = n1.title() print(n13) # 判断n1中对应字幕l出现几次,并输出 n14 = n1.count('l') print(n14) # 如果判断n1中前四位l出现几次,并输出 n15 = n1.count('l', 4) print(n15) # 找到N对应的索引,如果找不到则报错,并输出 n16 = n1.index('N') print(n16) # 找到x对应的索引,如果找不到则返回-1,并输出 n17 = n1.find('x') print(n17) # 找到X le对应的索引,并输出结果 n18 = n1.find('X la') print(n18) # 反转 n19 = n1.reverse() print(n19) # 大小写反转 n20 = n1.swapcase() print(n20)
for & while 遍历字符串中的元素
# 使用while和for循环分别打印字符串s='asdfer'中的每个元素 s = 'asdfer' # for for i in s: print(i) # while i = 0 while i < len(s): temp = s[i] print(temp) i += 1
加法计算器
# 实现一个加法计算器 # 如:content = input('请输入内容: ') # 如用户输入: 5+9 5+ 9 5 + 9 # 先进行分割在加和计算 content = input('>>>').strip().split('+') sum = 0 for i in content: sum += int(i) print(sum)
求出字符串中整数的个数
# 计算用户输入的内容有几个整数 # 如:content = input('请输入内容: ') # 如 fsssae3fh890 j = 0 content = input('请输入内容: ').strip() for i in content: if i.isdigit(): j += 1 print(j) # while k = 0 count = 0 content = input('请输入内容: ').strip() while k < len(content): if content[k].isdigit(): count += 1 k += 1 print(count)