字符串操作

对字符串的操作

#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
posted @ 2019-10-08 12:33  戚玖  阅读(172)  评论(0编辑  收藏  举报