我正在尝试创建一个程序来检查输入的单词(运行时)是否在数组中。我想为此使用循环。
我创建了一个单词列表,并尝试了for循环,但是代码证明是错误的。
def Mylist():
Mylist= [Toyota,BMW,Pontiac,Cadillac,Ford,Opel]
Search=input("Enter a word")
Mylist[1]="Toyota"
for loop in range (1,6):
if Mylist[loop]==Search:
print("found")
break
我为其他汽车制造商重复了第4行。
TypeError:“功能”对象不支持项目分配
答案 0 :(得分:1)
首先,从这里开始一些建议:
"Toyota"
和Toyota
之间的区别。第一个带有引号,它是一个字符串(即字符链),它是一个原始类型,例如整数和布尔值;第二个是要评估的令牌,它必须在定义前定义,例如变量,函数和类。现在您的问题。正如某些人指出的那样,in
关键字完全可以满足您的需求。
CAR_BRANDS= ["Toyota", "BMW", "Pontiac", "Cadillac", "Ford","Opel"]
def check_car():
word = input("Enter a word: ")
if word in CAR_BRANDS:
print("found")
return True
print("not found")
return False
如果您不关心打印质量,则可以
return word in CAR_BRANDS
如果您实际上想挑战自己编写逻辑,那么选择一个for循环来遍历列表是正确的。
Python中的索引从0开始,并且range并没有为您提供遍历列表的所有索引,您缺少0索引。另外,我们不喜欢魔术数字,而不是硬编码您的汽车品牌列表的长度,而是更好地计算长度!
for i in range(len(CAR_BRANDS)):
if CAR_BRANDS[i] == word:
print("found")
但是更好的是,您可以直接遍历列表中的项目,而无需进行范围调整,这将为您提供类似的东西:
CAR_BRANDS= ["Toyota", "BMW", "Pontiac", "Cadillac", "Ford","Opel"]
def check_car():
word = input("Enter a word: ")
for brand in CAR_BRANDS:
if brand == word:
print("found")
return True
print("not found")
return False
如果您还有其他疑问,请不要犹豫!编码愉快。