新手python编程问题

zs=input()forainrange(0,zs):c=a-1forbinrange(2,c):ifa%b==0:breakelse:print(a)结果为啥错误了1... zs = input()
for a in range(0,zs):
c = a-1
for b in range(2,c):
if a%b == 0:
break
else:
print(a)

结果为啥错误了
10
Traceback (most recent call last):
File "C:/Users/鹿儿/Desktop/质数.py", line 2, in <module>
for a in range(0,zs):
TypeError: 'str' object cannot be interpreted as an integer

Process finished with exit code 1
展开
 我来答
盗墓者18
2018-01-14 · TA获得超过2028个赞
知道小有建树答主
回答量:820
采纳率:84%
帮助的人:258万
展开全部

原因在这里:

看你用的print就知道你使用的是python3。

在python3中print不再是语句而是一个函数,所以需要加括号;input函数接受的任何值都将转为字符串str。

所以你的zs是一个str,又由于range函数允许的参数是整形数据,所以,range(0,zs)会出错。

解决办法把你第一句改成zs = int(input()),转成整形数据就行了,后面的如果也有这个情况做相应调整

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式