为什么这个地方输入2会报异常?
abc = "\nWe will set the ticket price according to different ages. Please enter your age: "while True:
message = input(abc)
if 0 <= int(message) < 3:
print("\nWe will charge the fare: " + str(0) + "doller.")
if 3 <= int(message) <= 12:
print("\nWe will charge the fare: " + str(10) + "doller.")
else:
print("\nWe will charge the fare: " + str(15) + "doller.") 并不会啊...
abc = "\nWe will set the ticket price according to different ages. Please enter your age: "
while True:
message = input(abc)
if 0 <= int(message) < 3:
print("\nWe will charge the fare: " + str(0) + "doller.")
if 3 <= int(message) <= 12:
print("\nWe will charge the fare: " + str(10) + "doller.")
else:
print("\nWe will charge the fare: " + str(15) + "doller.")
我这没异常。
另外你应该用:if---elif---else 输入0到2会在你的代码中进行了2次判断,所以会打印2次,把第二个if改成 elif就可以了,另外while循环没有退出,可以考虑加上按q退出的语句:
abc = "\nWe will set the ticket price according to different ages. Please enter your age: "
while True:
message = input(abc)
if message=='q': #<---加入退出机制
break
if 0 <= int(message) < 3:
print("\nWe will charge the fare: " + str(0) + "doller.")
elif 3 <= int(message) <= 12: #<---这里要改成elif才能建立完整判断逻辑
print("\nWe will charge the fare: " + str(10) + "doller.")
else:
print("\nWe will charge the fare: " + str(15) + "doller.") 本帖最后由 老兵hb 于 2020-6-7 07:43 编辑
1、把第2个if改成elif
abc = "\nWe will set the ticket price according to different ages. Please enter your age: "
while True:
message = input(abc)
if 0 <= int(message) < 3:
print("\nWe will charge the fare: " + str(0) + "doller.")
elif 3 <= int(message) <= 12:
print("\nWe will charge the fare: " + str(10) + "doller.")
else:
print("\nWe will charge the fare: " + str(15) + "doller.")
2、把else改成int(message)>12:
abc = "\nWe will set the ticket price according to different ages. Please enter your age: "
while True:
message = input(abc)
if 0 <= int(message) < 3:
print("\nWe will charge the fare: " + str(0) + "doller.")
if 3 <= int(message) <= 12:
print("\nWe will charge the fare: " + str(10) + "doller.")
if int(message)>12:
print("\nWe will charge the fare: " + str(15) + "doller.") 老兵hb 发表于 2020-6-7 07:41
1、把第2个if改成elif
abc = "\nWe will set the ticket price according to different ages. Please ente ...
对,我试着做过第二个,输入正常。另外,如果只有两行判断,中间不加elif,而只有if和else的话,不算不完整哈? suchocolate 发表于 2020-6-6 21:03
我这没异常。
另外你应该用:if---elif---else
We will set the ticket price according to different ages. Please enter your age:
2
We will charge the fare:0
We will charge the fare:15
We will set the ticket price according to different ages. Please enter your age:
#如果我输入2的话,以上是我的程序输入结果。 suchocolate 发表于 2020-6-6 21:03
我这没异常。
另外你应该用:if---elif---else
好的,谢谢您 #您好,以下是输出结果。
We will set the ticket price according to different ages. Please enter your age:
2
We will charge the fare:0
We will charge the fare:15
We will set the ticket price according to different ages. Please enter your age: wswzmomoda 发表于 2020-6-7 08:59
We will set the ticket price according to different ages. Please enter your age:
2
只是结果不是你的预期,程序还是走完了,不能叫“报异常”,我还以为报错了呢。 Twilight6 发表于 2020-6-6 20:35
并不会啊...
谢谢您 suchocolate 发表于 2020-6-7 09:07
只是结果不是你的预期,程序还是走完了,不能叫“报异常”,我还以为报错了呢。
是的,跟预期不同,我把它叫报异常,这种说法不对哈?不是报错。
另外,有人说是对象方面的问题,其实我对这个说法还有点迷惑~~~ txxcat 发表于 2020-6-6 22:15
输入0到2会在你的代码中进行了2次判断,所以会打印2次,把第二个if改成 elif就可以了,另外while循环没有退 ...
加入退出机制我懂了,谢谢提醒。
另外,能不能详细说一下关于对象的问题,我知道这个最基本的概念问题,但是我确实不是很懂~~~ Twilight6 发表于 2020-6-6 20:35
并不会啊...
您好,代码这部分是怎么添加的啊?链接? Twilight6 发表于 2020-6-7 09:11
没事问题已经解决就设置最佳答案吧
好的,第一次来发帖,不是很懂怎么操作,请多包涵~ wswzmomoda 发表于 2020-6-7 08:53
对,我试着做过第二个,输入正常。另外,如果只有两行判断,中间不加elif,而只有if和else的话,不算不完 ...
我的理解是代码从上往下依次执行,if if else应该就是判断了两次 老兵hb 发表于 2020-6-7 09:37
我的理解是代码从上往下依次执行,if if else应该就是判断了两次
不是很理解,因为它的输出是0和15两个结果,但是,这样的话,条件怎么没有起作用?毕竟2是包括在0<=int(message)<3里面而不包括在其他的条件里的。 wswzmomoda 发表于 2020-6-7 09:12
加入退出机制我懂了,谢谢提醒。
另外,能不能详细说一下关于对象的问题,我知道这个最基本的概念问题, ...
对象这个比较复杂,可不是一两句话能说清楚的,从大的方面说,叫:万物皆对象;从小的方面来说,对象是类的实例化。这种理解对学习对象也没太大的帮助,你可以把小甲鱼的关于对象的视频反复多看几次,作业认真做,再加上悟性,总会学会对象编程的。 txxcat 发表于 2020-6-7 12:30
对象这个比较复杂,可不是一两句话能说清楚的,从大的方面说,叫:万物皆对象;从小的方面来说,对象是类 ...
好的,我试试。
页:
[1]