【風變編程】第七課筆記


 

第七課

鏈接:[ 全文章目錄 ]

一、布爾值與布爾運算


(一)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)

 
 
鏈接:[ 全文章目錄 ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章