首页 文章

ValueError:具有基数10的int()的无效文字无法弄清楚原因

提问于
浏览
-1

我似乎无法弄清楚为什么当我运行我的程序时,我收到错误ValueError:int()的无效文字,基数为10:'输入便士:' . 整个程序是由我的讲师制作的,所以我们可以添加功能以使其工作 . 我目前正在尝试定义get_input1,但我没有运气 . 任何帮助都会很棒 .

def main():
    pennies = get_input1("Enter pennies : ")
    nickels = get_input("Enter nickels : ")
    dimes = get_input("Enter dimes : ")
    quarters = get_input("Enter quarters : ")

    print("You entered : ")
    print("\tPennies  : " , pennies)
    print("\tNickels  : " , nickels)
    print("\tDimes    : " , dimes)
    print("\tQuarters : " , quarters)


    total_value = get_total(pennies, nickels, dimes, quarters)
    dollars = get_dollars(pennies, nickels, dimes, quarters)
    left_over_cents = get_left_over_cents(pennies, nickels, dimes, quarters)

    print("Total = $", total_value, sep="")
    print("You have", dollars, "dollars and", left_over_cents, "cent(s)")

def get_input1(pennies):
    int(input("Enter Pennies: "))
    if int(pennies) < 0:
        print('Error: money cannot be negative')
        pennies = int(input('Enter correct amount of pennies: '))



main()

3 回答

  • 0

    改变这个:

    int(input("Enter Pennies: "))
    

    对此:

    pennies = input("Enter Pennies: ")
    

    Edited 我相信这只是一个错字,你应该为输入结果指定便士 .

  • 1
    def main():
        pennies = get_input1("Enter pennies : ")
        nickels = get_input2("Enter nickels : ")
        dimes = get_input3("Enter dimes : ")
        quarters = get_input4("Enter quarters : ")
    
        print("You entered : ")
        print("\tPennies  : " , pennies)
        print("\tNickels  : " , nickels)
        print("\tDimes    : " , dimes)
        print("\tQuarters : " , quarters)
    
    
        total_value = get_total(pennies, nickels, dimes, quarters)
        dollars = get_dollars(pennies, nickels, dimes, quarters)
        left_over_cents = get_left_over_cents(pennies, nickels, dimes, quarters)
    
        print("Total = $", total_value, sep="")
        print("You have", dollars, "dollars and", left_over_cents, "cent(s)")
    
    def get_input1(pennies):
        pennies = int(input("Enter Pennies: "))
        if int(pennies) < 0:
            print('Error: money cannot be negative')
            pennies = int(input('Enter correct amount of pennies: '))
    
        return(pennies)
    
    def get_input2(nickels):
        nickels = int(input("Enter nickels: "))
        if int(nickels) < 0:
            print('Error: money cannot be negative')
            pennies = int(input('Enter correct amount of nickels: '))
    
        return(nickels)
    
    def get_input3(dimes):
        dimes = int(input("Enter dimes: "))
        if int(dimes) < 0:
            print('Error: money cannot be negative')
            pennies = int(input('Enter correct amount of dimes: '))
    
        return(dimes)
    
    def get_input4(quarters):
        quarters = int(input("Enter quarters: "))
        if int(quarters) < 0:
            print('Error: money cannot be negative')
            pennies = int(input('Enter correct amount of quarters: '))
    
        return(quarters)
    
    main()
    

    这将帮助您完成定义您的便士,镍币,硬币和四分之一 . 现在,您必须定义get_total,get_dollar和get_left_over_cents .

    你需要在int值前面有便士,这就是你收到错误的原因 . 然后你可以将便士的 Value 返还给主要货币 .

    希望这可以帮助!

  • 0

    您的数据流向后 . 在main()中,你调用get_input1来检索值,就像输入()一样,但是如果我们看一下get_input1会:

    # Names its argument, which was a question, "pennies"
    def get_input1(pennies):
        # Asks a question, converts to int, and discards it
        int(input("Enter Pennies: "))
        if int(pennies) < 0:    # Converts pennies to int; but it was a question!
            print('Error: money cannot be negative')
            # This is the only place to alter pennies, but it doesn't return it
            pennies = int(input('Enter correct amount of pennies: '))
    

    看起来这曾经是重构的代码,用于处理每个函数调用的各种硬币,但它没有它需要的两个修改:一种改变它要求的方式,以及一种返回什么的方法回答是 . 请注意,函数参数(如get_input1中的便士)是局部变量;主要从未看到它的变化 .

相关问题