《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目
阿新 • • 發佈:2018-11-08
val bre ror try 函數 什麽 實踐項目 字符串 驚奇
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(‘請輸入整數‘)
《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目