从零开始的深度学习--python进阶

引言

作为一位计算机系的学生,本人十分惭愧居然一点python的基础都没有。因此,这一系列博文便记录了本人学习从python基础到python深度学习的过程吧。

python进阶

一、函数进阶

1.函数的多返回值

1
2
3
4
5
def test_return():
return 1,2

x,y=test_return()
print(x,y)

2.函数的多种传参形式

键值对传参、缺省传参、

不定长参数(*):参数为元组形式

不定长参数(**):参数为字典形式,使用key=value进行传参

3.将函数作为参数传递

1
2
3
4
5
6
7
8
def test_func(compute):
result=compute(1,2)
print(result)

def compute(x,y):
return x+y

test_func(compute)

4.lambda匿名函数

lambda 传入参数:函数体(一行代码)

1
2
3
4
5
def test_func(compute):
result=compute(1,2)
print(result)

test_func(lambda x,y:x+y)

二、文件操作

1.打开文件:

open(name,mode,encoding) eg.open(“python.txt”,“r”,encoding=“UTF-8”)

name:打开目标文件名的字符串

mode:打开的格式(只读r、写入w、追加a)

encoding:编码格式(推荐使用UTF-8)

2.文件操作的方法

filename.read(num):从文件中读取数据的长度,不传参代表读取文件中所有数据

filename.readlines():返回一个列表,列表是每一行的数据

filename.readline():读取一行数据

filename.close();关闭文件

1
2
with open(name,mode,encoding) as f:
... 文件操作

可以自动关闭文件

fliename.write(str):文件写入

filename.flush():将缓冲区文件输入文件

三、异常、模块与包

1.异常的捕获

1
2
3
4
5
try:
可能发生异常的代码
except:
如果出现异常,执行的代码

捕获指定异常

1
2
3
4
try:
可能发生异常的代码
except 异常名 as e:
print(e)

异常具有传递性

2.python的模块

导入方式:[from 模块名] import [模块|类|变量|函数|*] [as 别名]

自定义模块:

1
2
if __name__== '__main__':
待测试代码

外部导入不会允许下面的代码

四、python综合案例

开发以下两个可视化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts

f_us=open("折线图数据/美国.txt","r",encoding="UTF-8")

us_data=f_us.read()
us_data=us_data.replace("jsonp_1629344292311_69436(","")
us_data=us_data[:-2]
#转python字典
us_dict=json.loads(us_data)
us_trend_data=us_dict["data"][0]["trend"]
#获取日期
us_x_data=us_trend_data["updateDate"][:314]
us_y_data=us_trend_data["list"][0]["data"][:314]

f_jp=open("折线图数据/日本.txt","r",encoding="UTF-8")

jp_data=f_jp.read()
jp_data=jp_data.replace("jsonp_1629350871167_29498(","")
jp_data=jp_data[:-2]
#转python字典
jp_dict=json.loads(jp_data)
jp_trend_data=jp_dict["data"][0]["trend"]
#获取日期
jp_x_data=jp_trend_data["updateDate"][:314]
jp_y_data=jp_trend_data["list"][0]["data"][:314]

f_in=open("折线图数据/印度.txt","r",encoding="UTF-8")

in_data=f_in.read()
in_data=in_data.replace("jsonp_1629350745930_63180(","")
in_data=in_data[:-2]
#转python字典
in_dict=json.loads(in_data)
in_trend_data=in_dict["data"][0]["trend"]
#获取日期
in_x_data=in_trend_data["updateDate"][:314]
in_y_data=in_trend_data["list"][0]["data"][:314]

#生成图表
line=Line()
#添加x轴
line.add_xaxis(us_x_data)
#添加y轴数据
line.add_yaxis("美国确诊人数",us_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数",in_y_data,label_opts=LabelOpts(is_show=False))

#设置全局选项
line.set_global_opts(
#标题设置
title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图",pos_left="center",pos_bottom="1%")

)

#生成图表
line.render()
#关闭文件
f_us.close()
f_jp.close()
f_in.close()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from pyecharts.charts import Map
from pyecharts.options import *
import json

f=open("地图数据/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
data_dict=json.loads(data)
data_list=[]
province_data_list=data_dict["areaTree"][0]["children"]
for province_data in province_data_list:
province_name=province_data["name"]
province_confirm=province_data["total"]["confirm"]
data_list.append((province_name,province_confirm))
map=Map()
map.add("各省份确诊人数",data_list,"china")
map.set_global_opts(
title_opts=TitleOpts(title="全国疫情地图"),
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True,
pieces=[
{"min":1,"max":99,"lable":"1~99人确诊","color":"#CCFFFF"},
{"min":100,"max":999,"lable":"10~999人确诊","color":"#FFFF99"},
{"min":1000,"max":4999,"lable":"1000~4999人确诊","color":"#FF9966"},
{"min":5000,"max":9999,"lable":"5000~9999人确诊","color":"#FF6666"},
{"min":10000,"max":99999,"lable":"10000~99999人确诊","color":"#CC3333"},
{"min":100000,"lable":"100000+人确诊","color":"#990033"}
]
)
)
map.render("全国疫情地图.html")