将变量传递给Python中的函数-TypeError:缺少必需的位置参数

将变量传递给Python中的函数-TypeError:缺少必需的位置参数,python,python-3.x,Python,Python 3.x,我读过其他关于这个话题的帖子,但似乎没有一篇适合我。我得到一个错误: TypeError:calcs()缺少3个必需的位置参数:“hr”、“min”和“secs” 当我尝试将这三个变量传递到calcs()中时: 代码的目的是查看时钟上每个指针的度数(相对于12:00:00) calcs定义为接收3个参数,但在此处调用它时没有任何参数:degrees=calcs()函数签名 def计算(小时、分钟、秒): “asks”在调用时会发送3个参数。 线路 degrees=calcs() 调用所述函数

我读过其他关于这个话题的帖子,但似乎没有一篇适合我。我得到一个错误:

TypeError:calcs()缺少3个必需的位置参数:“hr”、“min”和“secs”

当我尝试将这三个变量传递到calcs()中时:

代码的目的是查看时钟上每个指针的度数(相对于12:00:00)


calcs
定义为接收3个参数,但在此处调用它时没有任何参数:
degrees=calcs()
函数签名

def计算(小时、分钟、秒):
“asks”在调用时会发送3个参数。
线路

degrees=calcs()
调用所述函数
calcs
,但不向其发送任何参数(空括号)。在后续的行中,您希望在调用时将计算出的变量发送给函数

在不透露所有信息的情况下,这里有一个提示:

degrees=calcs(已计算出\u 1、已计算出\u 2、已计算出\u 3)

正如错误所述,您说过
calcs
接受三个参数(
def calcs(hr,min,secs):
),但您没有通过任何(
degrees=calcs()
)。您希望
hrs
secs
mins
值是什么?@Carcigenicate我希望
hrs
mins
secs
成为用户输入的内容。它们用于计算返回值[度数小时,度数分钟,度数秒]如果你说它有参数,那么你需要显式地传递这些信息:
calcs(小时,分钟,秒)
。这不是
定义calcs(小时,分钟,秒):
的作用吗?@Carcigenicate我现在明白了!非常感谢。啊,我现在明白了。非常感谢。
 def input_io():
    input_time = input("Please enter the time following the HH:MM:SS format - be sure to include all colons and zeros needed. (e.g. 3:45:22 should be input as 03:45:22).")

    bool_okinput = False
    while bool_okinput != True:
        if ':' not in input_time:
            input_time = input("Missing Colon - Please check the format (HH:MM:SS) and re-enter the time.")
        elif len(input_time) != 8:
            input_time = input("Too Many/Too Few Characters - Please check the format (HH:MM:SS) and re-enter the time.")
        else:
            while bool_okinput != True:

                input_time = input_time.split(":")
                hrs = int(input_time[0])
                mins = int(input_time[1])
                secs = int(input_time[2])

                if hrs > 12:
                    input_time = input(
                        "Hours is greater than 12 - Please check the format (HH:MM:SS) and re-enter the time.")
                elif mins > 59:
                    input_time = input(
                        "Minutes is greater than 59 - Please check the format (HH:MM:SS) and re-enter the time.")
                elif secs > 59:
                    input_time = input(
                        "Seconds is greater than 59 - Please check the format (HH:MM:SS) and re-enter the time.")
                else:
                    bool_okinput = True
    return [hrs, mins, secs]

inputs = input_io()
hrs = inputs[0]
mins = inputs[1]
secs = inputs[2]

def calcs(hrs, mins, secs):

    degree_mult = 360/60
    hrs_degree_mult = 360/12

    if hrs == 12:
        hrs = 1

    degrees_secs = (secs * degree_mult)
    degrees_mins = (mins * degree_mult)+(degrees_secs / 60)
    degrees_hrs = (hrs * hrs_degree_mult)+(degrees_mins / 60)+(degrees_secs / (60^2))

    return [degrees_hrs, degrees_mins, degrees_secs]

degrees = calcs()
degrees_hrs = degrees[0]
degrees_mins = degrees[1]
degrees_secs = degrees[2]

print(f"When the Time is: {hrs}:{mins}:{secs}")
print(f"Hour Hand Degrees: {degrees_hrs}")
print(f"Minute Hand Degrees: {degrees_mins}")
print(f"Second Hand Degrees: {degrees_secs}")