[問題] IDLE可以,但Anaconda不行?
最近開始自學python,安裝好python 3.8後,也裝了Anaconda.
發現一個問題是:相同的程式碼,在IDLE執行正常,
但有的程式就是沒法在Anaconda執行??
import sys
print("請輸入一個數,以判斷它是否質數: ")
for line in sys.stdin:
num=int(line)
if num > 1:
for i in range(2,num):
if (num % i) == 0:
print(num,"非質數")
break
else:
print(num,"是質數")
else:
print(num,"不是質數")
--
例如以上這段程式碼,用IDLE跑可以輸入值去測+判斷;
但用Anacona去跑,卻只會跑出「請輸入一個數,以判斷它是否質數:」
程式就結束了。
請問有人知道是怎麼回事嗎?還是我有哪裡寫錯了呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.52.116 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1598671292.A.CB3.html
※ 編輯: eKids (1.167.52.116 臺灣), 08/29/2020 11:22:34
推
08/29 11:27,
3年前
, 1F
08/29 11:27, 1F
Anaconda -->Launch spyder-->開新檔,輸入程式碼,存檔,
Run:
左邊的console欄就會出現:
[01]runfile('/Users/ekids/myPython/untitled1.py', wdir='/Users/ekids/myPython')
請輸入一個數,以判斷它是否質數:
[02]
補充說明:Anaconda應該是沒有問題的,因為像猜數字這個程式,它就可以正常執行:
import random
target=random.randint(1,99)
guess=0
while target!=guess:
guess=int(input("請輸入1~99的數字,猜猜我心裡的幸運數字:"))
#print("測題用,目標值為:",target)
if target>guess:
print("再猜大一點~")
elif target<guess:
print("再猜小一點~")
else:
print("耶!猜中了!!")
執行結果:
runfile('/Users/ekids/myPython/Guest.py', wdir='/Users/ekids/myPython')
請輸入1~99的數字,猜猜我心裡的幸運數字:33
再猜小一點~
請輸入1~99的數字,猜猜我心裡的幸運數字:21
再猜大一點~
請輸入1~99的數字,猜猜我心裡的幸運數字:30
再猜大一點~
請輸入1~99的數字,猜猜我心裡的幸運數字:32
耶!猜中了!!
所以我才大大的不解,到底怎麼回事呢??
※ 編輯: eKids (1.167.52.116 臺灣), 08/29/2020 11:46:20
推
08/29 11:53,
3年前
, 2F
08/29 11:53, 2F
欸,真的,改成input後,Anaconda就正常執行了。
只是我還是不明白,是Anaconda不能用sys.stdin?
還是它覺得我的程式寫得太糙所以不給執行??(大霧)
最後,再一次謝謝樓上幾位板友的說明!
※ 編輯: eKids (1.167.52.80 臺灣), 08/29/2020 13:53:45