Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将用户的多个输入传递给函数?_Python_Python 3.x - Fatal编程技术网

Python 如何将用户的多个输入传递给函数?

Python 如何将用户的多个输入传递给函数?,python,python-3.x,Python,Python 3.x,我想知道考试、作业、测验和实验的数量。然后将这些值传递给函数,以获得类别中每个项目的分数 如何传递多个值以便在函数中使用 def get_initial_input(): int(input("How many assignments? ")) int(input("How many quizzes? ")) int(input("How many labs? ")) int(input("How many tests? ")) #Trying to

我想知道考试、作业、测验和实验的数量。然后将这些值传递给函数,以获得类别中每个项目的分数

如何传递多个值以便在函数中使用

def get_initial_input():

    int(input("How many assignments? "))
    int(input("How many quizzes? "))
    int(input("How many labs? "))
    int(input("How many tests? "))

    #Trying to pass all the values entered above to the function below
    #Using 'return' I can only pass one value

def get_scores(s):


    for x in range(len(s)):
        s[x] = int(input("Give a score: "))

def main():

    num = get_initial_input()
    scores = [0] * num

    get_scores(scores)

    total = 0
    for x in range(len(scores)):
        total += scores[x]

    print("The sum is: "+str(total))

    if total > 0:
        print("The average is: "+str(total/num))

    if (total/num) > 100:
        print("You got extra credit!")

main()
您需要存储返回的输入:

assignments = int(input("How many assignments? "))
现在您有了一个可以使用的变量。您需要从函数返回:

def get_initial_input():    
    assignments = int(input("How many assignments? "))
    quizzes = int(input("How many quizzes? "))
    labs = int(input("How many labs? "))
    tests = int(input("How many tests? "))
    return assignments, quizzes, labs, tests
存储函数调用的返回值时:

assignments, quizzes, labs, tests = get_initial_input()

将它们分配给变量:

assigments = int(input("How many assignments? "))
quizzes = int(input("How many quizzes? "))
存储后,您可以返回全部:

return [assigment, quizzes,...]
希望这有帮助

def get_initial_input():
    input_list = []
    input_list.append(int(input("How many assignments? ")))
    input_list.append(int(input("How many quizzes? ")))
    input_list.append(int(input("How many labs? ")))
    input_list.append(int(input("How many tests? ")))
    return input_list

def get_scores(s):
    return [ int(input("Give a score: ")) for x in s]
    #use list comprehensions

def main():

    input_list = get_initial_input()
    scores = get_scores(input_list)

    total = sum(scores)
    num = sum(input_list) # I am assuming this

    print("The sum is: "+str(total))
    if total > 0:
        print("The average is: "+str(total/num))

    if (total/num) > 100:
        print("You got extra credit!")

main()
要记住的要点

  • 要从函数返回多个值,有很多解决方法。如果其中有一个值,则使用值的
    列表
  • 在函数
    get_scores
    中,我使用了列表理解。也可以使用for循环:
    for s:score_列表中的项;返回分数列表
    。列表的理解更清晰、更通俗
  • 您不再需要向数组
    sum
    写入循环。Python有内置函数来实现这一点。只需使用
    sum(list)
  • 我看到您正在使用类似C/C++的编码风格。阅读更多的教程和编写更多的代码将有助于发展Python风格的代码编写

  • 可以返回任何能够保存所有值的对象

    具有元组的示例

    def get_initial_input():
        return tuple( int(input("How many "+q+"? ")) \
            for q in ["assignments", "quizzes", "labs", "tests"] )
    
    assignments, quizzes, labs, tests = get_initial_input()
    
    了解如何将元组分配给多个变量

    举一个例子:

    def get_initial_input():
        res={}
        for q in ["assignments", "quizzes", "labs", "tests"]:
            res[q] = int(input("How many "+q+"? "))
        return res
    
    config = get_initial_input()
    

    这里有一个包含用户输入的所有值的dict。

    您可以返回多个内容
    返回a、b、c
    ,然后像这样将它们取出
    x、y、z=func()
    @是的,解决了所有这些问题。@aIKid现在好了吗?
    [0]*num
    对于整数很好,因为它们是不可变的。非常感谢,这很有帮助。