3 回答
TA贡献1775条经验 获得超8个赞
您使用的 for 循环错误。
这将获取字符串中的每个字符,将其分配给 x,并打印出来:
for x in 'aabfh':
print (x)
这将获取字符串中的每个字符,将其分配给 list1[i],并打印出来:
for list1[i] in 'aabfh':
print(list1[i])
在您的代码中,如果您查看 list1,您会发现它已更改为 ['h', 'h', 'h'] 因为这是您告诉它执行的操作(或至少与“some条件”将允许)。
TA贡献1906条经验 获得超10个赞
您的代码有很多问题。
正如@Kenny Ostrom 在他的回答中指出的那样,您的for格式是错误的。
for循环的格式是:
for new_variable_name in list:
print(new_variable_name)
new_variable_name 分配给该列表中的每个项目
for循环遍历列表中的每个项目一次。在你的情况下
for char in str1
print(char)
会打印
a
a
b
f
h
您遇到的另一个问题是不必要的while循环。您将for循环环绕在一个while循环中,该循环将继续运行且不会停止。如果您没有for循环,这可能对您有用,但没有必要,因为您已经在使用for循环。
如果您想使用 for 循环,您的程序结构应该如下所示:
list1=['a','b','c']
str1='aabfh'
i=0
for character in str1:
'''
Some code here that figures out **if** the character is in list1 and then prints that character.
'''
你应该能够从这里弄清楚这一点。
TA贡献1827条经验 获得超9个赞
你的 for 循环 raise NameError。您无法像那样访问 for 循环中的列表元素。将其更改为这个以打印您想要的输出:
for char in str1:
if char in list1:
print(char)
a
a
b
要打印其位置,您可以使用index:
for char in str1:
if char in list1:
print(list1.index(char))
0
0
1
添加回答
举报
