我正在尝试在Python3中制作素数生成器,并且输入功能无法正常工作

问题描述 投票:0回答:1

可能对此有一个简单的答案,但是我是新手,不知道我在做什么,因为我正在从google和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
python-3.x user-input
1个回答
0
投票

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))
© www.soinside.com 2019 - 2024. All rights reserved.