1、函数接收不定长变量,函数直接接收方式:
def f(*v):
print(v)
f(10,12,21)
MacBook-Pro-2:~ yunlei.han$ python3 log.py
(10, 12, 21)
2、函数接收不定长变量,函数间接接收方式:
def f(*v):
print(v)
v = input(">>>:")
f(v)
MacBook-Pro-2:~ yunlei.han$ python3 log.py
>>>:10,12,21
(‘10,12,21‘,)
3、input语句接收的数据类型是字符串,可以通过下面方式处理成列表
get = input(">>>:")
element = ""
_list = []
for i in get :
if i.isdigit():
element = element + i
else:
element = int(element)
_list.append(element)
element = ""
print (_list)
MacBook-Pro-2:~ yunlei.han$ python3 log.py
>>>:10,12,21,
[10, 12, 21]
结论:
当python函数需要用input语句间接接收不定长参数的时候,可以先把input语句接收的字符串处理成列表,然后让函数接收这个列表,而不是让函数通过"*v"不定长参数方式继续接收input语句拿到的字符串。
python函数通过"*v"可以接收不定长参数,并将不定长参的数据类型处理成元组,用input语句得到的数据作为这个不定长参数执行函数,不能达到预期效果的问题?
原文:https://www.cnblogs.com/hanyunlei/p/11168862.html