字符串操作
对字符串的操作
#String 内容
a = "Let's go"
乘法操作:
print('hellow'*2)
通过索引获得字符串中字符,这里和列表的切片操作是相同的,具体内容见列表:
print('hellow woeld'[2:])从位置2取到最后
成员运算符操作,字符中包含给定字符则返回True:
print('e2l' in 'hello') 存在返回True 不在返回False
例如:
print(123 in [12,123,1111])
结果:True
格式化字符串:
print('alex is a good teacher')
print('%s is a good teacher'%'alex')
字符串的拼接:
a='123'
b='456'
c = a+b
print(c)
结果:
123456
拼接:join方法
a='123'
b='abc'
c='000'
d = '#####'.join([a,b,c])
结果:
123####abc####000
python内置方法:
1 #_auther_="stuwu79" 2 #date:2019/9/27 3 4 st = 'hello kitty {name} is {age}' 5 st.count("l")#计算'l'个数 6 st.capitalize()#整个字符串首字母大写 7 st.center(50,'-')#(居中)打印50个字符,本身字符串在中间,剩下的两边补上'-' 8 st.rjust(50,"*") 9 st.ljust(50,"*")#只在左,其他补齐* 10 11 st.encode()#编码问题 12 13 14 st.endswith("y")#判断以什么结尾。正确给True,错误给False 15 st.startswith("h")#判断以什么开头 16 st.expandtabs(tabsize=20)#在字符串中间放\t设定插入空格数 17 18 st.find('l')#查找第一个元素在字符串的位置并且返回(空格也算位置) 19 st.index('t')#找不到就报错(给 -1) 20 21 st.format(name = 'alex',age = '37')#格式化输出的方式 22 st.format_map({'name':'alex','age':22})#意义相同,方式不同 23 24 'abc456'.isalnum() #不是特殊字符都给True 25 'AF00'.isdecimal() #判断是不是10进制 26 27 '12121212'.isdigit() #判断是不是整型 28 '121233'.isnumeric() #一样的 29 30 '1121324'.isidentifier()#判断是不是非法变量(根据变量命名规则) 31 32 'Abc'.islower()#判断是否是全小写(全大写) 33 'Abc'.isupper() 34 35 ' e'.isspace()#判断有没有空格 36 'adasda'.istitle()#判断是不是标题(每个单词首字母大写) 37 'adasdad'.lower()#所有大写变小写 38 'adasda'.upper() 39 'adasda'.swapcase()#翻转,大写变小写。小写变大写 40 41 ' asda\n'.strip()#前后的空格,换行符全去掉 42 ' asda\n'.lstrip()#只去除左边的 43 ' asda\n'.rstrip()#只去除右边的 44 45 'My title title'.replace('itle','lesson',1)#替换,某些内容替换成另一个内容可以控制替换几次 46 'My title title'.rfind('t')#从右向左找 47 'My title title'.split(' ')#以“ ”为分割对象对字符串进行分割(将字符串分割成列表) 48 'My title title'.title() #每个单词首字母大 49 50 51 #特别重要的字符串方法: 52 53 54 st.count("l")#计算'l'个数 55 st.startswith("h")#判断以什么开头 56 st.find('l')#查找第一个元素在字符串的位置并且返回(空格也算位置) 57 58 59 st.format(name = 'alex',age = '37')#格式化输出的方式 60 st.format_map({'name':'alex','age':22})#意义相同,方式不同 61 62 63 ' asda\n'.strip()#前后的空格,换行符全去掉 64 ' asda\n'.lstrip()#只去除左边的 65 ' asda\n'.rstrip()#只去除右边的 66 67 'My title title'.split(' ')#以“ ”为分割对象对字符串进行分割(将字符串分割成列表) 68 69 'My title title'.replace('itle','lesson',1)#替换,某些内容替换成另一个内容可以控制替换几次
三级菜单的实现:
本次实现重复代码较多:
1 #_auther_="stuwu79" 2 #date:2019/9/27 3 #要求:可以进入所有层 4 #可以退出或者返回上一层 5 menu = { 6 '北京':{ 7 '朝阳':{ 8 '国贸':{ 9 'CICC':{}, 10 'HP':{}, 11 'CCTV':{}, 12 }, 13 '望京':{ 14 '陌陌':{}, 15 '奔驰':{}, 16 '360':{}, 17 }, 18 '三里屯':{ 19 '优衣库':{}, 20 'apple':{}, 21 }, 22 }, 23 '昌平':{ 24 '沙河':{ 25 '老男孩':{}, 26 '阿泰包子':{}, 27 }, 28 '天通苑':{ 29 '链家':{}, 30 '我爱我家':{}, 31 }, 32 '回龙观':{}, 33 }, 34 '海淀':{ 35 '五道口':{ 36 "谷歌":{}, 37 "网易":{}, 38 "Sohu":{}, 39 "快手":{}, 40 }, 41 '中关村': { 42 "youku": {}, 43 "iqiyi": {}, 44 "汽车之家": {}, 45 "新东方": {}, 46 "QQ": {}, 47 }, 48 }, 49 }, 50 '上海':{ 51 '浦东':{ 52 "陆家嘴":{ 53 "CICC":{}, 54 "高盛":{}, 55 "摩根":{}, 56 }, 57 "外滩": {}, 58 }, 59 '闵行':{}, 60 '静安':{}, 61 }, 62 '山东':{ 63 "济南":{}, 64 "德州":{ 65 "乐陵":{ 66 "丁务镇":{}, 67 "居然镇":{}, 68 }, 69 "平原":{}, 70 }, 71 "青岛":{}, 72 }, 73 } 74 75 back_flag = False 76 exit_flag = False 77 78 while not back_flag and not exit_flag: 79 for key in menu : 80 print(key) 81 choice = input("1>>:").strip() 82 if choice == "q": 83 exit_flag = True 84 if choice in menu: 85 while not back_flag and not exit_flag:#让程序停在第二层 86 for key2 in menu[choice]: 87 print(key2) 88 choice2 = input("2>>:").strip() 89 if choice2 == "b": 90 back_flag = True 91 if choice2 == "q": 92 exit_flag = True 93 if choice2 in menu[choice]: 94 while not back_flag and not exit_flag: 95 for key3 in menu[choice][choice2]: 96 print(key3) 97 choice3 = input("3>>:").strip() 98 if choice3 == "b": 99 back_flag = True 100 if choice3 == "q": 101 exit_flag = True 102 if choice3 in menu[choice][choice2]: 103 while not back_flag and not exit_flag: 104 for key4 in menu[choice][choice2][choice3]: 105 print(key4) 106 choice4 = input("4>>:").strip() 107 print("last level") 108 if choice4 =="b": 109 back_flag = True 110 if choice4 == "q": 111 exit_flag = True 112 else: 113 back_flag = False 114 else: 115 back_flag = False 116 117 else: 118 back_flag = False
修改版本:
#_auther_="stuwu79"
#date:2019/9/27
#要求:可以进入所有层
#可以退出或者返回上一层
menu = {
'北京':{
'朝阳':{
'国贸':{
'CICC':{},
'HP':{},
'CCTV':{},
},
'望京':{
'陌陌':{},
'奔驰':{},
'360':{},
},
'三里屯':{
'优衣库':{},
'apple':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'阿泰包子':{},
},
'天通苑':{
'链家':{},
'我爱我家':{},
},
'回龙观':{},
},
'海淀':{
'五道口':{
"谷歌":{},
"网易":{},
"Sohu":{},
"快手":{},
},
'中关村': {
"youku": {},
"iqiyi": {},
"汽车之家": {},
"新东方": {},
"QQ": {},
},
},
},
'上海':{
'浦东':{
"陆家嘴":{
"CICC":{},
"高盛":{},
"摩根":{},
},
"外滩": {},
},
'闵行':{},
'静安':{},
},
'山东':{
"济南":{},
"德州":{
"乐陵":{
"丁务镇":{},
"居然镇":{},
},
"平原":{},
},
"青岛":{},
},
}
back_flag = False
exit_flag = False
while not back_flag and not exit_flag:
for key in menu :
print(key)
choice = input("1>>:").strip()
if choice == "q":
exit_flag = True
if choice in menu:
while not back_flag and not exit_flag:#让程序停在第二层
for key2 in menu[choice]:
print(key2)
choice2 = input("2>>:").strip()
if choice2 == "b":
back_flag = True
if choice2 == "q":
exit_flag = True
if choice2 in menu[choice]:
while not back_flag and not exit_flag:
for key3 in menu[choice][choice2]:
print(key3)
choice3 = input("3>>:").strip()
if choice3 == "b":
back_flag = True
if choice3 == "q":
exit_flag = True
if choice3 in menu[choice][choice2]:
while not back_flag and not exit_flag:
for key4 in menu[choice][choice2][choice3]:
print(key4)
choice4 = input("4>>:").strip()
print("last level")
if choice4 =="b":
back_flag = True
if choice4 == "q":
exit_flag = True
else:
back_flag = False
else:
back_flag = False
else:
back_flag = False