我试图让程序检查用户输入“get up”或“rise and shine”然后打印“im up”。问题是它不会打印“im up”它直接进入else语句。我现在这个代码使它成为我在哪里改变“起来”到“你好”然后如果我在输入中输入任何东西并在输入中包含“你好”它然后将打印“测试”,我会如果可能的话,想保持这种状态吗?代码:
dic = {"get,up", "rise,and,shine"}
test = raw_input("test: ")
tokens = test.split()
if dic.intersection(tokens):
print "test"
else:
print "?"
帮助表示赞赏。
答案 0 :(得分:2)
dic.intersection()
返回两组的交集。例如:
{1, 2, 3}.intersection({2, 3, 4}) # {2, 3}
您可能只想测试会员资格:
if tokens in dic:
...
虽然这也不起作用,因为你用空格分割字符串,这将使它测试单个单词,而不是整个短语。另外,命名集合dic
不是一个好主意。这是一套,而不是字典。
简而言之,请勿使用集合,不要使用.split()
:
phrases = ['get up', 'rise and shine']
phrase = raw_input('Enter a phrase: ')
if phrase in phrases:
print "test"
else:
print "?"