【问题标题】:python call function with argument as user input in dictionary? [closed]带有参数的python调用函数作为字典中的用户输入? [关闭]
【发布时间】:2014-02-25 11:00:24
【问题描述】:

我有一本字典

d={}

用户输入

no=raw_input("Enter number: ")
x=raw_input("Enter string: ")
y=raw_input("Enter string: ")
z=raw_input("Enter string: ")



d[no]=send(x,y,z)

def send(x,y,z):
    print x,y,z

这可能吗?

我试过了,但是当我打印字典时,它会输出

{1: None}

我想输出这样的东西

 d{
    1:send(x,y,z),
    2:send(x,y,z),
    3:send(x,y,z)
  }

其中 x,y,z 是用户输入。

【问题讨论】:

  • 在这种情况下send() 需要返回什么?
  • 你想用send 存储什么:函数、元组、其他东西?
  • 你的函数没有返回任何东西,这意味着返回默认值None

标签: python function dictionary arguments


【解决方案1】:

您的 send 函数没有意义。你可以这样做:

d[no] = (x,y,z)

如果你想分配并打印到控制台,那么我想你可以拥有:

d[no] = send(x,y,z)

def send(x,y,z):
    print x,y,z
    return x,y,z

但这很奇怪。

【讨论】:

    【解决方案2】:

    使用return 代替print

    def send(x,y,z):
        return x, y, z
    

    你会得到:

    d = {
        1: (x, y, z)
        2: (x, y, z)
        3: (x, y, z)
    }
    

    如果您真的想在字典中看到"send(x, y, z)",请使用:

    def send(x,y,z):
        return "send({0}, {1}, {2})".format(x, y, z)
    

    【讨论】:

      【解决方案3】:

      只返回值而不是打印它。

      def send(x, y, z):
          return x, y, z
      

      【讨论】:

        猜你喜欢
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 2016-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多