我正在尝试在 Python3 中制作一个素数生成器,但输入函数无法正常工作



这个问题可能有一个简单的答案,但我是新手,不知道我在做什么,因为我正在从谷歌和reddit学习一切。

我的代码是:

def primefinder(z):
primenumber_list=[]
for y in range(2, z+1):
if y not in primenumber_list:
print(y)
for x in range(y*y,z+1,y):
primenumber_list.append(x)
q=input('Enter maximum:')
print(primefinder(q))

错误是这样的:

Traceback (most recent call last):
File "primenumber.py", line 9, in <module>
print(primefinder(q))
File "primenumber.py", line 3, in primefinder
for y in range(2, z+1):
TypeError: Can't convert 'int' object to str implicitly

更新:我很久以前就学会了如何正确格式化整数和字符串等

默认情况下,input()函数返回一个字符串作为输出,您应该使用int()float()等将其显式隐藏为不同的类型。

def primefinder(z):
primenumber_list=[]
for y in range(2, z+1):
if y not in primenumber_list:
print(y)
for x in range(y*y,z+1,y):
primenumber_list.append(x)
q=int(input('Enter maximum:'))
print(primefinder(q))

相关内容

  • 没有找到相关文章

最新更新