Python Collatz序列實(shí)現(xiàn)過程解析
編寫一個(gè)名為 collatz()的函數(shù),它有一個(gè)名為 number 的參數(shù)。如果參數(shù)是偶數(shù),那么 collatz()就打印出 number // 2, 并返回該值。如果 number 是奇數(shù), collatz()就打印并返回 3 * number + 1。然后編寫一個(gè)程序, 讓用戶輸入一個(gè)整數(shù), 并不斷對(duì)這個(gè)數(shù)調(diào)用 collatz(), 直到函數(shù)返回值1(令人驚奇的是, 這個(gè)序列對(duì)于任何整數(shù)都有效, 利用這個(gè)序列,你遲早會(huì)得到 1! 既使數(shù)學(xué)家也不能確定為什么。 你的程序在研究所謂的“Collatz序列”,它有時(shí)候被稱為“最簡(jiǎn)單的、 不可能的數(shù)學(xué)問題”)。
在項(xiàng)目中添加 try 和 except 語句,檢測(cè)用戶是否輸入了一個(gè)非整數(shù)的字符串。正常情況下, int()函數(shù)在傳入一個(gè)非整數(shù)字符串時(shí),會(huì)產(chǎn)生 ValueError 錯(cuò)誤,比如 int('puppy')。在 except 子句中,向用戶輸出一條信息,告訴他們必須輸入一個(gè)整數(shù)。
示例代碼:
def collatz(number):
a = number % 2
if a == 0:
number = number//2
return number
elif a == 1:
number = number*3+1
return number
try:
number = int(input("請(qǐng)輸入一個(gè)整數(shù):"))
while number != 1:
number = collatz(number)
print(number)
except ValueError:
print('必須輸入整數(shù)')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫的操作流程
這篇文章主要介紹了配置python連接oracle,讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Python虛擬環(huán)境virtualenv創(chuàng)建及使用過程圖解
這篇文章主要介紹了Python虛擬環(huán)境virtualenv創(chuàng)建及使用過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Python?dataframe如何設(shè)置index
這篇文章主要介紹了Python?dataframe如何設(shè)置index,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
python?Pangu自動(dòng)美化中文排版工具使用探索
這篇文章主要為大家介紹了python?Pangu自動(dòng)美化中文排版工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11

