我创建了一个函数,它接受一个单词和一串“禁止”字母,如果该单词不使用任何字母,则返回 True。
def avoids(word,forbidden):
for letter in word:
if letter in forbidden:
return False
else:
return True
我想修改它,而不是使用“禁止”作为要避免的字母,系统将提示用户放置几个字母并打印不包含任何字母的单词数。我还有一个 .txt 文档,其中包含这些词以使其变得有趣。
这是我想出的错误。如果可能的话,我想要一些帮助和教育,因为我的“在线”老师从不在身边提供帮助。请帮助:)
def word_no_forbidden():
forbidden = input('pick 5 letters')
fin = open('words1.txt')
no_forbidden_word = 0
for line in fin:
word = line.strip()
for letter in word:
if forbidden in word:
continue
print word
这是我得到的错误,我理解它,但是,我不确定还有什么方法可以解决这个问题......
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
word_no_forbidden()
File "C:/Python27/test.py", line 9, in word_no_forbidden
if forbidden in word:
TypeError: 'in <string>' requires string as left operand, not tuple
最佳答案
def word_no_forbidden():
forbidden = raw_input('pick 5 letters')
fin = open('words1.txt')
no_forbidden_word = 0
for line in fin:
word = line.strip()
for letter in list(word):
if letter in forbidden:
break
else:
print word
注意:
1> 正如温斯顿所说,使用 raw_input
2> 如果您想遍历一个字符串,请使用 list(your_string)
获取字符列表
3> 此处的 else
仅在我们的 for letter in list(word)
循环完成而不会中断时执行(换句话说,没有一个字母是在禁止)
关于python - 文字游戏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522569/