我是编程新手,并试图在下学期开始上课。我试图显示总成本然后打印出来。我哪里错了?
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 '!')
答案 0 :(得分:0)
修复缩进。 Python使用缩进来定义执行的块代码(即在if
语句中或之后)。这是你应该做的:
input
函数(获取用户输入)返回一个字符串。然后尝试将其与未定义的变量yes
进行比较。将yes
语句中的if
替换为"yes"
或'yes'
,以确保您正在比较两个字符串。
请记住以结束引号结束字符串的所有。在“你需要一次飞行吗?”之后忘了打印“谢谢”。问题
将print('Thank you.)
替换为print('Thank you.')
倒数第二行,您定义从未使用的sum
。然后,您尝试使用未定义的travel
函数来添加三个变量。一般来说,这行代码毫无意义。我假设你是这个意思:
travel = (room + plane + car)
你不能将浮点数/整数连接到字符串。
这应该是最后一行:
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)+ '!')
这样可行,但可能会更好。以下是一些建议,这些建议不仅可以帮助您完成此项目,还可以帮助您进一步推荐:
您可以将print
和input
个功能组合在一起,因为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
通过将答案转换为小写然后检查它们来看你是如何处理“是”/“否”用户输入的,我也印象深刻,这是很多技术水平的人忽视的事情。