如何在 python 3 的函数中使用 raw_input 作为参数

新手上路,请多包涵

我正在尝试用 python 3 编写一个简单的程序进行练习。我想要做的是绘制一个以用户 input() 作为参数的函数。我曾尝试将 input() 存储在一个变量中,但每次我尝试继续时,变量都会调用自身询问 input() ,因此它不存储任何内容。我也尝试过这样的事情:

 def function(input('give me a '), input('give me b ')):
    # do stuff with the inputs

但它在括号中给出了语法错误。

关于如何设置函数以使用用户的 input() 作为参数的任何想法?

原文由 Gabriel Cesar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 566
2 个回答

这取决于你想做什么。您很可能希望将用户输入传递给函数调用而不是定义:

 def function(a, b):
    print(a, b)

a = input('give me a ')
b = input('give me b ')

function(a, b)

但是,如果您想将给定的用户输入作为默认参数传递给函数,您可以这样做:

 def function(a=input('give me a '), b=input('give me b ')):
    print(a, b)

function()  # prints whatever the user inputted when the file was initially run

您的代码引发异常的原因是因为函数 定义() 中的内容(与函数 调用 相反,即 function() )是参数的 名称 而不是传递给函数的参数。您可以在函数签名的这一部分中使用 input() 只有当您将其指定为与参数名称关联的默认值时,就像我在上面所做的那样。不过,第二个用例看起来很奇怪,每次调用 function() 时,都会传递与用户最初输入的默认值相同的参数。即使那是你想做的,你也应该这样做:

 input_a = input('give me a ')
input_b = input('give me b ')

def function(a=input_a, b=input_b:
    print(a, b)

function()

或者,如果您想在每次调用该函数时都获得一对不同的输入(我现在考虑这实际上似乎最有可能):

 def function():
    a = input('give me a ')
    b = input('give me b ')
    print(a, b)

原文由 elethan 发布,翻译遵循 CC BY-SA 3.0 许可协议

您应该知道输入被视为字符串。当您想使用它们的值时,请尝试在代码中执行 int()

原文由 Tarik Sagbas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进