我希望當我回應其他事情不同,是的,子進程不運行。Popen總是運行,忽略如果
r = raw_input('\nDo you want play the video?\n\nY:Yes N:No\n\n')
if r == "Y" or "y" or "yes" or"yep" or"yeah":
message("Playing Video")
subprocess.Popen(playvid)
else:
pass
我希望當我回應其他事情不同,是的,子進程不運行。Popen總是運行,忽略如果
r = raw_input('\nDo you want play the video?\n\nY:Yes N:No\n\n')
if r == "Y" or "y" or "yes" or"yep" or"yeah":
message("Playing Video")
subprocess.Popen(playvid)
else:
pass
改變這種
if r == "Y" or "y" or "yes" or"yep" or"yeah":
到
if r in ["Y","y","yes","yep","yeah"] :
或更改你的迴應小寫
r = raw_input('\nDo you want play the video?\n\nY:Yes N:No\n\n').lower()
if r in ["y","yes","yep","yeah"] :
我不知道如果我完全理解你的問題,但我相信這個問題是你的語法s線:
if r == "Y" or "y" or "yes" or"yep" or"yeah":
你正在測試「Y」,「Y」等真相,所有評估爲「真」。把所有的值的序列,並且做到:
if r in seq:
這應該是做的比
if r == "Y" or r == "y"...
小修正:'=='綁定比'或'更緊密,因此OP正在測試'(r ==「Y」)或「y」或「yes」等的真實性。 – balpha 2010-01-08 06:44:33
更清潔的方式可能Alquimista也可以像 r.lower()在[」 Y「,」Y「,」是「,」是「,」是「]: :-) – shahjapan 2010-01-08 07:31:53
@shahjapan:如果您使用lower(),那麼爲什麼在列表中包含'」Y「? – nosklo 2010-01-08 10:20:58