我有点问题,我正在尝试创建一个程序,该程序使用函数来确定三个参赛者在登上领奖台时必须放置的顺序。运行时,程序将如下所示:
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
我是一名初学程序员,只是在漫长的假期回来。任何人都可以解释什么"不能分配函数来调用"意味着,也许可以帮助我解决问题的原因?这对我来说有点天文数字。
谢谢!
答案 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
的目标是什么。