pyhton是一个高层次的结合了解释性、编译性、互动性、和面向对象的脚本语言
安装步骤:https://www.runoob.com/python/python-install.html
文件开头加入
# _*_ coding : UTF-8
或者
# coding = UTF-8
file > Settings > encoding > File encodings
IndentetionError: unindent does not match any outer indentation leve
引号( ' ... ... ' ) 双引号( " ... ... " ) 三引号( ''' ... ... ''' 或 """ ... ... """ )
# 表示单行注释
三引号 表示多行注释
raw_input()
and | exec | not | assert | finally |
or | break | for | pass | class |
from | continue | global | raise | |
def | if | return | del | import |
try | elif | in | while | else |
is | with | except | lambda | yield |
a = ' abc '
print(a.lstrip())
"""
输出:“abc ”
删除为暂时性的!
"""
print(a)
"""
输出:" abc "
"""
a = a.lstrip()
print(a)
"""
需要将处理后的值赋给a,才能是永久性的
输出:“abc ”
"""
a = 3 ** 2
print(a)
"""
输出:9
“”“
浮点数:带小数点的数字都为浮点数
* 通常可以正确处理,但是有特例 *>>> 0.2+0.1
0.3000000000004
>>> 3*0.1
0.300000000004
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
bicycles = ['trek', 'cannondale', 'redline', 'specia']
# 逗号后需要加空格
python 2.4前sorted()和list.sort()没有key参数
python3.0后 cmp参数彻底被移除
python2.x中可以cmp指定函数来比较元素
for 元素 in 列表:
print()
print() #跟上一列同级
print() #跳出循环
# 生成1~4
range(1,5)
# 生成【2,4,6,8,10】
range(2,11,2)
# 1
for a in range(1,11)
num = a**2
nums.append(num)
# 2
for a in range(1,11)
nums.append(a**2)
squares = [value**2 for value in range(1,11)]
print(squares)
"""
1> 首先指定一个描述性的列表名 squares
2> 然后指定左括号并定义一个表达式 value**2
3> 接着编写一个for循环给表达式提供值
4> 最后加上右括号
"""
NameError | 尝试访问一个没有申明的变量 |
ZeroDivisionError | 除数为0 |
SyntaxError | 语法错误 |
IndexError | 索引超出序列范围 |
KeyError | 请求一个不存在的字典关键字 |
IOError | 输入输出错误(例如:所读取的文件不存在) |
AttributoError | 尝试访问未知的对象属性 |
ValueError | 传递函数的参数类型不正确 |
# 元素[1~3]号
a[0:3]
# 从头开始,到第4号元素
a[:3]
# 从第三号元素开始,到列表结束
a[2:]
# 整个列表的切片
a[:]
a = b[:] # 值以切片赋给a
a = b # 地址赋给a
dimensions = (200, 500)
# 错误! 元组中元素不可修改
dimensions[1] = 250
# 但是可以修改元组变量
dimensions = (200, 270, 25)
if 条件1:
处理1
elif 条件2:
处理2
elif 条件3:
处理3
else:
处理4
a = []
if a:
非空处理
else:
空处理
a = {
“name”: "wgf",
"age": 22,
"date": "2019-7-11"
}
a["like"] = "apple"
love = {
'a': 'wf',
'b': 'wss',
'c': 'wgf'
}
# 1 遍历所有 键 和 值
for key,value in a.items()
# 2
for key in a.key()
# 3 默认遍历键
for key in a
# 空元组来接收
a(*value)
# 空字典来接收
a(**value)
import abc.py
from 文件名 import 函数名
from 模块名 import 函数名 as 别名
import 模块名 as 别名
from 模块名 import *
1.首字母大写的名称
2.构建方法 _init_()
class Car():
def __init__(self,name,age):
# self默认必须,系统自动生成
self.name = name
self.age = age
3.类中每个属性都必须有初始值,即使是0或空字符串
4.继承
class a(F):
a> 父类必须包含在当前文件中,且位于子类前面
b> 首先需将父类所有属性赋值
在子类的__init__()方法中,先super.__init__()
5.重写父类方法,同名即可
6.导入类
from car import Car
with open("abc.txt") as file_open:
contents = file_open.read()
print(contents)
1.open()函数:打开文件,当前文件与代码文件同目录
2.with关键字:在不再需要访问文件后将文件关闭,也可以通过调用 close() 和 open() 来控制
3.read()方法:读取文件所有内容
4.文件路径
a> 相对路径:当前文件或子目录
b> 绝对路径:任何地方
5.逐行读取
filename = 'pi.txt'
with open(filename) as file_object:
for line in file_object:
print(line)
6.以列表存储文件各行内容
readlines()方法:从文件中读取每一行,并将其存入列表
readline() | 字符串 | 一行 |
readlines() | 列表 | 多行 |
7.Python所有文件都解读为字符串,数字则需要转换 int() 和 float() 函数
8.写入文件
open(文件名,模式名)
"""
'r':读取模式(默认)
'w':写入模式
'a':附加模式
'r+':读写模式
"""
‘w’模式:如果写入文件不存在,open()方法会自动创建
已存在,则会清空文件后返回对象
# 同样,Python只能写入字符串,数字需要str()后才能写入
‘a’模式:则不会清空文件直接返回该对象
1.try-except代码
2.else代码:依赖于try代码块成功后执行的代码
3.split()方法:将以空格为分隔符的字符串拆分为列表进行存储
4.pass语句:空语句,什么也不做
# 存储
json.dump(存储的数据, 文件对象)
# 读取
json.load(文件对象)
1.matplotlib库
2.函数plot():尝试根据数据绘制出有意义的图形(折线图)
3.plt.show()打开matplotlib查看器
4.修改标签文字和线条粗
a> plt.plot(数据,linewidth=决定所绘制线条的粗细)
b> 函数title()指定标题
c> xlabel() 和 ylabel()指定x轴和y轴标题
d> 参数fontsize指定图表中的文字大小
e> tick_params函数设置刻度样式
参数axis决定设置 x轴,y轴,同时存在 三种
参数color 刻度颜色
参数color 刻度及文字颜色
5.校正图形
plot函数可同时录入输入值与输出值
import matplotlib.pyplt as plt
input_value = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
plt.plot(input_value, squares, linesize=5)
plt.show()
1.scatter()函数
实参 s 设置绘制图形的点的尺寸
2.tick_params函数
参数which代表 主刻度线(major,默认)、副刻度线(minor)、同时设置(both)
3.plt.axis([0, 1100, 0, 1100000])
设置x轴与y轴的取值范围
4.删除数据点的轮廓
实参edgecolor = 'none'
5.自定义颜色
c = 'red'
c = (0, 0, 0.8):采用RGB颜色模式,三个取值为0~1之间的小数
6.颜色映射
参数cmap=plt.cm.Blues
c = 列表
7.自动保存图表
plt.savefig('a.png',bbox_inches='tiger')
# bbox_inches:去除空白区域
8.隐藏坐标轴
import matplotlib.pyplt as plt
# 隐藏x轴
plt.axes().get_xaxis().set_visible(False)
# 隐藏y轴
plt.axes().get_yaxis().set_visible(False)
1.函数figure()用于指定图表的宽度,高度,分辨率和背景色
2.Pygal包,可缩放的矢量图形文件
3.随机数randint(a,b)
4.pygal.Bar()生成条形图
import pygal
frequencies = [20, 65, 32, 42, 87, 24]
hist = pygal.Bar()
# 标题
hist.title = 'abc'
# x轴坐标值
hist.x_labels = ['1', '2', '3', '4', '5', '6']
# x轴标题
hist.x_title = 'x'
# y轴标题
hist.y_title = 'y'
# 加入数据(y轴)
hist.add('D6', frequencies)
# 生成svg文件
hist.render_to_file('xxx.svg')
5.导入csv文件
import csv
filename = 'abc.csv'
with open(filename) as file:
reader = csv.reader(file)
# 获取下一行数据,且指针向下一行移动
row = next(reader)
print(row)
6.对列表对象调用enumerate()函数,获取每个元素索引及其值
7.模块datetime-------时间模块
from datetime import datetime
first_date = datetime.strptime('2014-8-1', '%Y-%m-%d')
print(first_date)
实参 | 含义 |
%A | 星期的名称,例如:Monday |
%B | 月份名,如January |
%m | 数字表示的月份(01~12) |
%d | 数字表示月份中的一天(01~31) |
%Y | 四位年份,如2019 |
%y | 二位年份,如19 |
%H | 24小时制的小时数(00~24) |
%I | 12小时制的小时数(01~12) |
%p | am 或 pm |
%M | 分钟数(00~59) |
%S | 秒数(00~61) |
8.区域着色
fill_between(x轴,y轴1值,y轴2值,alpha=0.1,facecolor='blue')
"""
alpha:透明度,取值[0.1]
facecolor:区域颜色
"""