首页 > 解决方案 > 计算门票总数并给予学生折扣。计算总数和循环的功能有问题

问题描述

售票。根据半价票和全价票的数量计算总数。如果用户是学生,则每张票可享受 50 美分的折扣。要求用户输入儿童票的数量、成人票的数量以及该人是否是学生(y/n)。继续询问,直到用户输入 0 和 0

FULL_PRICE = 10.00
HALF_PRICE = FULL_PRICE % 2
giveDiscount = True


def calculatePrice(nHalfPriceTix, nFullPriceTix, giveDiscount):
    
    if giveDiscount:
        total = (nHalfPriceTix * HALF_PRICE) + (nFullPriceTix * FULL_PRICE) - .5

    else:    
        total = (nHalfPriceTix * HALF_PRICE) + (nFullPriceTix * FULL_PRICE)
                                                
    return total

while True:
    print()
    nChildTickets = input('How many child tickets do you want? ')
    nChildTickets = int(nChildTickets)
    nAdultTickets = input('How many adult tickets do you want? ')
    nAdultTickets = int(nAdultTickets)
    if (nChildTickets == 0) or (nAdultTickets == 0):
        break

    yesOrNo = input('Are you a student (y/n)? ')
    if yesOrNo.lower() == 'y':
        isStudent = True 
    else:
        isStudent = False

    thisTotal = calculatePrice(nChildTickets, nAdultTickets)
    print('Your total is $' + thisTotal)
    print()

    totalSales = totalSales + thisTotal

    print('Total of all sales $', totalSales)

标签: pythonfunctionloops

解决方案


还要补充一点,这个:

print('Your total is $' + thisTotal)

应该:

print('Your total is $' + str(thisTotal))

因为 ' +' 运算符print()只能接受字符串(不是浮点数)。

或者您可以将 更改+,.


推荐阅读