2016-08-30 17 views
-2

これは私のスクリプトです。計算機のように動作するスクリプトですが、実行するとwhileループの構文が無効になります。私はパイソンに私は助けてください新しいです。Pythonのwhileループで構文エラーが発生する

import functools 
numbers=[] 

def mean(): 
    end_mean = functools.reduce(lambda x, y: x + y, numbers)/len(numbers) 
    print(end_mean) 

def sums(): 
    end_sum = functools.reduce(lambda x, y: x + y, numbers) 
    print(end_sum) 

def whatDo(): 
    print('Input Extra Numbers '+str(len(numbers)+1)+' (or nothing to close):') 
    try: 
     number= int(input()) 
     numbers.append(number) 
    except: 
     print('What do you want to do?') 
     answer = input() 
     if answer == "mean": 
      mean() 
     elif answer == 'sum': 
      sums() 
     elif answer== 'median': 
      median() 

def median(): 
    numbers.sort() 
    medianNumber=int(len(numbers)) 
    if medianNumber%2==0: 
     end_median=numbers[int(len(numbers))/2]+numbers[int(len(numbers))/2+1] 
    if medianNumber%2==1: 
     numbers[int(len(numbers))+1/2 

while True: 
    print('Input Number '+str(len(numbers)+1)+' (or nothing to close):') 
    try: 
     number= int(input()) 
     numbers.append(number) 
    except: 
     print('What do you want to do?') 
     answer = input() 
     if answer == "mean": 
      mean() 
     elif answer == 'sum': 
      sums() 
     elif answer== 'median': 
      median() 
     print('Do you want anything else?') 
     reply=input() 
     if reply=='no': 
      break 
     elif reply=='yes': 
      whatDo() 
     else: 
      break 

whileループを削除しましたが、印刷機能が無効であると言われました。私はPythonには新しいことを覚えておいてください。

+3

その前の行に ']'がありません。 – Barmar

+0

また、その行には割り当て操作がないようです。 – Barmar

+0

なぜ 'functools.reduce'を使ってシーケンスの合計を得るのですか?組み込みの 'sum'関数を使うだけです。 –

答えて

2

whileループは、ラインに閉じ括弧を追加する前に:

numbers[int(len(numbers))+1/2]

通常、常にc PythonがあなたにSyntaxErrorが見つかりましたが、あなたの構文が有効であると伝えている場合は、エラーが発生した場所の上の行を確認してください。

0

だけwhileループする前に、その行があるべきnumbersリスト

の使用に]が欠落しています。

numbers[int(len(numbers))+1/2] 
+1

答えに ']'もありません! –

関連する問題