2016-08-30 5 views
0

Dies ist mein Skript, ich bin neu zu Python, aber gekommen, um dies zu bekommen, bitte als solche in den Antworten zu vergeben und daran denken, dass ich neu zu diesem Thema bin.Fehler mit Rechner Typ Programm in Python ValueError

import functools 
numbers=[] 

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

def sum(): 
    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": 
       means() 

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": 
      means() 
      print('Do you want anything else?') 
      reply=input() 
      if reply=='no': 
       break 
      elif reply--'yes': 
       whatDo() 
     else: 
      break 

ich erhalte jedoch diese:

Traceback (most recent call last): 
    File "E:/Python/calculator.py", line 26, in <module> 
    number= int(input()) 
ValueError: invalid literal for int() with base 10: '' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "E:/Python/calculator.py", line 37, in <module> 
    elif reply--'yes': 
TypeError: bad operand type for unary -: 'str' 

nach dem 'Wollen Sie etwas anderes', und ich geben 'Ja'.

+3

Das Problem ist ziemlich klar sein: 'antworten == 'yes'' –

Antwort

3

elif reply--'yes': sollte elif reply == 'yes':

1

Sie einen Tippfehler hatte

elif reply--'yes' 

es sollte natürlich

elif reply=='yes'