2014-08-29 97 views
0

你好,我想知道爲什麼我的加法運算的代碼不能正常工作,我是新來的,一般蟒蛇和編程,我使用python 3.4.1.Heres代碼:爲什麼我的簡單蟒添加計算器工作?

def add(x, y): 
    """This function will add two numbers""" 

    return x + y 


number1 = int(input("pick a number: ")) 

number2 = int(input("pick another number: ")) 

choice = input 
choice2 = input 
if choice == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10': 
    print (number1,"+",number2, "=", add(number1,number2)) 

if choice2 == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10': 
    print (number1,"+",number2, "=", add(number1,number2)) 

編輯:感謝你大家的幫助我想出來:)

回答

0

它看起來像你想要用戶輸入兩個數字,然後你驗證這兩個數字都在1和10之間,如果他們是,你輸出的加法字符串。

在這種情況下:行int(input("pick a number: "))已經保證輸入將是一個數字。功能int將輸入轉換爲數字。

因此,所有剩下的就是檢查兩個輸入都是1和10 之間

def add(x, y): 
    """This function will add two numbers""" 
    return x + y 

number1 = int(raw_input("pick a number: ")) 

number2 = int(raw_input("pick another number: ")) 

if 1 <= number1 <= 10 and 1 <= number2 <= 10: 
    print (number1,"+",number2, "=", add(number1,number2)) 

如果你真的想是不錯的用戶,您可以根據您去驗證他們的意見:

number1 = -1 
while not 1 <= number1 <= 10: 
    number1 = int(raw_input("pick a number: ")) 

number2 = -1 
while not 1 <= number2 <= 10: 
    number2 = int(raw_input("pick another number: ")) 

print (number1,"+",number2, "=", add(number1,number2)) 
+0

我在這臺機器上的Python 2.7.6。隨意將'raw_input'改回'input'。 – 2014-08-29 05:05:36

+0

非常感謝你,我得到它的工作:) – jediquest1 2014-08-29 05:24:19

0

在Python中,'a' 'b'是與'ab'相同。

因此,您的代碼要求輸入字符串,將它們轉換爲整數,然後再詢問另外兩個字符串,將其與'12345678910'進行比較。除非您爲其中一個輸入'12345678910',否則沒有任何反應。

不幸的是,除此之外,你的問題有點含糊。如果你描述程序應該做什麼(「計算器」還不夠具體),我們可能會幫助你研究如何去做。

編輯:太多的紅寶石,甚至沒有注意到choice = input的事情。見rroszkowiak的答案。

+0

我只是希望它的兩個數字相加 – jediquest1 2014-08-29 05:02:33

+0

如果你想讓它在'number1'和'number2'添加數字,什麼是'choice'和'choice2'呢? – Amadan 2014-08-29 05:04:18

+0

好,我還以爲你需要這些 – jediquest1 2014-08-29 05:07:01

0

分配

choice = input 

所以:

>>> choice = input 
>>> choice 
<built-in function input> 

選擇永遠不會等於任何數字,因爲您將其分配給內置函數。 你的條件也是錯的。你應該檢查一下:

if variable in ('1', '2', etc...,): 

或者說,在這種情況下,更好地

if variable in range(1, 11): 

此外,爲什麼你嘗試引入「選擇」變量?你可以檢查你的數字變量是否是正確的數字。

1

這裏,input沒有定義,所以它會拋出一個錯誤input undefined

choice = input 
choice2 = input 

你不能做這種方式:

if choice == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10': 
    print (number1,"+",number2, "=", add(number1,number2)) 

if choice2 == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10': 
    print (number1,"+",number2, "=", add(number1,number2)) 

做這將是正確的方法:

if int(choice) <= 10: 
    # do something 

這就是你應該怎麼做,如果你想限制從數字到110

num1 = int(input("Pick a number: ")) 
num2 = int(input("Pick another number: ")) 

if num1 <= 10 and num2 <= 10: 
    print(str(num1) + "+" + str(num2) "=", str(sum([num1, num2]))) 
else: 
    print("The number you entered is greater than 10") 

如果你不熟悉的sum()功能,sum([num1, num2])返回NUM1和NUM2的總和。

這是因爲如果你想要把沒有限制:

num1 = int(input("Pick a number: ")) 
num2 = int(input("Pick another number: ")) 

print("The sum of " + num1 + "and " + num2 + "is: " + str(sum([num1 + num2]))) 
+0

我試過這種方式,我得到一個語法錯誤,這裏是我的代碼現在 – jediquest1 2014-08-29 05:21:11

+0

'def add(x,y): \t「」「這個函數將添加兩個數字「」」 \t返回X + Y \t 號碼=範圍(1,11) NUM1 = INT(輸入( 「選擇一個號碼: 」)) NUM2 = INT(輸入(「 選擇另一數:」 )) 如果NUM1在數量上和NUM2在數字:#如果輸入NUM1在列表編號,然後執行以下操作,否則執行其他部分。(「你輸入的數字大於10」) – jediquest1 2014-08-29 05:21:32

+0

print(str(num1)+「+」+ str(num2)「=」,sum([num1,num2])) else: 編輯我的答案,現在試試。它應該工作。 – 2014-08-29 05:28:03

0

你可以有你選擇的任意兩個數字計算器,然後選擇你要對他們做什麼:

num_1 = int(raw_input("Enter Your First Number")) 
num_2 = int(raw_input("Enter Your Second Number")) 
sum_1 = raw_input("Choose Sum (+ -/or *)") 

if sum_1 == "+": 
    print num_1, "+", num_2, "=", num_1 + num_2 
elif sum_1 == "-": 
    print num_1, "-", num_2, "=", num_1 - num_2 
elif sum_1 == "/": 
    print num_1, "/", num_2, "=", num_1/num_2 
elif sum_1 == "*": 
    print num_1, "*", num_2, "=", num_1 * num_2 
else: 
    print "Numbers or Sum Not Recognised"