《Python程式設計快速上手+讓繁瑣工作自動化》第三章實踐專案
阿新 • • 發佈:2018-11-08
1 Collatz 序列
編寫一個名為 collatz()的函式,它有一個名為 number 的引數。如果引數是偶數,那麼 collatz()就打印出 number // 2,並返回該值。如果 number 是奇數,collatz()就列印並返回 3 * number + 1。
然後編寫一個程式,讓使用者輸入一個整數,並不斷對這個數呼叫 collatz(),直到函式返回值1(令人驚奇的是,這個序列對於任何整數都有效,利用這個序列,你遲早會得到 1!既使數學家也不能確定為什麼。你的程式在研究所謂的“Collatz序列”,它有時候被稱為“最簡單的、不可能的數學問題”)。
程式碼如下:
# -*- coding:utf-8-*- def colatz(number): if number % 2 == 0: return number/2 else: return 3 * number + 1 while True: number = int(input('please enter number:')) if colatz(number) == 1: print(colatz(number)) break else: print(colatz(number))
2.
輸入驗證:在前面的專案中新增 try 和 except 語句,檢測使用者是否輸入了一個非整數的字串。正常情況下,int()函式在傳入一個非整數字符串時,會產生 ValueError 錯誤,比如 int('puppy')。在 except 子句中,向用戶輸出一條資訊,告訴他們必須輸入一個整數。
# -*- coding:utf-8 -*- def colatz(number): if number % 2 == 0: return number/2 else: return 3 * number + 1 while True: try: number = int(input('please enter number:')) if colatz(number) == 1: print(colatz(number)) break else: print(colatz(number)) except ValueError: print('請輸入整數')