gpt4 book ai didi

python - 错误信息 : argument of type 'type' is not iterable

转载 作者:行者123 更新时间:2023-12-03 21:57:21 24 4
gpt4 key购买 nike

我刚开始使用 Python,我有一个简短的问题。

import sys

# Function creates a list [1,3,5..99]
def createlist():
list = []
for i in range(1, 100, 2):
list.append(i)
return(list)

# Function asks for an odd integer between 1..100
def numberinsert():
n = int(input("Please enter an odd number between 1 and 100: "))
if n in list:
return(n)
else:
sys.exit("Number does not match requirements!")

def main():
createlist()
numberinsert()

它给了我这个: TypeError: argument of type 'type' is not iterable
我究竟做错了什么?

最佳答案

您正在尝试访问函数 createlist 的局部变量来自另一个函数 numberinsert并且这是不可能的(局部变量只能在它们定义的范围内访问)。
我建议您按如下方式更改代码:

import sys

# Function creates a list [1,3,5..99]
def createlist():
odd_list = []
for i in range(1, 100, 2):
odd_list.append(i)
return(odd_list)

# Function asks for an odd integer between 1..100
def numberinsert():
num_list = createlist()
n = int(input("Please enter an odd number between 1 and 100: "))
if n in num_list:
return(n)
else:
sys.exit("Number does not match requirements!")

def main():
numberinsert()


作为旁注,尽量避免使用内置函数的名称(如 list )命名变量。

您还可以使用 range(1, 100, 2) 以更紧凑的方式编写代码。直接在您的 numberinsert功能:
# Function asks for an odd integer between 1..100
def numberinsert():
n = int(input("Please enter an odd number between 1 and 100: "))
if n in range(1, 100, 2):
return(n)
else:
sys.exit("Number does not match requirements!")

def main():
numberinsert()

关于python - 错误信息 : argument of type 'type' is not iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61286792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com