【问题标题】:How do I calculate based on two menu options?如何根据两个菜单选项进行计算?
【发布时间】:2017-04-27 00:23:59
【问题描述】:

Instruction

假设有一个图像,但我不确定你是否能看到它?

我必须向用户提供一个菜单来确定卡车的样式,然后提供另一个菜单让他们按周或每天选择费率。然后我必须知道卡车行驶了多少天/几周以及行驶了多少英里。所有这些信息都必须根据两个菜单选择及其输入来计算。我怎么说如果 A 和 1 然后等于...。我知道如何使用带有一个变量的 if 语句,但我不知道如何合并所有这些输入以进行有效计算。 请指教。以下是我到目前为止的编码。

def main():
    print('Please select from the following rental truck options')
    firstMenu()
    print("Please Tell us how many Days/Weeks you have rented our truck and how many miles were driven")
    milesTime()

def firstMenu():
    menu = input("Please bhoose from the following options(A, B, C, D)and press enter:\n"
                 "A = Class A Truck\n"
                 "B = Class B Truck\n"
                 "C = Class C Truck")
     if menu == str('A'):
         secondMenu()
     elif menu == str('B'):
         secondMenu()
     elif menu == str('C'):
         secondMenu()

    firstMenu()

def secondMenu():
    print('Please enter code for Daily or Weekly Rate')
    print("1 = Daily")
    print("2 = Weekly")
    option2 = input()
    secondMenu()

def milesTime():
    miles = input("Please Enter number of Miles Driven")
    time = input("Please Enter the number of days/weeks the truck was rented")
    milesTime()

def calculate():
    while firstMenu == 'A':

【问题讨论】:

  • 请不要对我大喊大叫,我是 stackoverflow 和 python 的菜鸟。我已经为此工作了 4 个小时,但没有运气。

标签: python function menu arguments parameter-passing


【解决方案1】:
def main():
    while True:
        menu()
        print('*' * 80)

def menu():
    class_list = ['A', 'B', 'C']
    user_class = input("Please bhoose from the following options(A, B, C, D)and press enter:\n"
                 "A = Class A Truck\n"
                 "B = Class B Truck\n"
                 "C = Class C Truck\n")
    if user_class not in class_list:
        raise ValueError('invalid classification!')
    else:
      user_class = class_list.index(user_class)
    print('Please enter code for Daily or Weekly Rate')
    print("1 = Daily")
    print("2 = Weekly")
    rent_type = input()
    if rent_type not in ['1', '2']:
        raise ValueError('invalid rental type')
    miles_time(user_class, rent_type)

def miles_time(user_class, rent_type):
    data = [
      [19.95, 0.59, 125.68],
      [29.95, 0.79, 188.68],
      [39.95, 0.85, 251.68]
    ]
    miles = int(input("Please Enter number of Miles Driven\n"))
    time = int(input("Please Enter the number of days/weeks the truck was rented\n"))
    user_data = data[user_class]
    user_rental = 0
    if rent_type == '1':
        user_rental = user_data[0] * time + miles * user_data[1]
    else:
        if miles <= time * 200:
            user_rental = user_data[2] * time
        else:
            user_rental = user_data[2] * time + (miles - 200) * user_data[1]
    print(user_rental)


if __name__ == '__main__':
    main()

未经过全面测试。但是两个给定的测试用例通过了。

【讨论】:

  • 你太棒了,这正是我所需要的!如果你有空来辅导,请告诉我
猜你喜欢
  • 2011-08-15
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
相关资源
最近更新 更多