1. 程式人生 > 實用技巧 >自學Python-2 week!

自學Python-2 week!

一、copy用法

names2=names.copy()##淺copy假copy,無法改列表中帶列表,因為儲存模式關係,列表中帶列表儲存為單獨的片段。
淺copy的實現形式
p1=copy.copy(names)
p2=names[:]
p3=list(names)
淺copy的用處如聯合賬號!
import copy

names2=names.deepcopy(names)##深copy 深copy需要引用模組。

二、字串操作

name="Laugh snail"
names="my name is {name} and i am {year} old"
print(name.capitalize())#首字母大寫

print(name.count("a"))#查詢a的個數
print(name.center(50,"-"))#列印50個字元,不夠用-補全
print(name.endswith("il"))#判斷是否以il結尾
print(name.find('s'))#查詢的底標
print(names.format(name='snail',year='23'))#給{name}賦值
print(names.format_map({'name':'snail','year':'23'}))#字典形式
print('abc123'.isalnum())#是否是數字和字母
print('abc123'.isalpha())#是否是純英文字元
print('abc123'.isdecimal())#是否是十進位制
print('abc123'.isdigit())#是否是整數
print('abc123'.isidentifier())#判斷是不是合法的識別符號
print('abc123'.isspace())#判斷是否是一個空格
print('Abc123'.istitle())#判斷首字母是否大寫
print('Abc123'.isprintable())#判斷是否可以列印的檔案
print('Abc123'.isupper())#是否全是大寫
print('+'.join(['1','2','3','4']))#把字串用+相連
print(name.ljust(50,'*'))#字串50個字元,不夠用*在右側補全
print(name.rjust(50,'*'))#左
print('Aame'.lower())#改全小寫
print('Aame'.upper())#改全大寫
print("\nsnail\n".lstrip())#
print("\nsnail\n".rstrip())#
print("\nsnail\n".strip())
p=str.maketrans("abcdef",'123456')
print('snail'.translate(p))
print('snaill'.replace('l',"L",1))
print('snaill'.rfind('l'))#找到最右邊值的下標
print('s n ai l'.split('\n'))#根據空格取值
print('s n ai l'.split(' '))
print('s n\nai l'.splitlines())
print('Small Snail'.swapcase())#大小寫互換
print('mall Snail'.title())#首字母大寫
print('small snail'.zfill(20))#用0補全20位

三、小練習-簡單選單製作

lunch_list=[
("米飯",3),
('可樂',5),
('虎皮辣子燒茄子',20),
("西辣蛋",18),
('小炒肉',25),
('麻辣蝦尾',45),
("酸辣土豆絲",10),
('蒜薹炒肉',20),
('饃饃',2),
]
shopping_list=[]
money_spend=input("你錢包有多少錢:")
if money_spend.isdigit():##如果輸入的是整數
money_spend=int(money_spend)##數值整數型
while True:
for index,item in enumerate(lunch_list):
#print(lunch_list.index(item),item)
print(index,item)
user_choice=input("請填寫點餐序號,或輸入q退出>>>:")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice<len(lunch_list) and user_choice>=0:
P_item=lunch_list[user_choice]
if P_item[1]<=money_spend:#買的起
shopping_list.append(P_item)
money_spend-=P_item[1]
print("你選擇的商品是 %s ,你的餘額是 \033[31;1m%s\033[0m" % (P_item, money_spend))
else:
print("\033[41;1m你的餘額只剩[%s]啦,還買個毛線\033[0m" % money_spend)
elif user_choice>len(lunch_list):
print('不好意思無此商品!請睜大眼睛瞧仔細,重新選擇。')
else:
print("您所點的商品如下[%s] " % user_choice)
elif user_choice == 'q':
print("--------Lunch list------")
for p in shopping_list:
print(p)
print("你的餘額是:", money_spend)
exit()
else:
print("輸入錯誤!請輸入序號。")
四、字典操作
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
print(info)
print(info['stu1101'])#輸出key所對應的值
info['stu1101']='武藤蘭'#修改
info['stu1104']='cangjingkong'#增加
#del info['stu1101']#刪除
info.pop('stu1101')
info.popitem()#隨機刪除
print(info)
1,字典的合併
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
b={
'stu1101':'renzao',
1:2,
3:4
}
print(info.get(''))#安全查詢
print('stu1103' in info)#查詢是否在字典裡
print(info.values())#取字典中所有的值
print(info.keys())#字典所有的key
info.update(b)#合併更新info字典
print(info)
c=dict.fromkeys([6,7,8],'test')#新建字典並賦值
print(c)
print(info.items())#列印字典到列表
2.多層字典操作
av_catalog = {
"歐美":{
"www.youporn.com": ["很多免費的,世界最大的","質量一般"],
"www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"],
"letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"],
"x-art.com":["質量很高,真的很高","全部收費,屌比請繞過"]
},
"日韓":{
"tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","聽說是收費的"]
},
"大陸":{
"1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"]
}
}
av_catalog['大陸']['1024'][1]='可以在國內做映象'
av_catalog.setdefault('taiwan',{'www.baidu.com':[1,2]})#字典裡沒有則增加,有不做更改。
print(av_catalog)
3.字典的迴圈
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
for i in info: #字典的迴圈
print(i,info[i])
4.三級字典
# Author:linhui liu
data = {
'北京':{
"昌平":{
"沙河":["oldboy","test"],
"天通苑":["鏈家地產","我愛我家"]
},
"朝陽":{
"望京":["賓士","陌陌"],
"國貿":{"CICC","HP"},
"東直門":{"Advent","飛信"},
},
"海淀":{},
},
'山東':{
"德州":{},
"青島":{},
"濟南":{}
},
'廣東':{
"東莞":{},
"常熟":{},
"佛山":{},
},
}
exit_flag = False

while not exit_flag:
for i in data:
print(i)
choice = input("選擇進入1>>:")
if choice in data:
while not exit_flag:
for i2 in data[choice]:
print("\t",i2)
choice2 = input("選擇進入2>>:")
if choice2 in data[choice]:
while not exit_flag:
for i3 in data[choice][choice2]:
print("\t\t", i3)
choice3 = input("選擇進入3>>:")
if choice3 in data[choice][choice2]:
for i4 in data[choice][choice2][choice3]:
print("\t\t",i4)
choice4 = input("最後一層,按b返回>>:")
if choice4 == "b":
pass
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
加油!堅持!