我正在尝试获得测试,作业,测验和实验室的数量。然后将这些值传递给函数以获取类别中每个项目的分数。
如何传递多个值以便在函数中使用?
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()
答案 0 :(得分:0)
您需要存储返回的输入:
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()
答案 1 :(得分:0)
将它们分配给变量:
assigments = int(input("How many assignments? "))
quizzes = int(input("How many quizzes? "))
存储后,您可以返回全部:
return [assigment, quizzes,...]
希望这有帮助!
答案 2 :(得分:0)
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()
要记住的要点。
list
值。get_scores
中,我使用了列表推导。它也可以使用for循环来完成:for item in s: score_list.append(...); return score_list
。列表理解更清晰,更灵腻。 sum
数组写一个循环。 Python有内置函数来做到这一点。只需使用sum(list)
即可。 Built-in Functions 答案 3 :(得分:0)
您可以返回任何能够保存所有值的对象。
元组的示例
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()
了解如何将元组分配给多个变量。
dict示例:
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,其中包含用户输入的所有值。