標籤:

Python中如何程序的異常處理的問題?

利用python,寫出科拉茨猜想,既給定任意一個正整數N,如果是偶數,,,;如果是奇數,,,我想寫一個異常處理,就是如果輸入浮點數就提示,「請輸入自然數」,然而int(x)中x即可以是整數也可以是浮點數,所以就沒辦法排除,想用if m in range(1,math.ceil(m)),但是當輸入如12.5時,這個就是錯誤的。所以不知道怎麼寫出這個異常出來,雖然可以把math.ceil(m)改成一個無限大的數也可以解決,但我想問有沒有更好的方法?


使用內置函數isinstance(object, classinfo)

# -*- coding: utf-8 -*-
def collatz(n):
i = 0
while True:
if n == 1:
print("times=" + str(i) + "
")
break
elif n % 2 == 0:
print(n, " ")
n //= 2
else:
print(n, " ")
n = n * 3 + 1
i += 1

while True:
print("輸入q退出程序!")
m = input("請輸入任意一個正整數M:")
if str(m) == "q":
break
try:
m = eval(m)
if isinstance(m, int):
collatz(m)
else:
print("請重新輸入自然數!
")
except NameError as e:
print(e)
print("請輸入自然數!
")
continue


輸入str. 然後看自動補全提示會有驚喜


推薦閱讀:

在數學建模問題中,matlab和Python各自的特點有哪些?
《Python 核心編程》和《Python 學習手冊》哪一本更適合零基礎初學者?為什麼?

TAG:Python入門 |