def my_function(*factors): number = 0 print('len(factors) = ',len(factors)) #for i in range(factors): range函数错误使用,factor是元组 for i in range(len(factors)): #遍历循环列表的正确方式 if number != 0 : My_product = My_product * factors[number] number = number + 1 else: My_product = factors[number] number = number + 1 return My_productdef my_input(Fac_number): factors_lise = [] number = 0 for i in range(Fac_number): number = number + 1 #factors_lise.append(int(input('请输入第',number,'个乘数值:')))#拼接错误 factors_lise.append(int(input(f'请输入第{number}个乘数值:')))#正确用法 else: return factors_lisefactor_lises = tuple(my_input(int(input('您要算取几个数字的乘积:'))))#product = my_function(factor_lises)#----传入参数'factor_lises'实际上是将它指向的列表地址(传入一个元组地址)传入函数
# 所以在函数体内len(factor_lises) == 1,由于返回值没有强制数据类型,所以返回的也是一个元组,而不是设想的数值product = my_function(*factor_lises) #当想把变量指向的列表里的内容传进函数时的正确传参办法'*列表名'print(*factor_lises,'的乘积是:',product)
大浪并不浪