python基礎語法
第七課
一、布爾值與布爾運算
(一)bool()函數
判斷真假
bool(False)
輸出:
False
(二)and、or、not、in、not in五種運算
二、break、continue、pass、else語句
(一)簡單解釋
(二)else
當循環中沒有碰到break語句,就會執行循環後面的else語句,否則就不會執行。
for i in range(5):
a = int(input('請輸入0結束循環,你有5次機會:'))
if a == 0:
print('你觸發了break語句,導致else語句不會生效。')
break
else:
print('5次循環你都錯過了,else語句生效了。')
INF、練習題
(一)囚徒困境
練習要求:
假設有兩名囚徒A和B因爲合夥犯罪被抓捕,因沒有確鑿可以指認罪行的證據,審判者準備單獨審判兩位囚徒。
1.若兩人都認罪,則兩人各判10年;
2.若一個認罪一個抵賴,則認罪的人判1年,抵賴的人判20年;
3.若兩人都抵賴,則各判3年。
現在,請寫個代碼:當兩人都抵賴時,打印判決,代碼結束;若爲其他結果,則在打印判決後繼續循環。
(二)記錄困境中的選擇
練習要求:
上一個練習,我們將“囚徒困境”寫成了代碼,讓程序收集兩名囚犯的認罪情況,進而決定他們的判決:
兩人都認罪,則各判10年;一個認罪一個抵賴,則前者判1年,後者判20年;兩人都抵賴,各判3年。只有兩人都不認罪,程序纔會停止。
現在有一個社會學家,在不同的人羣中做這個實驗,一旦遇到都不認罪的情況,就停止該人羣中的實驗。
同時,他希望程序能記錄每一對實驗者的選擇,以及記錄第幾對實驗者都選擇不認罪。請你幫幫他吧。
(三)演員的作品
練習要求:
我很喜歡看電影,我回憶了一下,這兩年我覺得還不錯的國產電影。
下面,會將電影的影片名和主演放在字典裏,如:
movie = {'妖貓傳':['黃軒','染谷將太']}
需要你補充一些代碼,讓其他人只要輸入演員名,就打印出:××出演了電影××。
INF+1、練習題答案
(一)囚徒困境
考察點:
1.while True
2.break
while True:
a = input('A,你認罪嗎?請回答認罪或者不認')
b = input('B,你認罪嗎?請回答認罪或者不認')
if a == '認罪' and b == '認罪':
print('兩人都得判10年,唉')
elif a == '不認' and b == '認罪':
print('A判20年,B判1年,唉')
elif a == '認罪' and b == '不認':
print('A判1年,B判20年')
else:
print('都判3年,太棒了')
break # 當滿足開頭提到的條件時,跳出循環。
(二)記錄困境中的選擇
考察點:
1.for循環
2.range()函數
n = 0
list_answer = []
while True:
n += 1
a = input('A,你認罪嗎?請回答認罪或者不認:')
b = input('B,你認罪嗎?請回答認罪或者不認:')
list_answer.append([a,b]) # 用列表嵌套的方式來存放實驗者的選擇,也可用元組或字典。
if a == '認罪' and b == '認罪':
print('兩人都得判10年,唉')
elif a == '不認' and b == '認罪':
print('A判20年,B判1年,唉')
elif a == '認罪' and b == '不認':
print('A判1年,B判20年')
else:
print('都判3年,太棒了')
break
print('第' + str(n) + '對實驗者選了最優解。')
for i in range(n):
# 注意數據類型的轉換,以及計數起點的不同(0和1)
print('第' + str(i+1) + '對實驗者的選擇是:' + str(list_answer[i]))
(三)演員的作品
考察點:
1.數據提取
2.條件判斷
movies = {
'妖貓傳':['黃軒','染谷將太'],
'無問西東':['章子怡','王力宏','祖峯'],
'超時空同居':['雷佳音','佟麗婭'],
}
actor = input('你想查詢哪個演員?')
for movie in movies: # 用 for 遍歷字典
actors = movies[movie] # 讀取各個字典的主演表
if actor in actors:
print(actor + '出演了電影' + movie)