Python中的Parket票证系统

2024-06-16 10:42:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python创建一个基本的parket票证系统。如何让代码执行以下操作: -询问用户他们要呆多少小时,作为输入。 -有六种不同的情况-1小时住院,2小时住院,3小时住院,4小时住院,5小时住院和6小时住院。 -要求用户将硬币插入机器。 -把他们付清的全部余额拿出来,不停地让他们往机器里塞硬币,直到他们最后的余额等于总价格。 -当他们付清全部余额后,向用户输出一条“ticket”消息

  • 我曾尝试使用if语句向用户输出他们必须支付的金额
  • 我已经为价格和时间创建了数组,以显示1小时住宿、2小时住宿等的成本
  • 我已经为客户可以支付的硬币创建了一个数组-除了这些硬币之外,不允许有任何其他价值
  • 我们尝试创建两个独立的变量,balancePaid和newBalance来跟踪客户必须支付的剩余资金

    hours = [1, 2, 3, 4, 5, 6]
    price = [1.50, 2.50, 3.50, 4.50, 5.50, 6.50]
    
    hoursStayed = int;
    hoursStayed = input("How many hours have you stayed")
    
    if hoursStayed == 1:
        print("Your parking ticket price is " + price[0])
    
    if hoursStayed == 2:
        print("Your parking ticket price is " + price[1])
    
    if hoursStayed == 3:
        print("Your parking ticket price is " + price[2])
    
    if hoursStayed == 4:
        print("Your parking ticket price is " + price[3])
    
    if hoursStayed == 5:
        print("Your parking ticket price is " + price[4])
    
    if hoursStayed == 6:
        print("Your parking ticket price is " + price[5])
    
    balancePaid = input("Please insert coins into machine")
    
    
    coins = [2.00, 1.00, 0.50, 0.20, 0.10]
    
    if balancePaid not in coins:
        print("Sorry, you must only pay £2, £1, 50p, 20p or 10p")
    
    
    if balancePaid == coins[0]:
        newBalance = balancePaid - 2.00
        input("You now have to pay " + newBalance)
    
    if balancePaid == coins[1]:
        newBalance = balancePaid - 1.00
        input("You now have to pay " + newBalance)
    
    if balancePaid == coins[2]:
        newBalance = balancePaid - 0.50
        input("You now have to pay " + newBalance)
    
    if balancePaid == coins[3]:
        newBalance = balancePaid - 0.20
        input("You now have to pay " + newBalance)
    
    if balancePaid == coins[4]:
        newBalance = balancePaid - 0.10
        input("You now have to pay " + newBalance)
    
  • 当用户输入他们停留的小时数时,不会按预期打印票价

  • 每当将数组中的硬币添加到机器中时,仍会抛出一条错误消息

Tags: inputyourifishaveticketpriceprint
1条回答
网友
1楼 · 发布于 2024-06-16 10:42:13

可能您的输入是作为str变量来的,但是您将这些值与int(小时)或float(硬币)变量进行比较

您使用的是完全等价的比较(==),因此这将失败,因为1"1"不完全相同,等等

您应该将输入转换为使用相同的变量类型

相关问题 更多 >