被困在python代码中
大家好,我是python的初学者,我在课堂上遇到了一个问题,我有点困惑,希望得到一些指导。 课堂上的问题是:体育场座位:体育场有三种座位类别。一场棒球比赛,a类座位每套15美元,B类座位每套12美元,C类座位每套9美元。创建一个python程序,允许用户输入每个类的门票销售数量。该程序应能显示每类门票销售产生的收入金额和产生的总收入。 添加票证数量的输入验证,以便只允许数字。您的程序不能让其余代码以无效输入运行 现在我大部分的钱都用在工作上了,但出于某种原因,我的收入2和3并没有乘以票价的票数,而是把票价的多少倍写下来。这似乎只影响到B级和C级 这是我的密码被困在python代码中,python,class,Python,Class,大家好,我是python的初学者,我在课堂上遇到了一个问题,我有点困惑,希望得到一些指导。 课堂上的问题是:体育场座位:体育场有三种座位类别。一场棒球比赛,a类座位每套15美元,B类座位每套12美元,C类座位每套9美元。创建一个python程序,允许用户输入每个类的门票销售数量。该程序应能显示每类门票销售产生的收入金额和产生的总收入。 添加票证数量的输入验证,以便只允许数字。您的程序不能让其余代码以无效输入运行 现在我大部分的钱都用在工作上了,但出于某种原因,我的收入2和3并没有乘以票价的票数,
sales1=input("Enter number of tickets sold for Class A seats:")
#Validating sale
while not sales1.isnumeric():
print("INVALID INPUT:Please enter a number:")
#Convert sales to a number
sales1 =int(sales1)
sales2=input("Enter number of tickets sold for Class B seats:")
#Validating sale
while not sales2.isnumeric():
print("INVALID INPUT:Please enter a number:")
#Convert sales to a number
sales =int(sales2)
sales3=input("Enter number of tickets sold for Class C seats:")
#Validating sale
while not sales3.isnumeric():
print("INVALID INPUT:Please enter a number:")
#Convert sales to a number
Sales2 =int(sales3)
#Income
income1 = int(sales1 * 15)
print("Sales for Class A:$" , end="")
print(income1)
income2 = int(sales2 * 12)
print("Sales for Class B:$" , end="")
print(income2)
income3 = int(sales3 * 9)
print("Sales for Class C:$" , end="")
print(income3)
#Total
Total = int(income1 + income2 + income3)
print("Total revenue from ticket sales:$")
print (total)
我的结果就是这样
输入A类座位的售出票数:1
输入B类座位的售出票数:1
输入C类座位的售出票数:1
A类的销售额:15美元。
B类的销售额:111111美元
C类的销售额:111111美元
sales =int(sales2)
Sales2 =int(sales3)
sales
和Sales2
很可能不是您想要使用的变量名,考虑到您以后会这样做
income2 = int(sales2 * 12)
income3 = int(sales3 * 9)
好像sales2
和sales3
是整数。最有可能的情况是,您希望遵循您通过sales1
设置的模式:
sales1 =int(sales1)
和使用
sales2 = int(sales2)
sales3 = int(sales3)
请注意,一旦有了数字,就不需要对每次计算的结果一直调用int
。这:
income1 = int(sales1 * 15)
可能只是
income1 = sales1 * 15
当我们在做的时候,这是你的下一个错误。本部分:
while not sales1.isnumeric():
print("INVALID INPUT:Please enter a number:")
要求用户修复输入,但实际上不允许用户这样做。它只是打印出一个无限的消息流,纠缠着用户去做。您需要调用input
,从用户那里获取新号码。其他3个输入验证部分也会出现同样的问题
sales
和Sales2
很可能不是您想要使用的变量名,考虑到您以后会这样做
income2 = int(sales2 * 12)
income3 = int(sales3 * 9)
好像sales2
和sales3
是整数。最有可能的情况是,您希望遵循您通过sales1
设置的模式:
sales1 =int(sales1)
和使用
sales2 = int(sales2)
sales3 = int(sales3)
请注意,一旦有了数字,就不需要对每次计算的结果一直调用int
。这:
income1 = int(sales1 * 15)
可能只是
income1 = sales1 * 15
当我们在做的时候,这是你的下一个错误。本部分:
while not sales1.isnumeric():
print("INVALID INPUT:Please enter a number:")
要求用户修复输入,但实际上不允许用户这样做。它只是打印出一个无限的消息流,纠缠着用户去做。您需要调用
input
,从用户那里获取新号码。其他3个输入验证部分也会出现同样的问题。您需要调用int(sales1)*15
。。。在python中,字符串相乘是有效的,但它会重复字符串,这不是你想要的。离题了…但是哦,亲爱的上帝,如果他们没有输入有效的整数会发生什么?!。。。他们没有重新进入的选择。。。。它只是不断的垃圾信息无效!(我可能错了……有一段时间没有处理python了……)您需要调用int(sales1)*15
。。。在python中,字符串相乘是有效的,但它会重复字符串,这不是你想要的。离题了…但是哦,亲爱的上帝,如果他们没有输入有效的整数会发生什么?!。。。他们没有重新进入的选择。。。。它只是不断的垃圾信息无效!(我可能错了……有一段时间没有处理python了……)