使用参数的打包解包编写一个函数求任意多个整数的平均值
时间: 2024-05-04 10:18:56 浏览: 67
可以使用 Python 中的 `*args` 参数来接收任意多个整数,然后计算它们的平均值。具体实现如下:
```python
def average(*args):
total = sum(args)
return total / len(args)
# 示例
print(average(1, 2, 3)) # 输出 2.0
print(average(10, 20, 30, 40, 50)) # 输出 30.0
```
在这个函数中,`*args` 表示接收任意多个位置参数,并将它们打包成一个元组。我们可以直接使用 `sum()` 函数计算它们的总和,再除以元组的长度,从而得到平均值。
相关问题
输入3个不超过1000的正整数,计算这3个整数的和、平均值、乘积、最小值和最大值 c++
在C++中,你可以创建一个函数来实现这个功能,该函数接受三个整数作为输入并返回它们的和、平均值、乘积、最小值和最大值。以下是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 函数声明,包含返回值类型和参数
tuple<int, double, int, int, int> calculate(int a, int b, int c);
int main() {
// 输入三个整数
int num1, num2, num3;
cout << "请输入三个正整数:";
cin >> num1 >> num2 >> num3;
// 调用函数并获取结果
tuple<int, double, int, int, int> result = calculate(num1, num2, num3);
// 解包并打印结果
int sum = get<0>(result); // 和
double average = get<1>(result); // 平均值
int product = get<2>(result); // 乘积
int minVal = get<3>(result); // 最小值
int maxVal = get<4>(result); // 最大值
cout << "和: " << sum << "\n";
cout << "平均值: " << average << "\n";
cout << "乘积: " << product << "\n";
cout << "最小值: " << minVal << "\n";
cout << "最大值: " << maxVal << "\n";
return 0;
}
// 定义calculate函数
tuple<int, double, int, int, int> calculate(int a, int b, int c) {
int sum = a + b + c; // 总和
double average = (double)(sum) / 3; // 平均值
int product = a * b * c; // 乘积
int minVal = min(a, min(b, c)); // 最小值
int maxVal = max(a, max(b, c)); // 最大值
return make_tuple(sum, average, product, minVal, maxVal);
}
```
读入两个正整数a和b(设输入能保证b>a)如果a,b都是素数,则输出闭区间【a, b】内的所有素数并求平均值,否则输出闭区间【a, b】之内的所有5的倍数。
以下是Python代码实现:
```python
a, b = map(int, input().split())
# 判断a和b是否都是素数
is_prime_a = True
is_prime_b = True
for i in range(2, int(a**0.5)+1):
if a % i == 0:
is_prime_a = False
break
for i in range(2, int(b**0.5)+1):
if b % i == 0:
is_prime_b = False
break
if is_prime_a and is_prime_b: # a和b都是素数
prime_list = []
for num in range(a, b+1):
is_prime = True
for i in range(2, int(num**0.5)+1):
if num % i == 0:
is_prime = False
break
if is_prime and num > 1:
prime_list.append(num)
avg_prime = sum(prime_list) / len(prime_list)
print(*prime_list) # 输出所有素数
print("{:.2f}".format(avg_prime)) # 输出平均值
else: # a和b不都是素数
multiple_list = []
for num in range(a, b+1):
if num % 5 == 0:
multiple_list.append(num)
print(*multiple_list) # 输出所有5的倍数
```
代码思路说明:
1. 读入a和b,转换为整数类型。
2. 分别判断a和b是否是素数,使用了一个for循环遍历2到a或b的平方根,如果存在一个因子,就说明不是素数。
3. 如果a和b都是素数,就用一个for循环遍历闭区间【a, b】内的所有数字,判断是否为素数,并将素数加入到列表prime_list中。
4. 如果a和b都是素数,就计算prime_list的平均值,使用了sum函数求和,len函数求列表长度,最后除以长度即可。
5. 如果a和b都是素数,使用*号解包列表prime_list,将所有素数输出,使用format格式化输出平均值。
6. 如果a和b不都是素数,就用一个for循环遍历闭区间【a, b】内的所有数字,判断是否为5的倍数,并将5的倍数加入到列表multiple_list中。
7. 如果a和b不都是素数,使用*号解包列表multiple_list,将所有5的倍数输出。
阅读全文