繁体   English   中英

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

[英]How to pass multiple inputs from the user to a function?

我正在尝试获取测试,作业,测验和实验室的数量。 然后将这些值传递给函数以获取类别中每个项目的得分。

如何传递多个值以便可以在函数中使用它们?

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()

要记住的要点。

  1. 要从一个函数返回多个值,有很多解决方法。 使用值list (如果其中之一)。
  2. 在函数get_scores ,我使用了列表get_scores 也可以使用for循环来完成: for item in s: score_list.append(...); return score_list for item in s: score_list.append(...); return score_list 列表理解更加简洁,并且具有Python风格。
  3. 您不再需要编写循环来对数组sum Python具有内置函数来执行此操作。 只需使用sum(list) 内建功能
  4. 我看到您正在使用类似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()

在这里,您有一个字典,其中包含用户输入的所有值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM