编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和、平均值、标准差、中位数并输出。
时间: 2024-12-19 07:14:07 浏览: 10
C#删除最后一个结尾逗号的方法
编写这样的程序通常涉及到几个步骤:
1. **获取用户输入**:首先需要创建一个循环来不断接收用户的输入,直到用户停止输入。可以使用`input()`函数,并检查输入是否为空。
```python
numbers = []
while True:
user_input = input("请输入一个用逗号分隔的数字,或直接按回车结束输入:")
if not user_input:
break
numbers.extend(map(int, user_input.split(',')))
```
这里我们假设用户输入的是有效的整数,并通过`split(',')`将输入字符串分割成一个列表。
2. **计算总和**:对数字列表求和,可以使用内置的`sum()`函数。
```python
total_sum = sum(numbers)
```
3. **计算平均值**:总和除以数字的数量,即列表的长度,得到平均值。
```python
average = total_sum / len(numbers) if len(numbers) > 0 else None # 防止除零错误
```
4. **计算标准差**:这是一个稍微复杂的过程,需要先计算每个数字与平均值的差平方的和,然后除以数字数量减一,最后取平方根。
```python
import math
variance = sum((x - average) ** 2 for x in numbers) / (len(numbers) - 1)
std_deviation = math.sqrt(variance) if len(numbers) > 1 else None
```
5. **计算中位数**:如果数字列表长度为奇数,则中位数是最中间的那个数;如果是偶数,则取中间两个数的平均值。
```python
numbers.sort() # 先排序
if len(numbers) % 2 == 0:
median = (numbers[len(numbers) // 2] + numbers[len(numbers) // 2 - 1]) / 2
else:
median = numbers[len(numbers) // 2]
```
6. **输出结果**:最后,将所有的统计信息打印出来。
```python
print(f"总和: {total_sum}")
print(f"平均值: {average}")
print(f"标准差: {std_deviation}")
print(f"中位数: {median}")
```
如果你想要实际运行这个程序,可以在Python环境中复制粘贴上述代码,并运行它。记得处理可能出现的异常情况,比如用户输入非数字字符等。
阅读全文