-1

答えが正しいかどうかを確認できるように、ユーザーに空の文字列を入力するように求めることができる必要があります。しかし、それを行うたびに、int() の無効なリテラルと言ってエラーになる可能性があるため、int() と string() を受け入れることができるように user_input を変更する必要があります。どうすればそれが可能になりますか?

# program greeting 
print("The purpose of this exercise is to enter a number of coin values") 

print("that add up to a displayed target value.\n") 

print("Enter coins values as 1-penny, 5-nickel, 10-dime,and 25-quarter.") 

print("Hit return after the last entered coin value.")

print("--------------------") 

#print("Enter coins that add up to 81 cents, one per line.")

import sgenrand

    #prompt the user to start entering coin values that add up to 81  
    while True: 
        total = 0 
        final_coin= sgenrand.randint(1,99)

        print ("Enter coins that add up to", final_coin, "cents, on per line") 

        user_input = int(input("Enter first coin: "))

        if user_input != 1 and user_input!=5 and user_input!=10 and user_input!=25:
        print("invalid input")

        else:
            total = total + user_input


        while total <= final_coin:
            user_input = int(input("Enter next coin:"))

            if user_input != 1 and user_input!=5 and user_input!=10 and user_input!=25:
                print("invalid input")                

            else:
                total = total + user_input


        if total > final_coin : 
            print("Sorry - total amount exceeds", (final_coin)) 

        elif total < final_coin:
            print("Sorry - you only entered",(total))

        else: 
            print("correct")    

        goagain= input("Try again (y/n)?:") 

        if goagain == "y":
            continue
        elif goagain == "n":
            print("Thanks for playing ... goodbye!" )
            break
4

1 に答える 1

3
  1. によって返された値input()を変数に格納します。
  2. を呼び出す前に、文字列が空でないことを確認してくださいint()
    • ゼロの場合、それは空の文字列です。
    • それ以外の場合は、試してみint()てください。
于 2013-10-11T04:15:58.037 に答える