天天看點

Python程式設計快速上手-第三章實踐

初學python,嘗試着寫一寫,僅供參考,歡迎指正!

3.11.1 Collatz 序列

編寫一個名為collatz()的函數,它有一個名為number 的參數。如果參數是偶數,那麼collatz()就列印出number // 2,并傳回該值。如果number 是奇數,collatz()就列印并傳回3 * number + 1。

然後編寫一個程式,讓使用者輸入一個整數,并不斷對這個數調用collatz(),直到函數傳回值1(令人驚奇的是,這個序列對于任何整數都有效,利用這個序列,你遲早會得到1!既使數學家也不能确定為什麼。你的程式在研究所謂的“Collatz序列”,它有時候被稱為“最簡單的、不可能的數學問題”)。

3.11.2 輸入驗證

在前面的項目中添加try 和except 語句,檢測使用者是否輸入了一個非整數的字元串。正常情況下,int()函數在傳入一個非整數字元串時,會産生ValueError 錯誤,比如int('puppy')。在except 子句中,向使用者輸出一條資訊,告訴他們必須輸入一個整數。

def collatz(number):
    if number%2==0:
        return number//2
    else:
        return 3*number+1

while True:
    try:
        num=int(input('輸入一個整數:'))
    except ValueError:
        print ('輸入的必須是一個整數')
        continue
    while num!=1:
        num=collatz(num)
        print (num)
    break

           

繼續閱讀