1 Collatz 序列
編寫一個名爲 collatz()的函數,它有一個名爲 number 的參數。若是參數是偶數,那麼 collatz()就打印出 number // 2,並返回該值。若是 number 是奇數,collatz()就打印並返回 3 * number + 1。
而後編寫一個程序,讓用戶輸入一個整數,並不斷對這個數調用 collatz(),直到函數返回值1(使人驚奇的是,這個序列對於任何整數都有效,利用這個序列,你早晚會獲得 1!既使數學家也不能肯定爲何。你的程序在研究所謂的「Collatz序列」,它有時候被稱爲「最簡單的、不可能的數學問題」)。函數
代碼以下:spa
# -*- 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.code
輸入驗證:在前面的項目中添加 try 和 except 語句,檢測用戶是否輸入了一個非整數的字符串。正常狀況下,int()函數在傳入一個非整數字符串時,會產生 ValueError 錯誤,好比 int('puppy')。在 except 子句中,向用戶輸出一條信息,告訴他們必須輸入一個整數。blog
# -*- 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('請輸入整數')