我目前正在嘗試編寫一個函數來詢問一個數字,並返回它是否爲素數。我打算使用raw_input()函數獲取輸入。這個程序工作,如果我在Python鍵入並運行它,但是當我在PowerShell中運行它,我收到以下錯誤:Python程序在IDLE中工作,但不在命令行中(PowerShell)
>>> python ex19.1.py
What is your number? 34
Traceback (most recent call last):
File "ex19.1.py", line 13, in <module>
is_prime(number)
File "ex19.1.py", line 5, in is_prime
if n % 2 == 0 and n > 2:
TypeError: not all arguments converted during string formatting
我目前正在運行的Python 2.7,而我不知道爲什麼我會因爲我沒有在我的代碼中使用任何字符串格式化程序,所以接收到字符串錯誤。以下是我用於我的程序的代碼,名爲ex19.1.py。
import math
def is_prime(n):
if n % 2 == 0 and n > 2:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
number = raw_input("What is your number? ")
is_prime(number)
我的問題是,爲什麼這個錯誤出現了,我能做些什麼來解決它?謝謝!