python学习笔记(字符串操作、字典操作、三级菜单实例)

字符串操作

name = "alex"
print(name.capitalize()) #首字母大写
name = "my name is alex"
print(name.count("a")) #统计字母"a"的数量
复制代码
print(name.center(50,"-")) #一共打印50个字符,变量name在中间,其余用"-"补足
print(name.endswith("ex")) #判断以什么字符为结尾,返回值为:True或False
print(name.expandtabs(tabsize=30)) #在字符变量中加制表符"\t",在输出时把制表符"\t"转成30个空格
print(name.find("name")) #返回值为匹配查找的字符串起始下标
print(name[name.find("name"):8]) #字符串切片,取出name
print(name[name.find("name"):]) #字符串切片,取出从name开始到最后

name = "my \tname is {name} and I am {year} old"
print(name.format(name='alex',year=23)) #format用法
print(name.format_map({'name':'alex','year':12})) #format_map用法,就是字典,很少使用。
print('ab123'.isalnum()) #判断变量或字符串只有字母或阿拉伯数字的时候,返回"True",有特殊字符的时候返回"False"
print('ab'.isalpha()) #判断变量或字符串只有字母的时候,返回"True",其余情况返回"False"
print('3'.isdecimal()) #判断是否是十进制,是返回"True",不是返回"False"
print('11'.isdigit()) #判断是否整数
print('A_'.isidentifier()) #判断是不是一个合法的标识符(变量名)
print('333'.isnumeric()) #判断是不是纯数字组成(不能有小数点)
print(' '.isspace()) #判断是不是空格
print('My Name Is'.istitle()) #是否首字母大写。返回"True"
print('My Name Is'.isprintable()) #tty file,dirve file
print('My Name Is'.isupper()) #是否全部为大写
print('+'.join(['1','2','3']) ) #运行结果:1+2+3,join以后是常用语法
print(','.join(['1','2','3']) ) #运行结果:1,2,3
print(name.ljust(50,'*') ) #输出总长度为50个字符,不够用"*"补足,变量在左边
print(name.rjust(50,'*') ) #输出总长度为50个字符,不够用"*"补足,变量在右边
print('Alex'.lower()) #把大写变成小写
print('Alex'.upper()) #把小写变成大写
print('\nAlex'.lstrip() ) #从左边去除空格或回车
print('Alex\n'.rstrip() ) #c从右边去除空格或回车
print('    Alex\n'.strip() ) #两边都去除空格或回车

p = str.maketrans("abcdef",'123456') #需要一一对应
print("alex li".translate(p) ) #返回值:1l5x li
print('alex li'.replace('l','L',1) ) #指定下标的字母"l"替换成"L"
print('alex li'.rfind('l')) #查找到最后一个匹配值的下标
print('alex li'.split()) #默认按照空格把字符串分割成列表。返回值:['alex', 'li']
print('alex li'.split('l')) #按照字母'l',把字符串分割为列表。返回值:['a', 'ex ', 'i']
print('1+2+3+4'.split('+')) #返回值:['1', '2', '3', '4']
print('1+2\n+3+4'.splitlines()) #识别换行符分割为列表。返回值:['1+2', '+3+4']
print('Alex Li'.swapcase()) #大小写反转。返回值:aLEX lI
print('lex li'.title()) #把首字母大写。返回值:Lex Li
print('lex li'.zfill(50)) #用"0"补位。返回值:00000000000000000000000000000000000000000000lex li
复制代码

 

字典操作

字典,一种key-value的数据类型,使用就行我们上学用的字典,通过笔划、字母来查对应页的详细内容。

字典是无序的,它没有下标

语法:

info = {
    'stu1101':"TengLan Wu",
    'stu1102':"LongZe LuoLa",
    'stu1103':"XiaoZe MaLiya",
}

 

字典操作

修改:

info["stu1101"] ="武藤兰" #修改
info["stu1104"] ="CangJinkong" #如果key不存在就创建

删除:

del info["stu1101"] #删除
info.pop("stu1101") #删除
info.popitem() #随机删除

查找:

info['stu1101'] #必须确定字典中有这个key,不然会报错

print(info.get('stu1103')) #安全的查找方法,不会报错
print('stu1103' in info)  #info.has_key("stu1103") in py2.x

字典的其他操作:

复制代码
info = {
    'stu1101':"TengLan Wu",
    'stu1102':"LongZe LuoLa",
    'stu1103':"XiaoZe MaLiya",
}
b = {
    'stu1101':"Alex Li",
    1:3,
    2:5,
    }

print(info.values()) #输出字典中的值
print(info.keys()) #输出字典中的key
info.setdefault("stu1101","abc") #如果key存在,不改变任何值;如果key不存在,则创建key并赋值
info.update(b) #合并字典,并且更新对应的key的值
print(info)
复制代码
c = dict.fromkeys([6,7,8]) #初始化一个字典
print(c)

字典循环:

复制代码
info = {
    'stu1101':"TengLan Wu",
    'stu1102':"LongZe LuoLa",
    'stu1103':"XiaoZe MaLiya",
}

for i in info:  #推荐用此方法
    print(i,info[i])  
for k,v in info.items(): #不推荐使用,先要把字典转成列表,如果数据量大,效率大大降低
    print(k,v)
复制代码
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}

jump_flag = False

while not jump_flag:
for i in menu:
print(i)
user_choice = input("你要选哪个 :")
if user_choice in menu :
while not jump_flag:
for j in menu[user_choice]:
print("\t",j)

user_choice2 = input("which one : " )
if user_choice2 in menu[user_choice]:
while not jump_flag:
for k in menu[user_choice][user_choice2]:
print("\t\t",k)
user_choice3 = input("which one")
if user_choice3 in menu[user_choice][user_choice2]:
for z in menu[user_choice][user_choice2][user_choice3]:
print("\t\t",z)
user_choice4 = input("最后一层返回 :")
if user_choice4 == 'b' :
pass
elif user_choice4 == 'q':
jump_flag = True
if user_choice3 == 'b':
break
elif user_choice3 == 'q':
jump_flag = True
if user_choice2 == 'b':
break
elif user_choice2 == 'q':
jump_flag = True
posted @ 2017-07-06 11:21  骑着蜗牛溜小二  Views(166)  Comments(0)    收藏  举报