了解如何使用变量赋值计算总计

时间:2017-02-03 21:56:15

标签: python python-3.x

我是编程新手,并试图在下学期开始上课。我试图显示总成本然后打印出来。我哪里错了?

print('Would you like a rental car?')
rental = (input('Yes or No? '))
    if rental.lower() == yes:
        car = float(input('Dollar Amount?'))
    else:
        print('Thank You!')


print('Would you need a flight?')
flight = (input('Yes or No '))
    if flight.lower() == yes:
        plane = float(input('Dollar Amount? '))
    else:
        print('Thank You!')

print('Would need a hotel?')
hotel = (input('Yes or No? '))
    if hotel.lower() == yes:
        room = float(input('Dollar Amount? '))



sum = travel (room + plane + car)
print('This is the total amount that it may cost you, ' + travel  '!')

1 个答案:

答案 0 :(得分:0)

问题1

修复缩进。 Python使用缩进来定义执行的块代码(即在if语句中或之后)。这是你应该做的:

  • 全选(cmd / ctrl + a),然后按(cmd / ctrl + [)进行去缩进。这样做直到没有任何缩进。
  • 在if / else语句中的任何行上,按该行开头的TAB键。

问题2

input函数(获取用户输入)返回一个字符串。然后尝试将其与未定义的变量yes进行比较。将yes语句中的if替换为"yes"'yes',以确保您正在比较两个字符串。

问题3

请记住以结束引号结束字符串的所有。在“你需要一次飞行吗?”之后忘了打印“谢谢”。问题

print('Thank you.)替换为print('Thank you.')

问题4

倒数第二行,您定义从未使用的sum。然后,您尝试使用未定义的travel函数来添加三个变量。一般来说,这行代码毫无意义。我假设你是这个意思:

travel = (room + plane + car)

问题5

你不能将浮点数/整数连接到字符串。

这应该是最后一行:

print('This is the total amout that it is may cost you, '+str(travel)+'!')

另外,在附加感叹号时忘记了concat运算符(+)。

最终代码:

以下是您的代码的工作版本:

print('Would you like a rental car?')
rental = (input('Yes or No? '))
if rental.lower() == 'yes':
    car = float(input('Dollar Amount?'))
else:
    print('Thank You!')


print('Would you need a flight?')
flight = (input('Yes or No '))
if flight.lower() == 'yes':
    plane = float(input('Dollar Amount? '))
else:
    print('Thank You!')

print('Would need a hotel?')
hotel = (input('Yes or No? '))
if hotel.lower() == 'yes':
    room = float(input('Dollar Amount? '))



travel = (room + plane + car)
print('This is the total amout that it is may cost you, ' + str(travel)+  '!')

建议:

这样可行,但可能会更好。以下是一些建议,这些建议不仅可以帮助您完成此项目,还可以帮助您进一步推荐:

  • 您可以将printinput个功能组合在一起,因为input基本上会打印,然后等待输入。要像现在一样格式化它,只需添加换行符\n即可。例如,而不是

    print('Would you like a rental car?')
    rental = (input('Yes or No? '))
    

    你可以做到

    rental = input("Would you like a rental car?\nYes or No?")
    
  • 这些行实际上可以进一步简化。您不需要定义变量rental,而是可以直接在if语句中使用其输出,即

    if input("Would you like a rental care?\nYes or No?").lower() == "yes" :
        ...
    
  • 学习使用try / catch语句来捕获错误。输入旅行费用金额时,用户必须输入一个号码。但是如果他们输入一个字符串呢?你的程序会崩溃。了解如何使用try / catch语句来防止这种情况发生(https://docs.python.org/3/tutorial/errors.html

除此之外没有太大的差别。这些都只是初学者的错误,很快你就会写出效果很好的优秀代码:D

通过将答案转换为小写然后检查它们来看你是如何处理“是”/“否”用户输入的,我也印象深刻,这是很多技术水平的人忽视的事情。