【问题标题】:question about function with input and without output in python关于python中带输入和不带输出的函数的问题
【发布时间】:2021-09-24 08:38:21
【问题描述】:

我已经定义了一个函数。 这个函数的输入是一个字典。 我想在这本字典中输入三个值。 在主函数中取值并作为输入提供给函数。 但是输出有错误。 谢谢你告诉我问题出在哪里。 谢谢

进口时间 导入操作系统 导入getmac

def f4(**F):
A=F['a']
B=F['b']
C=F['c']
print(A,B,C)

def main():

A=input("a:")
B=input("b:")
C=input("c:")
f4(A,B,C)

如果 name=='ma​​in':main()

【问题讨论】:

  • 请解释一下这个错误是什么?
  • 尽管有格式错误,您仍需要像这样调用函数:- f4(a=A,b=B,c=C)
  • 您好 DarkKnight,在您的指导下,该错误已得到修复。非常感谢

标签: python function dictionary


【解决方案1】:

当您将函数定义为 def f4(**F) 时,您正试图在原始代码中解压缩字典。

这有几个问题。如果您确实想传递字典,然后以您在该函数中的方式访问它们,那么您不需要首先解压缩它们。这将导致它们成为函数中的关键字参数,并且看起来像这样:

f4(a='blah', b='meh', c='buh') 

另一个问题是您实际上并没有首先传递字典。您只是在传递位置参数。以下是两个潜在的修复方法:

使用字典:

def f4(F):
    A=F['a']
    B=F['b']
    C=F['c']
    print(A,B,C)

def main():
    F = {}
    F['a']=input("a:")
    F['b']=input("b:")
    F['c']=input("c:")
    f4(F)

if __name__ == '__main__':
    main()

没有字典:

def f4(F):
    print(*F)

def main():
    A=input("a:")
    B=input("b:")
    C=input("c:")
    f4([A,B,C])

if __name__ == '__main__':
    main()

第二个使用列表并在 print 语句中解压缩它,以便它可以根据需要动态。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    相关资源
    最近更新 更多