首页 > 编程语言 > 详细

python函数通过"*v"可以接收不定长参数,并将不定长参的数据类型处理成元组,用input语句得到的数据作为这个不定长参数执行函数,不能达到预期效果的问题?

时间:2019-07-11 14:00:23      阅读:209      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!