代码资源链接
https://www.ituring.com.cn/book/2784
获取资源的链接【已下载】
next 用于读取列表
python中next()的具体的形式为:next(iterobject,defalt),第一个参数是可迭代的对象,第二个参数可以写也可以不写,不写的时候,如果可迭代的元素取出完毕,会返回StopIteration异常,第二个参数写的时候,当可迭代对象迭代完后,会返回一直返回第二个参数写的那个元素。
————————————————
版权声明:本文为CSDN博主「Mr_HaiDong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mr_HaiDong/article/details/104001824
补充:
用next读取完的东西,系统默认不再读取,即以后的程序会从下一行数据开始运行
import csv
import matplotlib.pyplot as plt
from datetime import datetime
filename='sitka_weather_07-2018_simple.csv'
with open(filename) as f:
reader=csv.reader(f)
header_row=next(reader)
line2=next(reader)
dates=[]
for row in reader:
date=datetime.strptime(row[2],'%Y-%m-%d')
dates.append(date)
print(dates)
由于之前用next读取了两次reader
中的数据,所以在使用for循环遍历列表reader
时,会直接从第三行开始
用处:
以后读取csv格式表格数据,有时候表头行的数据格式与其他不同,可以用next直接过滤掉表头。
enumerate
作用:对可迭代的数据进行标号并将其里面的数据和标号一并打印出来。
语法
enumerate(sequence, [start=0])
参数
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
import csv
filename='death_valley_2018_simple.csv'
with open(filename) as f:
reader=csv.reader(f)#把csv文件读取并保存在列表中
header=next(reader)
print(header)
for index,colum_header in enumerate(header):
print(index,colum_header)
[‘STATION’, ‘NAME’, ‘DATE’, ‘PRCP’, ‘TMAX’, ‘TMIN’, ‘TOBS’]
0 STATION
1 NAME
2 DATE
3 PRCP
4 TMAX
5 TMIN
6 TOBS
处理异常
语法:
try:
指令
except 异常名称:
指令
else:
正常结果
print("Give me two numbers, and I'll divide them.")
print("Enter 'q' to quit.")
while True:
first_number = input("\nFirst number: ")
if first_number == 'q':
break
second_number = input("Second number: ")
if second_number == 'q':
break
try:
answer = int(first_number) / int(second_number)
except ZeroDivisionError:
print("You can't divide by 0!")
else:
print(answer)
显示图片
把画图写成一个类之后,多次引用,如何让图片在最后显示?
解决:
在引用完之后加plt.show