如何存储多个返回值?

时间:2017-06-05 17:16:34

标签: python python-3.x function return

我刚才知道在Python 3.5中我们可以返回多个值。 所以我尝试编写一段可以使用此功能的代码,但问题是如何存储这些多个值?请参考以下代码。

def input1():
    stu=input("Enter Student Name")
    marks=int(input("Enter Student marks"))
    return stu,marks

def assign():
    s=[]
    m=[]
    i=0
    while True:
        #s[i],m[i]=input1()
        a=int(input("0 to exit"))
        i+=1
        if a==0:
            print(s)
            print(m)
            break

stu是一个字符串,marks是一个整数。 我想将这两个值同时存储在数组s[]m[]中。 在while块下面是我打算使用的语法,但它显然不起作用。

输出:

Enter Student NameR
Enter Student marks45

Traceback (most recent call last):
    File "School_Rank.py", line 19, in <module>
        assign()
    File "School_Rank.py", line 12, in assign
        s[i],m[i]=input1()
    IndexError: list assignment index out of range

2 个答案:

答案 0 :(得分:2)

你要做的是:

s_var,m_var=input1()
s.append(s_var)
m.append(m_var)

将值分配给空列表时遇到问题。

答案 1 :(得分:1)

return语句中的这些“多个值”实际上是一个元组。因此,您可以将返回的元组的每个值分配为两个标识符,然后将这些值附加到列表中。这是一段代码:

def input1():
stu = input('Enter student name: ')
marks = input('Enter student marks: ')

return stu, marks


def assign():
    s = []
    m = []

    stu, marks = input1()
    s.append(stu)
    m.append(marks)
    .
    .
    .

您收到错误是因为您尝试访问位置i,然后将其值设置为当我不存在的位置时您想要的任何值。我希望我能帮助你。