我在学习if语句。我写了这段代码然后运行它。似乎第2和第3行被忽略了。当我输入一个低于45的数字时,它会提示第2和第3行。我希望你理解我的意思。
price = input('How much did your taxi ride cost?:')
if price < 45:
print('Processing')
if price > 45:
response = ('Your taxi cost over $45 you will be charged a $5.00 fee')
print(response)
response = input('Would you like to proceed:')
if response == 'yes':
print('Processing...')
if response == 'no':
print('!Error!')
答案 0 :(得分:1)
int()
功能将输入转换为数字price = int(input('How much did your taxi ride cost?:'))
通常情况下,如果代码中的某些内容没有达到预期的效果,您应该根据代码提供给您的信息,找出导致内容的原因。一种方法是在评估if
语句之前尝试打印if子句!例如,您可以在if
:
print(input < 45)
您说if块被忽略。这可能意味着它的测试正在返回一个虚假的价值! if
的工作方式是,只有当if
和:
之间的任何内容评估为真实值时,它才会执行其阻止(真实性因语言而异) ,但True
/ true
/ YES
/ etc-无论您使用哪种语言 - 都绝对是真的。)
对于您的具体情况,您要求“price
严格小于45?”,并且您的if语句是 nah ,因此它不会执行。原因是input()
函数返回一个字符串而不是一个数字,因此将它与45进行比较意味着您将文本与数字进行比较。 See this question to see how that works in Python:
CPython实现细节:除了数字之外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。
要解决您的问题,请先将转换您的字符串结果转换为数字(在本例中为整数),然后再将其与其他数字进行比较。您可以通过调用int()
结果上的input()
函数来执行此操作,例如:
price = int(input('How much did your taxi ride cost?:'))
答案 1 :(得分:0)
使用if
和elif
语句。
if语句的正确用法是
if
然后:
elif
您可以拥有尽可能多的elif
...
然后最后,如果没有匹配。
else
您可以使用int
或&#39; float`,具体取决于要在用户输入中使用的数字类型,否则它将返回一个字符串。
int
是一个整数,即1,2,3和float
可以采用小数,即1.5,2.3,3.5
对于这个答案,我使用了浮动。
price = float(input('How much did your taxi ride cost?:'))
if price < 45:
print('Processing')
elif price > 45:
response = ('Your taxi cost over $45 you will be charged a $5.00 fee')
print(response)
response = input('Would you like to proceed:')
if response == 'yes':
print('Processing...')
elif response == 'no':
print('!Error!')