2015-03-03 35 views
0

我需要做到這一點,我已經想出這個添加:生成兩個隨機數,再減去他們

import random 
mynos = [] 

print ("First, we'll do some addition") 

for counter in range (0,2): 
     mynumber = random.randint(1,20) 
     mynos.append(mynumber) 
print(mynos) 

the_answer = sum(mynos) 
#print(the_answer) (^^^) 

player_answer =int(input("What is the answer?")) 

def main(): 
     if player_answer is the_answer: 
      print ("Correct! Well done!") 
      print ("You scored 1 out of 10 so far!") 
      print ("Good job!") 
     else: 
      print ("Incorrect! You scored null points!") 
      print ("You have zero out of 10 so far!") 
      exit() 

main() 

這是該計劃的增加部分,而不是使用sum有什麼用於減去mynos中的兩個隨機生成的數字?

+1

這裏的問題是用'sum'元素的順序無關緊要。用減法,元素**的排序將**影響結果。也許手動減法命令是去這裏的正確方法。 – Lix 2015-03-03 10:08:43

+0

'進口經營者;減少(operator.sub,mynos)' 是否只有兩個數字?爲什麼不使用不同的變量呢? – dhke 2015-03-03 10:10:44

回答

1

如果你永遠只能有2個整數,只是用減法上的各個元素:

the_answer = mynos[0] - mynos[1] 

的「功能性」的方式在一個序列中減去的數字是使用reduce() function

import operator 
try: 
    # Python 3 moved reduce to the functools module 
    from functools import reduce 
except ImportError: 
    pass 

the_answer = reduce(operator.sub, mynos) 

在這種情況下,operator.sub() function代表-運營商。

+0

可以將abs(n)加到結果中。如果它不想顯示負面結果,只是兩者之間的差異。 – planet260 2015-03-03 10:10:53

+0

@ planet260:我想我知道OP正在嘗試完成哪些練習;目前有幾十個相關問題正在進行中。他們不關心絕對的結果。接下來是:乘法和除法。 – 2015-03-03 10:12:06

+0

@ planet260 - 真實 - 但「差異」與「減法」不同。這可能是這種情況,但需要使用OP進行驗證。 – Lix 2015-03-03 10:12:35