2014-10-31 49 views
-1

我似乎無法弄清楚爲什麼當我運行我的程序我收到錯誤ValueError:無效文字爲int()與基10:'輸入便士: 」。 整個程序都是由我的導師完成的,所以我們可以添加這些功能以使其工作。即時通訊目前試圖定義get_input1,但即時通訊沒有運氣。任何幫助都會很棒。ValueError:無效文字爲int()與基數10不知道爲什麼

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() 

回答

1

改變這一點:

int(input("Enter Pennies: ")) 

這樣:

pennies = input("Enter Pennies: ") 

編輯 我相信這只是一個筆誤,你應該分配便士輸入結果。

+0

OP沒有分配任何東西給名稱int,他們不應該做的是將一個字符串傳遞給它們從不使用的函數,get_input應該不帶參數 – 2014-11-01 01:37:02

+0

@PadraicCunningham,謝謝我編輯了我的答案,我也相信這只是一個真正的錯誤,忘記將「便士」分配給輸入結果,而不是不理解它。 – Anzel 2014-11-01 02:21:30

0
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值前面有便士就是爲什麼你收到錯誤。然後你可以將這個便士的價值返還給主。

希望這會有所幫助!

+0

因爲這個網站不適合做某人編程任務的一半工作,所以下調這一點。但也許我錯了。 – 2014-10-31 23:56:48

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中的便士)是局部變量;主從未看到它的變化。

相關問題