Python Collatz 序列和輸入驗證

Python編程快速上手實踐項目題目,歡迎指證與優化!編程

  1. Collatz 序列
    題目:
    編寫一個名爲 collatz()的函數,它有一個名爲 number 的參數。若是參數是偶數,
    那麼 collatz()就打印出 number // 2, 並返回該值。若是 number 是奇數, collatz()就打
    印並返回 3 * number + 1。
    而後編寫一個程序, 讓用戶輸入一個整數, 並不斷對這個數調用 collatz(), 直
    到函數返回值1(使人驚奇的是, 這個序列對於任何整數都有效, 利用這個序列,
    你早晚會獲得 1! 既使數學家也不能肯定爲何。 你的程序在研究所謂的「Collatz
    序列」,它有時候被稱爲「最簡單的、 不可能的數學問題」)。
    記得將 input()的返回值用 int()函數轉成一個整數,不然它會是一個字符串。
    源代碼:
def collatz(number):
    if number%2 == 0:
        return number//2
    else :
        return 3*number+1
input_number = int(input("請輸入一個整數:"))
while True :
    print(collatz(input_number))  
    input_number=collatz(input_number)
    if input_number==1:
        break

運行結果:ide

請輸入一個整數:22
11
34
17
52
26
13
40
20
10
5
16
8
4
2
1
  1. 輸入驗證:
    問題:
    在前面的項目中添加 try 和 except 語句,檢測用戶是否輸入了一個非整數的字
    符串。正常狀況下, int()函數在傳入一個非整數字符串時,會產生 ValueError 錯誤,
    好比 int('puppy')。在 except 子句中,向用戶輸出一條信息,告訴他們必須輸入一個
    整數。
    代碼:
    def collatz(number):
    if number%2 == 0:
        return number//2
    else :
        return 3*number+1
    try:
    input_number = int(input("請輸入一個整數:"))
    while True :
        print(collatz(input_number))  
        input_number=collatz(input_number)
        if input_number==1:
            break
    except:
    print ('出現錯誤!只支持輸入整數!')

    結果:函數

    請輸入一個整數:jj
    出現錯誤!只支持輸入整數!
相關文章
相關標籤/搜索