【问题标题】:Stuck on a stadium python code卡在体育场 python 代码上
【发布时间】:2014-02-22 08:59:49
【问题描述】:

您好,我是 python 的初学者,我在课堂上遇到了一个问题,希望得到一些指导。 班级的问题是:体育场座位:运动场有三个座位类别。对于棒球比赛,A 级座位每个 15 美元,B 级座位每个 12 美元,C 级座位每个 9 美元。创建一个 python 程序,允许用户输入每个班级的售票数量。该程序应该能够显示每类门票销售产生的收入金额和产生的总收入。 为票数添加输入验证,以便只允许数字。您的程序不得让其余代码在输入无效的情况下运行。

现在我大部分时间都在工作,但由于某种原因,我的收入 2 和 3 并没有乘以价格的门票数量,而只是从价格中写出很多倍的门票数量。似乎只有影响 B 类和 C 类

这是我的代码

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 类销售额:$111111111111 C类销售额:$111111111

【问题讨论】:

  • 你需要调用int(sales1) * 15 ...在python中乘以字符串,但它会重复字符串,这不是你想要的。
  • 离题了...但是亲爱的上帝,如果他们没有输入有效的整数会发生什么?!...他们没有重新输入的选项...。​​它只是保持垃圾邮件无效! (我可能是错的......有一段时间没有处理python......)

标签: python class


【解决方案1】:
sales =int(sales2)
Sales2 =int(sales3)

salesSales2 很可能不是您想要使用的变量名,考虑到您以后会这样做

income2 = int(sales2 * 12)
income3 = int(sales3 * 9)

好像sales2sales3 是整数。很可能,您想遵循您在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 个输入验证部分也会出现同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2021-06-17
    • 2013-03-17
    • 2015-09-06
    相关资源
    最近更新 更多