1. 程式人生 > 其它 >PYTHON奇幻冒險記13 大偵探福爾摩斯

PYTHON奇幻冒險記13 大偵探福爾摩斯

技術標籤:Python奇幻冒險python

PYTHON奇幻冒險記13 大偵探福爾摩斯

第十三節 大偵探福爾摩斯

在這裡插入圖片描述

文章目錄


故事前言

假設有兩名囚徒A和B因為合夥犯罪被抓捕,因沒有確鑿可以指認罪行的證據,審判者準備單獨審判兩位囚徒。
若兩人都認罪,則兩人各判10年;若一個認罪一個抵賴,則認罪的人判1年,抵賴的人判20年;若兩人都抵賴,則各判3年。

判決提示:
若兩人都認罪,則兩人各判10年,審判結束;
若一個認罪一個抵賴,則認罪的人判1年,抵賴的人判20年,繼續審判,直到都認罪;
若兩人都抵賴,各判3年,還要繼續審判,直到都認罪。

大家想想,我們應該如何設計程式碼呢?

參考程式碼如下:

while True:
    
    a = input('A,你認罪嗎?請回答認罪或者不認:')
    b = input('B,你認罪嗎?請回答認罪或者不認:')
    if a == '認罪' and b == '認罪':
        print('兩人都得判10年')
        break
    elif a == '不認' and b == '認罪':
        print('A判20年,B判1年')
        continue
    elif a == '認罪' and b == '不認':
        print
('A判1年,B判20年') continue elif a == '不認' and b == '不認': print('都判3年,太狡猾了') continue else: print('別搗亂,只能回答“認罪”或“不認”!')

執行結果如下:

A,你認罪嗎?請回答認罪或者不認:ee
B,你認罪嗎?請回答認罪或者不認:ff
別搗亂,只能回答“認罪”或“不認”!
A,你認罪嗎?請回答認罪或者不認:認罪 
B,你認罪嗎?請回答認罪或者不認:不認
A判1年,B判20年
A,你認罪嗎?請回答認罪或者不認:認罪
B,你認罪嗎?請回答認罪或者不認:認罪
兩人都得判10

記錄審判

n = 0
list_answer = [] # 需要定義一個列表,就像是一個空箱子

while True:
    n = n + 1  # 也可寫成 n = n + 1 這樣的的表達方式。
    a = input('A,你認罪嗎?請回答認罪或者不認:')
    b = input('B,你認罪嗎?請回答認罪或者不認:')
    list_answer.append([a,b])  # 用列表巢狀的方式來存放實驗者的選擇,也可用元組或字典。
    if a == '不認' and b == '不認':
        print('兩人都得判30年')
    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]))

執行結果:

A,你認罪嗎?請回答認罪或者不認:不認
B,你認罪嗎?請回答認罪或者不認:認罪
A判20年,B判1年
A,你認罪嗎?請回答認罪或者不認:認罪
B,你認罪嗎?請回答認罪或者不認:不認
A判1年,B判20年
A,你認罪嗎?請回答認罪或者不認:不認
B,你認罪嗎?請回答認罪或者不認:不認
兩人都得判30年
A,你認罪嗎?請回答認罪或者不認:認罪
B,你認罪嗎?請回答認罪或者不認:認罪
都判3年
第4對實驗者選了最優解。
第1對實驗者的選擇是:['不認', '認罪']2對實驗者的選擇是:['認罪', '不認']3對實驗者的選擇是:['不認', '不認']4對實驗者的選擇是:['認罪', '認罪']

終極BOSS

我很喜歡看電影,我回憶了一下,這兩年我覺得還不錯的國產電影!
英雄,無極…
下面,會將電影的影片名和主演放在字典裡,如:
movie = {‘妖貓傳’:[‘黃軒’,‘張雨綺’]}。
需要你補充一些程式碼,讓其他人只要輸入演員名,就打印出:××出演了電影××

movies = {
'英雄':['李連杰','張曼玉','梁朝偉','甑子丹'],
'無極':['張柏芝','劉燁','謝霆鋒','陳紅'],
'霸王別姬':['張國榮','鞏俐','葛優','蔣雯麗'],
'尖峰時刻3':['成龍','章子怡'],  
'大話西遊':['周星馳','吳孟達','藍潔瑛']
}

actor = input('你想查詢哪個演員?')
for  movie in movies:  # 用 for 遍歷字典
    actors = movies[movie]  # 讀取各個字典的主演表
    if actor in actors:
        print(actor + '出演了電影' + movie)
你想查詢哪個演員?成龍   
成龍出演了電影尖峰時刻3

怎麼樣,是不是很神奇呢?這就是PYTHON的魅力所在~
下期我們見~