python题:参数个数不限,返回所有参数的乘积

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python题:参数个数不限,返回所有参数的乘积相关的知识,希望对你有一定的参考价值。

def multi(c):
multi1 = 1
N = len(c)
for i in range(N):
multi1 =multi1*c[i]
return multi1

N = input("请输入数字:" )
c=[input()for i in range(N)]

print(multi(c))
这是我自己写的代码,有bug,不知道怎么改,希望有人帮我看一下。感谢!!!

重载和缺省都不能解决楼主的问题。想解决这个问题,必须用到va_list。
但是注意,并不是所有编译器都支持这个功能,下面这个简单的求均值函数在VC6.0下编译通过。希望楼主能用到自己的实际应用中。

#include <cstdarg>
#include <iostream>

using namespace std;

double average ( int num, ... )

va_list arguments; // A place to store the list of arguments
double sum = 0;

va_start ( arguments, num ); // Initializing arguments to store all values after num
for ( int x = 0; x < num; x++ ) // Loop until all numbers are added
sum += va_arg ( arguments, double ); // Adds the next value in argument list to sum.
va_end ( arguments ); // Cleans up the list

return sum / num; // Returns some number (typecast prevents truncation)

int main()

cout<< average ( 3, 12.2, 22.3, 4.5 ) <<endl;
cout<< average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) <<endl;


补充一句:不确定输入参数个数的函数应该尽量的避免使用,除非万不得已,最好不要用。
参考技术A N = int(input("请输入数字:"))
c = [int(input()) for i in range(N)]

本回答被提问者采纳

python实现累乘multi函数(函数参数不限)

 

def multi(*n):
    result=1
    for i in n:
        result=result*i
    return result
print(multi(1,3,4))#参数不限个数






以上是关于python题:参数个数不限,返回所有参数的乘积的主要内容,如果未能解决你的问题,请参考以下文章

Java重载 (Overlaod)与几个面试题

python 中zip()函数的使用

python怎样接收参数

Python获取函数参数个数和默认参数

python学习之路----- 函数参数的实践应用

shell学习笔记