我刚才知道在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
答案 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,然后将其值设置为当我不存在的位置时您想要的任何值。我希望我能帮助你。