Python 学习第一天

文件开头加入    

# _*_ coding : UTF-8

或者

# coding = UTF-8
  • 修改默认编码格式

file > Settings > encoding > File encodings

Python 学习第二天

  • 标识符
    • 由字母、数字、下划线组成,但不能以数字开头
    • 区分大小写
    • 以单下划线开头_foo的代表不能直接访问的类属性,不能用 from XXX,而要用 import * 来导入
    • 双下划线开头__foo的代表类的私有成员
    • 双下划线开头和结尾的__foo__表示Python里特殊方法专用的标识符,如__init__()表示类的构造方法
  • Python可以同一行显示多条语句,用" " 分开
  • Python的代码块不使用 { } 来控制类,函数以及其他逻辑判断。             特色 -> 缩进
  • 没有严格缩进,执行时会报错

IndentetionError: unindent does not match any outer indentation leve

  • 一般以新行作为结束符,但可以用 " \ " 将一行语句分成多行显示,而语句中包含(),[ ],{ },则不需要。
  • Python引号

              引号( ' ... ... ' )            双引号( " ... ... " )             三引号( ''' ... ... ''' 或 """ ... ... """ )

  • Python注释

                #         表示单行注释

             三引号   表示多行注释

  • 空行用于函数之间或类的方法之间
  • Print输出
    • 默认输出换行
    • 如需不换行,在变量末尾加上逗号
  • 代码组
    • 以关键字开始,以冒号结束,该行之后的一行或多行代码构成代码组
  • 用户输入     
raw_input()
  • Python保留字符
    and exec not assert finally
    or break for pass class
    from print continue global raise
    def if return del import
    try elif in while else
    is with except lambda yield

Python 学习第三天

  • 字符串
    • .title()          对字符串首字母大写处理
    • .upper()      对所有字符大写处理
    • .lower()       对所有字符小写处理
  • 添加空白
    • /t    Tab效果
    • /n   换行效果
  • 删除空白
    • .rstrip():删除尾部空白    (右部)
    • .lstrip():删除开头空白    (左部)
    • .strip():前后都删除
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

 

  • 数字转换字符串str()          系统不会自动进行
  • Python语言开发者忠告
    • "import this"在Python终端会话中运行

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!

Python 学习第四天

  • 列表:由一系列按特定顺序排列的元素组成
bicycles = ['trek', 'cannondale', 'redline', 'specia']
# 逗号后需要加空格
  • 访问列表元素        a[0]即可
    • 索引从0开始追加,但可以为负数
      • a[-2]:表示倒数第2个元素
  • 修改列表元素         a [ ? ]即可
  • 添加列表元素
    • .append():在列表尾部追加元素,不影响其他元素
    • .insert(数,值):在任意位置插入新元素(超过列表长度,默认在最末尾插入)
  • 删除列表元素
    • del语句删除具***置的列表元素
    • .pop()方法删除元素,并且可以使用所删元素(术语:弹出,类似栈特性)
    • .remove()方法删除元素,由元素值确定(只会删除第一个指定值的元素)
  • 组织列表
    • .sort() 永久性排序,不可逆
    • .sort(reverse = True) 逆排序

                        python 2.4前sorted()和list.sort()没有key参数

                        python3.0后    cmp参数彻底被移除

                        python2.x中可以cmp指定函数来比较元素

Python 学习第五天

  • 组织列表
    • .sort()                   永久性         [方法]
    • sorted(列表)         临时排序     [函数]
    • reverse()方法,反转列表元素的排序,永久性。(复原方法:二次调用该方法即可
    • len()方法,获得列表长度
  • 操作列表 
    • 循环
      for 元素 in 列表:
          print()
          print()    #跟上一列同级
      print()        #跳出循环

       

    • Python根据缩进来判断代码的前后关系
  • 创建数字列表
    • range()函数,轻松生成一系列数字
# 生成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)
  • max()函数、min()函数、sum()函数
  • 列表解析
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 传递函数的参数类型不正确

Python 学习第六天

  • 切片 ----------------列表的部分元素
# 元素[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)
  • 代码格式
    • Tab缩进
    • 行长低于80字符
    • 适量空行
  • if语句
    • 多条件时用 并(and)/或(or)/存在(in)
    • 基本结构
if 条件1:
    处理1
elif 条件2:
    处理2
elif 条件3:
    处理3
else:
    处理4
  • if语句处理列表
    • 检查特殊元素
    • 确定列表非空
a = []
if a:
    非空处理
else:
    空处理

Python 学习第七天

  • 字典(一系列键-值对)
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
  • 调用set()方法,去除列表重复项

Python 学习第八天

  • 用户输入input()函数(视为字符串)
  • int()函数,将数字字符转换为数字
  • 求模(求余)运算符  %
  • while循环
  • break语句  立即退出当前循环
  • continue语句  结束本次循环
  • ctrl + C 结束程序!

Python 学习第九天

  • def  定义函数
  • 传递实参
    • 位置参数
    • 关键字参数
    • 默认值
  • 参数可选性
  • 参数传递列表
    • 禁止函数修改原列表,可传递切片
    • 传递任意数量的参数
# 空元组来接收
a(*value)

# 空字典来接收
a(**value)
  • 函数存储在模块中
import abc.py
  • 导入特定的函数
from 文件名 import 函数名
  • 给导入函数指定别名
from 模块名 import 函数名 as 别名
  • 给模块指定别名
import 模块名 as 别名
  • 导入模块中的所有函数
from 模块名 import *

Python 学习第十天

一、类

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(文件对象)

Python 学习十一天

一、数据可视化

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)

Python 学习第十二天

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)
<caption> 模块datetime中设置日期和时间格式的实参 </caption>
实参 含义
%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:区域颜色
"""