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

问题描述 投票:1回答:2

我正在尝试用python 3编写一个简单的程序来练习。我想要做的是绘制一个以用户input()为参数的函数。我已经尝试将input()存储在变量中,但每次我尝试继续变量调用自己要求input(),所以它不存储任何东西。我也尝试过这样的事情:

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

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

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

python-3.x variables input arguments raw-input
2个回答
4
投票

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

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)

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.