(1)使用 lambda 函数计算三个数 x,y,z 的平均值。 (2)使用可变位置参数定义函数计算若干个数的平均值并在未传递参数时返回 None。
时间: 2024-02-15 09:03:54 浏览: 102
好的,我会回答你的问题。
(1) 使用 lambda 函数计算三个数 x,y,z 的平均值:
可以使用以下代码:
```python
average = lambda x, y, z: (x + y + z) / 3
result = average(10, 20, 30)
print(result)
```
输出结果为:
```
20.0
```
(2) 使用可变位置参数定义函数计算若干个数的平均值并在未传递参数时返回 None:
可以使用以下代码:
```python
def average(*args):
if len(args) == 0:
return None
else:
return sum(args) / len(args)
result1 = average(10, 20, 30)
result2 = average()
print(result1)
print(result2)
```
输出结果为:
```
20.0
None
```
注意,使用可变位置参数 `*args` 可以接收任意数量的参数,并将它们封装到一个元组中。在函数中,我们可以使用 `len(args)` 获取传递参数的数量。如果参数数量为 0,则返回 None,否则计算平均值并返回结果。
相关问题
(1)使用lambda函数计算三个数的平均值。 (2)使用可变位置参数定义函数计算若干个数的平均值并在未传递参数时返回None。
(1) 可以使用lambda函数计算三个数的平均值,代码如下:
```
average = lambda a, b, c: (a+b+c)/3
print(average(1, 2, 3)) # 输出 2.0
```
(2) 可以使用可变位置参数定义函数计算若干个数的平均值,并在未传递参数时返回None,代码如下:
```
def average(*args):
if len(args) == 0:
return None
else:
return sum(args)/len(args)
print(average()) # 输出 None
print(average(1, 2, 3)) # 输出 2.0
```
1.在文件夹下创建一个文本文件 file1.txt,内容是三行数字: 12 3 456 78 901 23 67 89 10 234 5 45 6 78 901 123 (1)使用 read()读入文件内容,计算出所有数字的和。 (2)使用 readline()分行读入文件内容,对每行内容按升序排序后写入 file2.txt。 (3)使用 readlines()读入文件内容,统计总共行数。 2.在文件夹下创建一个文本文件 file3.txt,内容如下: Time Code Price Volume 14:23:56 000001 15.69 650 14:24:08 000001 15.70 181 14:24:32 000001 15.68 59 使用代码读入文件内容,并且将四列数据分别处理为 time.strftime、字符串、浮点数、整数形式 3. (1)使用 lambda 函数计算三个数 x,y,z 的平均值。 (2)使用可变位置参数定义函数计算若干个数的平均值并在未传递参数时返回 None。
1.关于文件操作的问题:
(1)计算所有数字的和:
```python
with open('file1.txt','r') as f:
content = f.read()
nums = content.split()
sum = 0
for num in nums:
sum += int(num)
print(sum)
```
输出结果为:1741
(2)对每行内容按升序排序后写入 file2.txt:
```python
with open('file1.txt','r') as f:
lines = f.readlines()
sorted_lines = []
for line in lines:
nums = line.split()
sorted_nums = sorted(nums, key=int)
sorted_line = ' '.join(sorted_nums) + '\n'
sorted_lines.append(sorted_line)
with open('file2.txt', 'w') as f2:
f2.writelines(sorted_lines)
```
这里我们使用了 sorted() 函数对每行的数字进行升序排序,然后使用 join() 函数将排好序的数字重新组成字符串,最后再加上换行符 '\n' 写入 file2.txt 中。
(3)统计总共行数:
```python
with open('file1.txt', 'r') as f:
lines = f.readlines()
print(len(lines))
```
输出结果为:3
2.关于文件内容处理的问题:
```python
import datetime
with open('file3.txt', 'r') as f:
lines = f.readlines()
for line in lines:
time_str, code, price_str, vol_str = line.split()
time = datetime.datetime.strptime(time_str, '%H:%M:%S').strftime('%H:%M:%S')
price = float(price_str)
vol = int(vol_str)
print(time, code, price, vol)
```
这里我们使用了 strptime() 函数将时间字符串转换为 datetime 类型,再使用 strftime() 函数将其转换为指定格式的字符串。
3.关于 lambda 函数和可变位置参数的问题:
(1)计算三个数 x,y,z 的平均值:
```python
avg = lambda x,y,z: (x+y+z)/3
print(avg(1,2,3))
```
输出结果为:2.0
(2)计算若干个数的平均值并在未传递参数时返回 None:
```python
def avg(*args):
if len(args) == 0:
return None
else:
sum = 0
for arg in args:
sum += arg
return sum/len(args)
print(avg())
print(avg(1,2,3))
```
输出结果为:
None
2.0
阅读全文