溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python Collatz 序列和輸入驗證

發(fā)布時間:2020-06-30 10:30:20 來源:網(wǎng)絡(luò) 閱讀:440 作者:網(wǎng)絡(luò)大神經(jīng) 欄目:編程語言

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

  1. Collatz 序列
    題目:
    編寫一個名為 collatz()的函數(shù),它有一個名為 number 的參數(shù)。如果參數(shù)是偶數(shù),
    那么 collatz()就打印出 number // 2, 并返回該值。如果 number 是奇數(shù), collatz()就打
    印并返回 3 * number + 1。
    然后編寫一個程序, 讓用戶輸入一個整數(shù), 并不斷對這個數(shù)調(diào)用 collatz(), 直
    到函數(shù)返回值1(令人驚奇的是, 這個序列對于任何整數(shù)都有效, 利用這個序列,
    你遲早會得到 1! 既使數(shù)學(xué)家也不能確定為什么。 你的程序在研究所謂的“Collatz
    序列”,它有時候被稱為“最簡單的、 不可能的數(shù)學(xué)問題”)。
    記得將 input()的返回值用 int()函數(shù)轉(zhuǎn)成一個整數(shù),否則它會是一個字符串。
    源代碼:
def collatz(number):
    if number%2 == 0:
        return number//2
    else :
        return 3*number+1
input_number = int(input("請輸入一個整數(shù):"))
while True :
    print(collatz(input_number))  
    input_number=collatz(input_number)
    if input_number==1:
        break

運行結(jié)果:

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

    結(jié)果:

    請輸入一個整數(shù):jj
    出現(xiàn)錯誤!只支持輸入整數(shù)!
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI