python学习日记——day 2

一、模块初识

标准库:不需要安装可以直接导入

sys模块:一般放在lib/site-packages

Import 调用当前目录下的库,所以用直接写的库,可以将文件放在lib/site-packages

.pyc里存的是预编译后的自解码文件

第三方库:需要下载安装才能使用

二、字符操作大全

name="jin"
print (name.capitalize()) #首字母大写
print (name.center(50,"2")) #将name打印50个字符,不够的用 2补上,形成2222222jin22222
print (name.rjust(50,"2")) #将neme打印50个字符,前面不够用2补上
print (name.endswith("ex")) #判断字符串以什么结尾
print (name.find("n")) #查找字符位置
print (name[name.find("i"):]) #字符串切片,从i到末尾
print ("ab123".isalnum()) #只能有字母和数字,判断是否有特殊字符
print ("ab123".isalpha()) #只能有纯字母
print("1A".isdecimal()) #十进制反True,十六进制false

print("1A".isdigit()) #是否存在数字(字符数字也算)
print("a 1A".isidentifier()) #判断是不是一个合法的标识符
print("33".isnumeric()) #判断是不是只有数字,一般用isdigit
print("My Name Is".istitle()) #判断每个首字母是不是大写
print("My Name Is".isprintable()) # 判断是不是可以打印 tty file ,drive file 是不可打印
print("MY".isupper()) #判断是不是全大写
print("+".join( ["1","2","3"])) #将+放入字符中,输出1+2+3
print ("Jin".lower() ) #大写变小写
print ("Jin".upper() ) #小写变大写
print ("\nJin".lstrip() ) #去左边空格
print ("\nJin".rstrip() ) #去右边空格
print( " Jin \n".strip()) #去两边空格

p = str.maketrans("abcdef",'123456')
print("alex li".translate(p)) #先将abcdef与123456对换,然后将alex li 里面的字母换成对应的数字
print ("alex li ".replace("1","L",1)) #将l换成L,只换一个
print ("alex li ".rfind('l')) #从左往右数,找到最右边那个值得下标
print("al ex li".split("l")) #将字 符串按括号里的东西分割成列表
print ("1+2\n+3+4" .splitlines()) #按换行符分成列表
print ("Alex LI" .swapcase()) #大写变小写,小写变大写
print ("i love tiananmen".title()) #变成标题,首字母大写
print ("lex li ".zfill(50)) #用0自动往前补位,补满50位

三、字典的使用
1.删除
info={'class1':"xiaowang"
   
'class2':"lihua"
    'class3':"zhangqiang"

}
del info["class1"] #第一种
info.pop("class1") #第二种
info.popitem # 随机删除一个
2.更改
info={'class1':"xiaowang"
   
'class2':"lihua"
    'class3':"zhangqiang"

    }

info["class1"]="liuxiang"
#如果增加的是不存在的,例如class4,则增加一个 class4:liuxiang


3.其他操作
info.values() #打印除了key的所有值
info.key #打印所有key值

_________________________________________
'class5'={"yangzi":["good","beautiful"]
    
     }
info.setdefault("yangzi":["good","beautiful"])  #在原有的里面去取yangzi这个值,如果有,则返回这个值
info.setdefault("yangzi":["handsome","smart"])   #在原有的里面去寻找yangzi这个值,如果没有,就创建一个新的
______________________________________
info={'class1':"xiaowang"
   
'class2':"lihua"
    'class3':"zhangqiang"

    }
b={'class1':"laotie",
  1:2,
  3:4}
info.update(b)
print (info)


输出结果为:
info={'class1':"laotie"
   
'class2':"lihua",1:2,
    'class3':"zhangqiang",3:4

    }
#效果为:有交叉,则更新,没有交叉就增加

————————————————————————
info.item() #将一个字典转换成列表
c=dict.fromkys([1,2,3],"test") #初始化一个新的字典,key写好了,并且赋予了一个初始的值。PS:修改这个字典,则会修改里面所有key的内容,三个key共享一个内存地址。

最后,字典循环

for i in info:
  print (i,info[i]) #方法一,建议使用的循环方式,速度快


for k,v in info.item():
  print (k,v) #方法二,字典转换成列表,再循环,当数据量过大,会浪费太多转换时间


练习:创建三级菜单
China ={
'四川':{
"广安":{
"岳池":
["一号桥","二号桥","三号桥"],
"武胜":
["牛肉","火锅","米粉"]},
"成都":{
"锦江":
["火锅","米饭","大盘鸡"],

"金牛":
["珍珠奶茶","方便面","巧克力"]

}
},
'广东':{

},
'贵州':{

}
}
exit_flag= False

while not exit_flag:
for i in China:
print (i)

choice=input("请输入选择>>:")
if choice in China:
while not exit_flag:
for i2 in China [choice]:
print ("\t",i2) #打印第一层目录
choice2= input("请输入选择>>:")
if choice2 in China [choice]:
while not exit_flag:
for i3 in China [choice][choice2]:
print (i3) #打印第二层目录
choice3 = input("请输入选择>>:")
if choice3 in China [choice][choice2]:
while not exit_flag:
for i4 in China [choice][choice2][choice3]:
print ("\t\t",i4) #打印第三层目录
choice4 =input("最后一层,返回按b:")
if choice4 =="b":
break
elif choice4== "q":
exit_flag = True
if choice3=="b":
break
elif choice3 == "q":
exit_flag = True
if choice2 == "b":
break
elif choice2 == "q":
exit_flag = True

#在做多级菜单的时候,一定要要注意循环嵌套的排版。

猜你喜欢

转载自www.cnblogs.com/jin9958/p/11372669.html
今日推荐