[問題] IDLE可以,但Anaconda不行?

看板Python作者 (天下無敵海鮮飯)時間3年前 (2020/08/29 11:21), 3年前編輯推噓2(200)
留言2則, 1人參與, 3年前最新討論串1/1
最近開始自學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
anaconda 你怎麼跑的 可以說詳細一點嗎
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
應該是stdin跟input的差別 sys.stdin 改成input
08/29 11:53, 2F
欸,真的,改成input後,Anaconda就正常執行了。 只是我還是不明白,是Anaconda不能用sys.stdin? 還是它覺得我的程式寫得太糙所以不給執行??(大霧) 最後,再一次謝謝樓上幾位板友的說明! ※ 編輯: eKids (1.167.52.80 臺灣), 08/29/2020 13:53:45
文章代碼(AID): #1VIScyop (Python)