需要帮助订购功能和未知错误"不能分配功能来调用"

时间:2017-03-17 00:36:40

标签: python python-3.4

我有点问题,我正在尝试创建一个程序,该程序使用函数来确定三个参赛者在登上领奖台时必须放置的顺序。运行时,程序将如下所示:

Please enter time and rider code: 53.21 HWS
Please enter time and rider code: 53.56 MAZ
Please enter time and rider code: 52.99 TMA
Please enter time and rider code: 

Top 3 riders are on the podium in this order:
HWS TMA MAZ

第一名选手将被放置在讲台的中央部分,左侧第二名,右侧第三名。我无法弄清楚我的代码有什么问题,但我感觉我已经接近了。

这是我的代码:

CYCLISTS = []
SECONDARY_LIST = {}

def placingInOrder(numeral):
    placing = input("Please enter time and rider code: ")
    while placing != '':
        time, code = placing.split()
        time = float(time)
        numeral(time) = code
        placing = input("Please enter time and rider code: ")

    return(placing)

###MAIN ROUTINE###

placingInOrder(CYCLISTS)
firstPlace = sorted(CYCLISTS)


for i in firstPlace:
    SECONDARY_LIST.append(CYCLISTS[1])

print(SECONDARY_LIST[1], SECONDARY_LIST[0], SECONDARY_LIST[2])

我不确定如何修复它,当我运行它时,程序会显示: screen capture of my error

我是一名初学程序员,只是在漫长的假期回来。任何人都可以解释什么"不能分配函数来调用"意味着,也许可以帮助我解决问题的原因?这对我来说有点天文数字。

谢谢!

2 个答案:

答案 0 :(得分:0)

我调试你的代码,见下文

你代码数字(时间)=代码,数字是列表,你对待她是功能,所以是错误的

#!/usr/bin/env python
# coding:utf-8
'''黄哥Python'''

CYCLISTS = {}
SECONDARY_LIST = []


def placingInOrder(numeral):
    placing = input("Please enter time and rider code: ")
    while placing != '':
        time, code = placing.split()
        time = float(time)
        numeral[time] = code
        placing = input("Please enter time and rider code: ")
    return(placing)

###MAIN ROUTINE###

placingInOrder(CYCLISTS)
firstPlace = sorted(CYCLISTS)


for i in firstPlace:
    SECONDARY_LIST.append(CYCLISTS[i])

print(SECONDARY_LIST[1], SECONDARY_LIST[0], SECONDARY_LIST[2])

请输入时间和骑手代码:53.21 HWS 请输入时间和骑手代码:53.56 MAZ 请输入时间和骑手代码:52.99 TMA 请输入时间和骑手代码: HWS TMA MAZ

答案 1 :(得分:0)

目前尚不清楚numeral代表什么,但您使用numeral(time) = code是导致错误的原因。此语法表示您尝试将numeral作为函数调用time作为参数,但对于赋值语句,您需要variable = function call而不是function call = variable。无论如何,这一行没有多大意义,因为你已经将用户输入中的code用作其他内容。

如果我不得不猜测,看起来你试图通过检查时间从numeral(作为字典)查找骑车人的比赛号码。如果是这种情况,您可能希望使用racer = numeral[time]或类似的东西。但要小心 - 不能保证骑车人都会有独特的时间。

如果这不是您的意图,那么您需要更清楚地了解您的问题以及在代码中使用numeral的目标是什么。