如果用户已经输入'tea'或't'为自己的选择,我该如何定义变量beverage.lower()为'tea'?因为
if beverage.lower()=='t'or beverage.lower()=='tea':
beverage.lower()=='tea'
Run Code Online (Sandbox Code Playgroud)
line对整个程序本身绝对没有任何影响?
while True:
beverage=raw_input("What is your preferred beverage: coffee, or tea?")
if beverage.lower() not in ('coffee','tea','t','c'):
if beverage.lower()=='t'or beverage.lower()=='tea':
beverage.lower()=='tea'
elif beverage.lower()=='c'or beverage.lower()=='coffee':
beverage.lower()=='coffee'
print("Sorry! I didn't quite catch that. Please try again! (Note that you can use the letter 'c' or the letter 't' to denote coffee or tea respectively!)")
continue
else:
print("Ah! Fantastic choice!")
break
Run Code Online (Sandbox Code Playgroud)
同样,我如何定义beverage.lower()作为另一个变量输入的用户?
您的代码在流控制(if块)和值分配(==和=)中存在各种问题.经过一些改变后,就在这里.并尝试不混合4个空格的标签和8个空格的标签.始终坚持4个空间标签,因为它是PEP8的标准配置
while True:
beverage = input("What is your preferred beverage: coffee, or tea?").lower() # much efficient to .lower() only once
if beverage in ('coffee','tea','t','c'): # Change this to 'in'
if beverage == 't' or beverage == 'tea':
beverage = 'tea' # value assignments are done with = not ==
elif beverage == 'c' or beverage == 'coffee':
beverage = 'coffee' # value assignments are done with = not ==
print('Ah! Fantastic choice!')
print('You have chosen {}'.format(beverage))
else:
print("Sorry! I didn't quite catch that. Please try again! (Note that you can use the letter 'c' or the letter 't' to denote coffee or tea respectively!)")
Run Code Online (Sandbox Code Playgroud)
O/P:
What is your preferred beverage: coffee, or tea?c
Ah! Fantastic choice!
You have chosen coffee
What is your preferred beverage: coffee, or tea?t
Ah! Fantastic choice!
You have chosen tea
What is your preferred beverage: coffee, or tea?x
Sorry! I didn't quite catch that. Please try again! (Note that you can use the letter 'c' or the letter 't' to denote coffee or tea respectively!)
Run Code Online (Sandbox Code Playgroud)