2016-10-21 2 views
0

Почему эта функция не работает?Python 2.7.10 SyntaxError: недействительный синтаксис

def elo(Winner_Elo,Loser_Elo): 
     max_ero = float(400) 
     voitto = 1 
     havio = 0 
     K = 20 
     odotusarvo1 = 1/(1 + (10**((Loser_Elo - Winner_Elo)/max_ero)) 
     odotusarvo2 = 1/(1 + (10**((Winner_Elo - Loser_Elo)/max_ero)) 
     elo1 = Winner_Elo + K*(voitto - odotusarvo1) 
     elo2 = Loser_Elo + K*(havio - odotusarvo2) 
     return elo1, elo2 

Ошибка:

File "sss.py", line 39 
    odotusarvo2 = 1/(1 + (10**((Winner_Elo - Loser_Elo)/max_ero)) 
     ^
SyntaxError: invalid syntax 

Первая переменная 'odotusarvo1', кажется, работает нормально?

+5

Подсчитайте количество круглых скобок у вас в 'odotusarvo1' (и 2) линии – Andy

ответ

0

Вместо этого:

 odotusarvo1 = 1/(1 + (10**((Loser_Elo - Winner_Elo)/max_ero)) 
     odotusarvo2 = 1/(1 + (10**((Winner_Elo - Loser_Elo)/max_ero)) 

сделать это:

 odotusarvo1 = 1/(1 + (10**((Loser_Elo - Winner_Elo)/max_ero))) 
     odotusarvo2 = 1/(1 + (10**((Winner_Elo - Loser_Elo)/max_ero))) 

У вас есть несбалансированные скобки.

+0

Спасибо! Работаю сейчас. – tmi12

0

Вы забыли некоторые круглые скобки после max_ero

def elo(Winner_Elo,Loser_Elo): 
    max_ero = float(400) 
    voitto = 1 
    havio = 0 
    K = 20 
    odotusarvo1 = 1/(1 + (10**((Loser_Elo - Winner_Elo)/max_ero))) 
    odotusarvo2 = 1/(1 + (10**((Winner_Elo - Loser_Elo)/max_ero))) 
    elo1 = Winner_Elo + K*(voitto - odotusarvo1) 
    elo2 = Loser_Elo + K*(havio - odotusarvo2) 
    return elo1, elo2 
Смежные вопросы