0

如果有这样的字母/单词,我试图打印出 true,如果没有,则打印出 false,但无论我输入什么,它总是正确的。

phr1= raw_input("Enter a phrase or paragraph, and this will check if you have those letters/word in ur paragraph: ")
print "You entered: "+phr1
phr2= raw_input("Check if a word/letter exists in the paragraph: ")
phr2 in phr1
if True:
    print "true"
elif False:
    print "false"
input("Press enter")

当我运行代码时:

Enter a phrase or paragraph, and this will check if you have those letters/word in ur paragraph:
hello world
You entered: hello world
Check if a word/letter exists in the paragraph: g
true
Press enter

这怎么可能,g不存在,为什么它说它存在?

4

4 回答 4

6

检查if True将始终通过,因为正在评估的布尔表达式是简单的True。将您的整个 if/else 更改为print (phr2 in phr1)

如果第二个短语位于第一个短语中,这将打印“True”,否则将打印“False”。要使其变为小写(无论出于何种原因),您可以使用.lower()下面评论中的详细信息。

如果您想使用原始的 if/else 检查(优点是您的输出消息比“True”/“False”更有创意),您必须像这样修改代码:

if phr2 in phr1:
    print "true"
else:
    print "false"
input("Press enter")
于 2012-06-17T06:31:57.137 回答
1
if <something>

意思就是它所说的:如果<something>为真,它会执行代码。前一行代码完全无关紧要。

phr2 in phr1

这意味着“检查是否phr2在 中phr1,然后完全忽略结果”(因为你什么都不做)。

if True:

这意味着“如果True是真的:”,就是这样。

如果你想测试是否phr2在 中phr1,那么这就是你必须要求 Python 做的事情:if phr2 in phr1:.

于 2012-06-17T07:42:42.147 回答
0

试试这个:

phr1= raw_input("Enter a phrase or paragraph, and this will check if you have those letters/word in ur paragraph: ")
print "You entered: "+phr1
phr2= raw_input("Check if a word/letter exists in the paragraph: ")
if phr2 in phr1:
    print "true"
else:
    print "false"
input("Press enter")
于 2012-06-17T06:29:05.537 回答
0
phr1 = raw_input("Enter a phrase or paragraph, and this will check if you have those letters/word in ur paragraph: ")
print "You entered: "+phr1
phr2 = raw_input("Check if a word/letter exists in the paragraph: ")
if phr2 in phr1:
    print "true"
else:
    print "false"
raw_input("Press enter")
于 2012-06-17T06:29:20.163 回答