作者eKids (天下无敌海鲜饭)
看板Python
标题[问题] IDLE可以,但Anaconda不行?
时间Sat Aug 29 11:21:30 2020
最近开始自学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://webptt.com/cn.aspx?n=bbs/Python/M.1598671292.A.CB3.html
※ 编辑: eKids (1.167.52.116 台湾), 08/29/2020 11:22:34
1F:推 TuCH: anaconda 你怎麽跑的 可以说详细一点吗 08/29 11:27
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
2F:推 TuCH: 应该是stdin跟input的差别 sys.stdin 改成input 08/29 11:53
欸,真的,改成input後,Anaconda就正常执行了。
只是我还是不明白,是Anaconda不能用sys.stdin?
还是它觉得我的程式写得太糙所以不给执行??(大雾)
最後,再一次谢谢楼上几位板友的说明!
※ 编辑: eKids (1.167.52.80 台湾), 08/29/2020 13:53:45