input()函数可以同时为多个变量赋值
>>>x,y=input("请输入x,y值:")
>>>请输入x,y值:ab
>>>x
>>>'a'
>>>y
>>>'b'
当用户输入ab,按回车键之后,input()函数分别将’a’、‘b’赋予变量x、y,结果就是x的值为’a’,y的值为’b’。
但是,如果想得到x的值’ab’,y的值’cd’,我们直接输入abcd或者ab cd等均是错误的。
>>> x,y = input("请输入x,y值:")
请输入x,y值:abcd
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
x,y = input("请输入x,y值:")
ValueError: too many values to unpack (expected 2)
实际上我们并不会这样做。一般来说,我们会结合split()和map()函数得到多变量的值。
>>> m= input("请输入x,y值:")
请输入x,y值:ab cd
>>> m
'ab cd'
>>> m.split()
['ab', 'cd']
>>> x,y=map(str,m.split())
>>> x
'ab'
>>> y
'cd'
m是通过input()函数得到的字符串,输入的是ab cd,那么m就得到字符串’ab cd’(注意ab和cd之间用空格分隔),然后通过字符串的split()方法得到元素为字符串的列表([‘ab’, ‘cd’]),再通过map()函数将str()函数作用于该列表,得到包含若干字符串的map对象,最后通过对map对象进行序列解包将’ab’和’cd’分别赋给x和y。