【问题标题】:Python 3: Input in cmd to return functionsPython 3:在 cmd 中输入以返回函数
【发布时间】:2018-07-01 14:33:51
【问题描述】:

我目前正在通过“Learn Python the Hard Way”并开始第一个关于函数的练习。它只是像本书前面的示例一样创建一些函数并将它们打印出来`。

代码:

def print_two(*args):
    arg1, arg2 = args
    print("arg1: %r, arg2: %r" % (arg1, arg2))

def print_two_again(arg1, arg2):
    print("arg1: %r, arg2: %r" % (arg1, arg2))

def print_one(arg1):
    print("arg1: %r" % (arg1))

def print_none():
    print("I got nothing.")

print_two("Zed","Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()

在cmd中输出:

C:\Users\[USER]\Google Drive\Python\Learn Python the Hard Way>python ex18.py
arg1: 'Zed', arg2: 'Shaw'
arg1: 'Zed', arg2: 'Shaw'
arg1: 'First!'
I got nothing.

我想玩一下这个,所以当我运行它时,我希望能够输入函数的名称然后返回结果,而不是只给我上面的四行。我尝试了以下方法,但也许我只是不明白 Python 是如何工作的?

x = input("> ")
print(x)

我不太确定术语,但它会在 cmd 中为我提供以下信息:

C:\Users\[USER]\Google Drive\Python\Learn Python the Hard Way>python ex18.py
> print_none()  # This is something I write myself
I got nothing.

【问题讨论】:

  • 返回一个方法调用的结果?
  • 我试着换个问题,现在有意义吗?
  • 是的,所以您想指定一个方法名称,然后执行它并将结果打印到控制台。
  • 是的,这就是我想要做的。
  • 我回滚了你的最新编辑(它仍然可以从revision history 获得) - 你的问题应该严格地保持在一个问题上,尽管你最欢迎发布你自己的答案,甚至接受它将此问题标记为已解决。另请参阅help

标签: python python-3.x function input


【解决方案1】:

这个问题可能有点模糊,但我自己找到了解决方案。我正在寻找的是脚本的“导入”功能到 cmd,然后允许输入命令并返回之前硬编码的行:

C:\Users\[User]\Google Drive\Python\Learn Python the Hard Way>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on 
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ex18
arg1: 'Zed', arg2: 'Shaw'
arg1: 'Zed', arg2: 'Shaw'
arg1: 'First!'
I got nothing.
>>> ex18.print_none()
I got nothing.
>>>

【讨论】:

    【解决方案2】:
    def print_two_again(arg1, arg2):
        print("arg1: %r, arg2: %r" % (arg1, arg2))
    
    def print_one(arg1):
        print("arg1: %r" % (arg1))
    
    if __name__ == '__main__':
        x = input("F name:")
        eval(x)
    

    例子:

    /home/denis/zmqPG/bin/python /home/denis/PycharmProjects/useless/so2.py
    F name:print_one(5)
    arg1: 5
    

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多