当我使用命令终止程序时,它不会终止,而是假设我想在打开“no”时打开另一个程序 这是我的代码:
import getpass
print 'Hello', getpass.getuser(), ', welcome!'
do = raw_input ('What program would you like to open? ')
if do.lower() == 'browser' or 'internet' or 'Chrome' or 'Google chrome':
import webbrowser
webbrowser.open ('www.google.com')
oth = raw_input ('Are there any others? ')
if oth.lower() == 'yes' or 'ye' or 'yeah':
oth2 = raw_input ('Please name the program you would like to open! ')
else:
import sys
sys.exit()
答案 0 :(得分:4)
看看:
if do.lower() == 'browser' or 'internet' or 'Chrome' or 'Google chrome':
这里有几个总是评估为True的语句; “互联网”或“Chrome”或“Google Chrome”中的每一个都是非空字符串。 do.lower()
的值是什么并不重要。这意味着python认为该行等同于if或True。
您要做的是使用in
运算符来测试do
是否是以下几个选项之一:
if do.lower() in ('browser', 'internet', 'chrome', 'google chrome'):
请注意,我在列表中小写所有选项进行测试;毕竟,你也小写了你的输入,所以它永远不会匹配“Chrome”;它将是“铬”或其他东西。
这同样适用于您的if oth.lower() == 'yes' or 'ye' or 'yeah':
行。
答案 1 :(得分:0)
if oth.lower() == 'yes' or 'ye' or 'yeah':
你的问题在上面一行。
在python中,字符串的真值取决于它是否为空。例如bool('')
是False
。 bool('ye')
为True
。
您可能需要以下内容:
if oth.lower() in ('yes','ye','yeah'):
因此,您在浏览器检查中遇到同样的问题。