【问题标题】:Python 2.7.10 SyntaxError: invalid syntax [closed]Python 2.7.10 SyntaxError:无效语法 [关闭]
【发布时间】:2016-10-21 20:10:08
【问题描述】:

为什么这个功能不起作用?

    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' 似乎工作正常?

【问题讨论】:

  • 计算odotusarvo1(和2)行中括号的数量

标签: python python-2.7 syntax-error


【解决方案1】:

而不是这个:

        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)))

你有不平衡的括号。

【讨论】:

  • 谢谢!现在工作。
【解决方案2】:

你忘记了 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

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2022-08-24
    • 2020-12-01
    • 2022-06-14
    • 2022-12-03
    相关资源
    最近更新 更多