我需要解释简单的“if”语句?

时间:2018-03-06 22:13:31

标签: python if-statement

我在学习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!')

2 个答案:

答案 0 :(得分:1)

TL; DR:使用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)

使用ifelif语句。

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!')