19.表达式writelines(lines)能够将一个元素是字符串的列表lines写入文件,
时间: 2024-03-30 07:34:07 浏览: 61
是的,你说得对。writelines(lines) 方法可以将一个元素是字符串的列表lines写入文件,每个字符串占一行。这个方法是文件对象的一个方法,可以通过文件对象调用。调用该方法后,会自动将列表中的所有字符串写入到文件中。需要注意的是,该方法不会在每个字符串之间添加换行符,因此需要在每个字符串的末尾添加换行符,或者在调用该方法之前将每个字符串的末尾添加换行符。
相关问题
从1开始递增,偶数为正,奇数为负。编写程序计算数列的值:1+2-3+4-5+......+18-19+20。
可以使用循环结构来实现:
```
sum = 0
sign = 1 # 用来判断奇偶性
for i in range(1, 21):
if i % 2 == 0: # 偶数
sum += i * sign
sign = 1
else: # 奇数
sum -= i * sign
sign = -1
print(sum)
```
输出结果为:-10
下面是一个传感器采集数据文件 sensor-data.txt 的一部分: 2018 - 02 - 28 01 : 03 : 16 19.3024 38.4629 45.08 2.68742 2018 - 02 - 28 01 : 06 : 16 19.1652 38.8039 46.08 2.68742 2018 - 02 - 28 01 : 06 : 46 19.175 38.8379 47.08 2.69964 …… 其中,每行是一个读数,空格分隔多个含义,分别包括日期、时间、温度、湿度、光照和电压。其中,光照处于第 5 列。 请编写程序,统计并输出传感器采集数据中光照部分的最大值、最小值和平均值,所有值保留小数点后 2 位。
可以使用 Python 的文件读取和处理方法来实现。代码如下:
```python
filename = 'sensor-data.txt'
with open(filename, 'r') as f:
data = f.readlines()
light = []
for line in data:
line = line.split()
light.append(float(line[4]))
max_light = round(max(light), 2)
min_light = round(min(light), 2)
avg_light = round(sum(light)/len(light), 2)
print("最大光照值:{}".format(max_light))
print("最小光照值:{}".format(min_light))
print("平均光照值:{}".format(avg_light))
```
解释:首先定义文件名,使用 `with open` 打开文件并读取所有行,然后遍历每一行,使用 `split()` 方法按空格将其分割为一个列表。由于光照数据在第 5 列,因此取出该列数据,并将其转换为浮点数并存储在 `light` 列表中。最后使用 Python 内置函数分别求出 `light` 列表中的最大值、最小值和平均值,并使用 `round()` 方法保留两位小数。最后输出结果即可。
阅读全文