2014-06-15 34 views
-1

我正在爲python做一個計算器,但麻煩的是,我的老師一無所知。我製作了計算器,但我需要添加一些代碼,以便用戶不能輸入大於999的數字,如果他們這樣做,會創建一個循環,其中軟件會詢問用戶輸入的內容。任何幫助?如何防止用戶輸入超過999的值?

# Program make a simple calculator 
# that can add, subtract, multiply 
# and divide using functions 

# define functions 
def add(x, y): 
    """This function adds two numbers""" 

    return x + y 

def subtract(x, y): 
    """This function subtracts two numbers""" 

    return x - y 

def multiply(x, y): 
    """This function multiplies two numbers""" 

    return x * y 

def divide(x, y): 
    """This function divides two numbers""" 

    return x/y 

# take input from the user 
print("Select operation.") 
print("1.Add") 
print("2.Subtract") 
print("3.Multiply") 
print("4.Divide") 

choice = input("Enter choice(1/2/3/4):") 

num1 = int(input("Enter first number: ")) 
num2 = int(input("Enter second number: ")) 

if choice == '1': 
    print(num1,"+",num2,"=", add(num1,num2)) 

elif choice == '2': 
    print(num1,"-",num2,"=", subtract(num1,num2)) 

elif choice == '3': 
    print(num1,"*",num2,"=", multiply(num1,num2)) 

elif choice == '4': 
    print(num1,"/",num2,"=", divide(num1,num2)) 
else: 
    print("Invalid input") 

我已經嘗試了各種東西,但沒有任何作品 附:我有點新手的這樣下去容易 感謝

+0

你已經擁有所需要的積木。 '如果#號大於999,請讓用戶再次輸入。只要條件爲真,您就可以使用'while'來執行一段代碼(提示提示:輸入代碼)。 –

回答

2
while True: 
    num = int(raw_input('enter an integer <= 999: ')) 
    if num <= 999: 
     break 
    print('invalid input, please try again!') 

print('you entered: {}'.format(num)) 
+0

當我添加代碼時,它只是不斷要求輸入數字 - choice = input(「Enter choice(1/2/3/4):」) num1 = int(input(「Enter first number:」) ) num2 = int(input(「Enter second number:」)) while True: num = int(raw_input('enter a number:')) if num <= 999: break-輸出=輸入選項1/2/3/4):2 輸入第一數目:9999999 輸入第二個數字:9999999 輸入號碼:9999999999999999 輸入號碼:9999999999999999 輸入號碼:999999999999999 輸入號碼:99999999999999999 對不起,我'人代碼 – user3742334

+0

@ user3742334代碼應該永遠運行,直到用戶輸入一個有效的數字。我已經在上面的演示中添加了一些打印語句來清楚地說明。此外,請記住調整演示中的任何變量名稱以匹配您的實際代碼。 – timgeb

2
MAX_VALUE = 999 

def read_number(message): 
    n = MAX_VALUE 
    while (n >= MAX_VALUE): 
     n = int(raw_input(message)) 
    return n 

num1 = read_number("Enter first number:") 
num2 = read_number("Enter second number:") 

實例運行:

Enter first number: 1000 
Enter first number: 56 
Enter second number: 800 
+0

我已經使用您的代碼編輯了我的代碼並更改了變量。循環是有效的,但是當我輸入2個有效數字時,當它輸出答案num1 = int(input(「輸入第一個數字:」))時輸出'無效輸入') num2 = int(input(「Enter second number :「)) MAX_VALUE = 999 DEF read_number(消息): NUM1 = MAX_VALUE 而(NUM1> = MAX_VALUE): NUM1 = INT(的raw_input(消息)) 返回NUM1 – user3742334

+0

消息 「無效的輸入」 被打印當選擇無效時,不是操作數。確保您在正確的時間輸入正確的號碼。當您實際上應該輸入選項時,您可能正在輸入一個操作數。 –