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

運行結果:

請輸入一個整數: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
    出現錯誤!只支持輸入整數!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章