关于python中*param的用法有点问题求助
请问大家,函数定义是用收集参数*param时,在调用的时候能否直接输入一个列表?入门,请大家帮忙!!!例如:
def a(*param):
length = len(param)
for i in range(length):
print(param)
print('adsad')
list =
a(list)
难道:
a(1, 2, 3, 4, 5)
只能这样用吗? 当然可以,param的结果就是:
()
你如果想用这个列表得这样:
list1 = param 可以的,参数你任意输入,主要是看你程序主要作用是什么 qiuyouzhi 发表于 2020-6-4 17:41
当然可以,param的结果就是:
()
你如果想用这个列表得这样:
谢谢大佬的回复,可我想要的结果是list这个列表的每个数对应收集参数*param的每一个数,以下是我课后习题的代码,第19讲动动手,请帮我看看,该怎么修改呢?
def count(*param):
length = len(param)
for m in range(length):
letters = 0
spaces = 0
nums = 0
others = 0
for each in param:
if each.isalpha():
letters += 1
elif each.isdigit():
nums += 1
elif each == ' ':
spaces += 1
else:
others += 1
print('第 %d 个字符串共有 %d 个英文字母, %d 个数字, %d 个空格, %d 个其他字符' %(m+1, letters, nums, spaces, others))
a = 1
i = 0
list = []
last = '#'
while a:
string = str(input('请输入需要检查的所有字符串,回车键结束输入并开始输入下一个字符串,输入#结束所有输入:'))
list.append(string)
if last == list:
print('输入结束!')
a = 0
i += 1
count(list) Twilight6 发表于 2020-6-4 17:42
可以的,参数你任意输入,主要是看你程序主要作用是什么
谢谢大佬的回复,可我想要的结果是list这个列表的每个数对应收集参数*param的每一个数,以下是我课后习题的代码,第19讲动动手,请帮我看看,该怎么修改呢?def count(*param):
length = len(param)
for m in range(length):
zimus = 0
spaces = 0
nums = 0
others = 0
for each in param:
if each.isalpha():
zimus += 1
elif each.isdigit():
nums += 1
elif each == ' ':
spaces += 1
else:
others += 1
print('第 %d 个字符串共有 %d 个英文字母, %d 个数字, %d 个空格, %d 个其他字符' %(m+1, zimus, nums, spaces, others))
a = 1
i = 0
list = []
last = '#'
while a:
string = str(input('请输入需要检查的所有字符串,回车键结束输入并开始输入下一个字符串,输入#结束所有输入:'))
list.append(string)
if last == list:
print('输入结束!')
a = 0
i += 1
count(list) hlsxiannv 发表于 2020-6-4 17:48
谢谢大佬的回复,可我想要的结果是list这个列表的每个数对应收集参数*param的每一个数,以下是我课后习题 ...
调用改成count(*list) qiuyouzhi 发表于 2020-6-4 17:52
调用改成count(*list)
谢谢谢谢,改好了!太感谢了{:10_287:} a(list)
用一个列表作为输入参数,那么,可变参数 param 这时就只代表一个输入参数,这个参数就是这个列表。
a(1, 2, 3, 4, 5)
用 5 个参数作为输入参数,那么,可变参数 param 这时就代表着 5 个参数。与前者相比,显然,这种方式更加符合可变参数设定的用法。 {:7_131:}
页:
[1]