python1210作業
小作業3:
5. 嘗試實現一個管理系統
=======通訊錄管理系統=======
1.增加姓名和手機
2.刪除姓名
3.修改手機
4.查詢所有使用者
5.根據姓名查詢手機號
6.退出
============================
print('''=======通訊錄管理系統======= 1.增加姓名和手機 2.刪除姓名 3.修改手機 4.查詢所有使用者 5.根據姓名查詢手機號 6.退出 ============================''') dic={'程':139,'王':156,'範':438} while True: ls=[1,2,3,4,5,6] a=int(input('請輸入你要實現的功能:')) if a==ls[0]: x=input('請輸入你的姓名:') y=input('請輸入你的電話號碼:') dic[x]=y print(dic) continue elif a==ls[1]: Delete=input('請輸入你要刪除的姓名:') if x in dic: dic.pop(Delete) print('{}已刪除!'.format(Delete))else: print('查無此人!') continue elif a==ls[2]: b=input('請輸入想要修改的聯絡人:') if b in dic.keys(): c=input('請輸入新手機號') dic[b]=c print('修改完畢') else: print('輸入無效手機號') elif a==ls[3]: for i in dic.items():print(i) continue elif a==le[4]: d=input('請輸入你要查詢的姓名:') if d in dic: print('{}的手機號是:{}'.format(d,dic.get(d))) continue elif a==ls[5]: break
小作業4:
5. 隨機產生密碼:在26個大小寫字母和10個數字組成的列表中,隨機生成10個8位密碼
import random a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' a=list(a) for x in range(10): c='' for y in range(8): b=random.choice(a) c+=b print(c)
小作業5:
1.通過程式碼實現如下轉換:
二進位制轉換成十進位制:v = “0b1111011”
十進位制轉換成二進位制:v = 18
八進位制轉換成十進位制:v = “011”
十進位制轉換成八進位制:v = 30
十六進位制轉換成十進位制:v = “0x12”
十進位制轉換成十六進位制:v = 87
v1 = 0b1111011 print(v1) v2=18 v2='{:b}'.format(v2) print(v2) v3=0o011 v3=int(v3) print(v3) v4=30 v4='{:o}'.format(v4) print(v4) v5=0x12 print(v5) v6=87 v6='{:x}'.format(v6) print(v6)
3.求結果
v1 = 1 or 3 結果:1
v2 = 1 and 3 結果:3
v3 = 0 and 2 and 1 結果:0
v4 = 0 and 2 or 1 結果:1
v5 = 0 and 2 or 1 or 4 結果:1
v6 = 0 or False and 1 結果:False
7.求結果: a. [ i % 2 for i in range(10) ] b. ( i % 2 for i in range(10) )
結果:
a = [i % 2 for i in range(10) ] print(a) b = (i % 2 for i in range(10) ) print(b)
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
<generator object <genexpr> at 0x7fa11da1ba98>
8.求結果: a. 1 or 2 b. 1 and 2 c. 1 < (2==2) d. 1 < 2 == 2
結果:a=1,b=2,c=False,d=True
小作業6:
1.請寫出與 10 < cost < 50 等價的表示式
cost<50 and 10<cost
2.Python3 中,一行可以書寫多個語句嗎?
一行可以輸入多個語句,需要用分號隔開,如print("小甲魚");print("fishC")
Python3 中,一個語句可以分成多行書寫嗎?
可以
3.我們人類思維是習慣於“四捨五入”法,你有什麼辦法使得 int() 按照“四捨五入”的方式取整嗎?
a = [i % 2 for i in range(10) ] print(a) b = (i % 2 for i in range(10) ) print(b)
4.請用最快速度說出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or7 and 8 and 9
答案是4
5.愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,若每步上2階,最後剩1階;若每步上3階,最後剩2階;若每步上5階,最後剩4階;若每步上6階,最後剩5階;只有每步上7階,最後剛好一階也不剩。請程式設計求解該階梯至少有多少階?
for i in range(1000): if i % 2 ==1: if i % 3 ==2: if i % 5 ==4: if i % 6 ==5: if i % 7 ==0: print(i) break
6.假設有 x = 1,y = 2,z = 3,請問如何快速將三個變數的值互相交換?
x=1 y=2 z=3 x,y=y,x x,z=z,x print(x,y,z)
7.目測以下程式會列印什麼?
while True:
while True:
break
print(1)
print(2)
break
else:
print(3)
會打印出2
8.member.append(['竹林小溪', 'Crazy迷戀']) 和member.extend(['竹林小溪', 'Crazy迷戀']) 實現的效果一樣嗎?
不一樣。因為.append(['竹林小溪', 'Crazy迷戀'])是在member最後加上['竹林小溪', 'Crazy迷戀'],而member.extend(['竹林小溪', 'Crazy迷戀'])是在member在最後加上['竹林小溪', 'Crazy迷戀'], '竹林小溪', 'Crazy迷戀'
9.請問如何將下邊這個列表的'小笨蛋'修改為'小壞蛋'?
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18]
list1 = [1, [1, 2,['小笨蛋']],3, 5, 8, 13, 18] list1[1][2][0]='小壞蛋' print(list1)
10.要對一個列表進行順序排序,請問使用什麼方法?
print(x.sort())
11.要對一個列表進行逆序排序,請問使用什麼方法?
print(x.sort(reverse=True))
12.什麼情況下你需要使用元組而不是列表?
不需要對列表修改或需要安全性高時使用元組
當元組和列表掉下水,你會救誰?
救列表,因為列表不僅可以轉化為元組,還可以進行增刪改等元組不具備的功能
13.x, y, z = 1, 2, 3 請問x, y, z是元組嗎
不是,x,y,z = 1,2,3是賦值而不是元組
14.編寫一個進位制轉換程式(提示,十進位制轉換二進位制可以用bin()這個BIF)
a=int(input('請輸入你要轉換數的進位制(2,8,10,16):')) b=input('請輸入你要轉換的數:') c=int(input('請輸入你要轉換成的進位制(2,8,10,16):')) d=0 if a == 10: if c == 2: d=bin(int(b)) print(d) elif c == 8: d=oct(int(b)) print(d) elif c==16: d=hex(int(b)) print(d) elif a == 2: if c == 8: d=oct(int(b,2)) print(d) elif c == 10: d=int(b,2) print(d) elif c == 16: d=hex(int(b,2)) print(d) elif a == 8: if c == 2: d=bin(int(b,8)) print(d) elif c == 10: d=int(b,8) print(d) elif c == 16: d=hex(int(b,8)) print(d) elif a == 16: if c == 2: d=bin(int(b,16)) print(d) elif c == 10: d=int(b,16) print(d) elif c == 8: d=oct(int(b,16)) print(d)
15.我們根據列表、元祖和字串的共同特點,把它們三統稱為什麼?有什麼共性
稱為有序序列,可以遍歷、切片、求長度、求最大最小值、統計和索引
19.盒子裡有3個紅球,3個藍色球,4個黃球,現劉柱要從盒子裡拿出8個球,問有多少種情況
i=0 for r in range(1,4): for b in range(1,4): for y in range(1,5): if r+b+y == 8: print('紅:{},藍:{},黃:{}'.format(r,b,y)) i+=1 print('共有{}種情況'.format(i))
20.列印9 9乘法表
for a in range(1,10): for b in range(1,a+1): print('{}*{}={:2}'.format(b,a,a*b),end=' ') print()
21.猴子得到一堆桃,當天吃了一半之後,又多吃了1個。以後每天,猴子都吃了剩餘的一半桃子之後,又多吃一個。在第10天,只剩下1個桃子。輸出這堆桃最初有多少個。
for a in range(1,10): for b in range(1,a+1): print('{}*{}={:2}'.format(b,a,a*b),end=' ') print() [[email protected] day4-1]# cat hw13.py a=1 for i in range(9): a=(a+1)*2 print(a)