Python3.6学习记录
# -*- coding: utf-8 -*-注释
“>>>:输出的结果”
pip安装
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
变量、字符串操作
大小写:.title()首字母大写, .upper()全大写, .lower()全小写
例:
word = 'aBcdEfg'
print(word.title())
>>>Abcdefg
word = 'aBcdEfg'
print(word.upper())
>>>ABCDEFG
word = 'aBcdEfg'
print(word.title())
>>>abcdef合并(拼接):+ 制表符: \t 换行 :
删除空白: rstrip()删除右边空白, lstrip()删除左边空白,strip()删除左右空白
例:
数字
浮点数:
求模(求余)运算符 (%),它将两个数相除并返回余数
求商运算符(//),它将两个数相除并返回商,不管余数
函数: str() 将数据转成字符串 , int()整数
列表:
列表-访问列表内容,从左至右,0为第一位
列表-组织列表
sort()对列表进行永久正序排序,无法恢复到原来状态,按字母顺序排列;sort(reverse=True)反序 例:
列表-列表长度:
列表-操作列表
列表-数值列表
range()函数,指定一个数字范围
例:range(1, 5),从1开始,到5结束,不包含5
例:range(2, 10, 2),从2开始,到11结束,每隔2生成一个值。那么生成的结果就是2,4,6,8
列表-数字统计: min()最小值,max()最大值, sum()求和
列表-复制列表: 前面是新列表,后面是旧列表,可以是全部,也可以是指定的分片内容。复制列表后对新旧列表添加的元素不会出现在另一个列表中。
列表转字符串,通过''.join来将列表转为字符串,前面的单引号中可以添加任何字符做转换后的分隔符,
元组
跟列表类似,不过是用小括号包含,且元组中的元素不能修改(可以通过变量的形式修改)。dimensions = (200, 50)。读取、遍历操作形式跟列表相同。
if语句
如果条件测试的结果为True ,Python就会执行紧跟在if 语句后面的代码;否则Python将忽略这些代码。
还有以下类似的情况,就不一一举例了
字典
以大括号{}包含,每个键对应一个值。
字典-修改:
字典-删除:
简单取值:
字典-取值方法:items()显示所有,sorted()排序,key()取键, values()取值, set()除去重复项。
例:
1、items(),通过for循环可以依次取出所有指定值
2、sorted(),对结果调用sorted()函数,最终结果将会按顺序显示结果
3、key(),取字典的键而不显示值
4、value(),取字典的值而不显示键
5、set(),当字典中部分键的值相同时,可以通过set()函数去重。
字典-嵌套
当一个字典无法存储同类型的第二个信息时,就可以用到嵌套。即将字典嵌套到列表中
将字典存储在列表中以及取值示例:
将列表存储在字典中以及取值示例:
在字典中存储字典以及取值示例:
While循环
input()函数
让程序暂停,等待用户输入文本,并将输入的内容存储在变量中,方便调用
int()函数:获取数值输入
以下两份代码执行完之后虽然输出内容一样,但第一份其实是将数字以文本形式输出 所以第一份代码执行后会报错
while循环语句:
break:退出循环,不光在while中可以用,所有循环语句中都能使用break退出当前循环
continue:要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue 语句,它不像break 语句那样不再执行余下的代码并退出整个循环。
while循环处理列表和字典
函数
定义函数
向函数传递信息
第一阶段,形参,实参均为空值,直接显示打印内容
第二阶段,形参为变量username,实参为手动输入内容,liqiao.将实参的值写到形参变量中,并打印出来,打印格式为首字母大写。
第三阶段,形参为变量username, 实参为变量usernames,实参变量提前定义好了,内容为dier.最后打印显示。
第四阶段,形参为变量username, 实参为变量usernames,提前设置一个列表,将姓名记录,通过for循环将列表中的值依次放到实参变量中并进行打印
如果有多个形参,在调用函数通过实参给形参赋值时,要么按形参的位置,依次赋值;要么按形参名称赋值
关键字实参:按形参名称赋值
默认值
等效的函数调用
返回简单值 return函数
让实参变成可选,例如有的人的名字由三部分组成,有的只有两部分。这时就可以将形参设置一个空值。 下面的例子中,将middle_name设置为空值,这样就算只输入first_name 和last_name,也不会报错。
返回列表、字典 函数可返回任何类型的值。
返回列表
返回字典
传递列表
在函数中修改列表
通过for循环将一个列表中的元素添加到另一个列表中
通过while循环将一个列表中的元素移到另一个列表中
传递任意数量的实参,形参toppings前面的*表示创建一个名为toppings的空元组,
传递任意数量的实参,形参toppings前面的**表示创建一个名为toppings的空字典
将函数存储在模块中,导入整个模块
先新建一个名为pizza.py的文件,并在其中创建一个函数。如下:
再新建另一个名为make_pizza.py的文件,导入并调用pizza.py中的函数
执行make_pizza.py这个文件,python会在后台自动导入pizza.py的内容到make_pizza.py中并完成代码执行
导入指定的函数;
导入单个的函数时,在引用时就不需要文件名加模块名称了 先新建一个名为pizza.py的文件,并在其中创建一个函数。如下:
再新建另一个名为make_pizza.py的文件,导入并调用pizza.py中的make_pizza函数
使用as给模块指定别名,调用模块中的函数更轻松
先新建一个名为pizza.py的文件,并在其中创建一个函数。如下:
再新建另一个名为make_pizza.py的文件,导入pizza.py中的所有函数,并设置别名 p
导入模块中的所有函数,跟导入整个模块的效果一样,不过在调用方法上有所区别
先新建一个名为pizza.py的文件,并在其中创建一个函数。如下:
再新建另一个名为make_pizza.py的文件,使用 * 导入pizza.py中的所有函数
类
通过class 来创建类,类的首字母为大写。 以下是一个例子,创建了一个名为Dog的类,并在其中制定了部分方法(函数),最后对类进行了调用
方法:类中的函数称为方法,之前所有的函数都适用于方法。__init__()是一个特殊的方法,每次根据类创建新实例时,Python都会自动运行它。这个方法的开头和末尾各有两个下划线,用于做约定,防止跟其它方法发生名称冲突。
__init__()是一个特殊的方法,每次根据类创建新实例时,Python都会自动运行它。这个方法的开头和末尾各有两个下划线,用于做约定,防止跟其它方法发生名称冲突。使用类和实例:给属性指定默认值、修改属性的值、对属性的值进行递增
继承
重写父类
比如A类为B类的父类,但A类中有某一个方法(函数)在B类中不适合,则可以在B类中重写这个方法。
导入类:因为类中放的也是函数,所以导入方法跟函数类似
导入一个类,先创建一个名为car.py的文件,然后在其中写一个Car的类,在另外一个文件中进行导入
cat.py
执行my_car.py即可
在一个模块中存储多个类
car.py
执行my_electric_car.py即可
从一个模块中导入多个类,引用前面的car.py文件。
my_cars.py
导入整个模块
导入模块中的所有类
在一个模块中导入另一个模块
方法跟前面相同,思路如下:分别有A B两个模块文件,B 继承了A 的类,那么需要先在B模块文件中导入继续的A类,C文件在需要分别使用A B两个模块时,只需导入A B模块即可。 再复杂点,A B C三个模块文件,C继承B,B继承A,文件D需要导入C时,只需要C B分别在各自的文件中准确导入了继承的模块后,D可以直接通过C调用,而不需要再导入A B两个模块。
文件
从文件中读取数据 新建一个文件 pi_digits,输入如下内容:
新建file_read.py文件,来读取上一个文件的内容:
file_read.py
解释
open() #打开文件, as #给打开的文件取个别名(赋值给变量),方便后面操作。默认是跟执行文件在同一目录。 read() #读取文件的全部内容 rstrip() #之前学到过的,删除右边的空格。可以去掉对比一下效果。 #这里调用了open(),却没有close(),是因为使用了with关键字,作用是在访问文件后自动将其关闭。
文件路径,以下只是linux环境下的路径写法,windows环境中路径为反斜杠\
相对路径
绝对路径
逐行读取:有时需要检查其中的每一行。则需要通过for 循环来实现
file_read.py
创建一个包含文件各行内容的列表:使用with关键字时,open()返回的文件内容只能在with代码块内可用。如果要在with代码块以外的地方使用,可以将内容存储在一个列表中。然后在其它地方调用。
file_read.py
写入文件:跟读取类似,不过还需要在调用 open()时提供另外一个实参
解释:
w #实参,表示写入,如果文件里有内容,会被覆盖 a #追加,如果文件里有内容,不会覆盖,在后面追加写入的内容。 r #读取文件时的默认值,可写可不写。 write #写入函数
异常
当发生python不知所措的错误时,会创建一个异常对象,如果未对该异常进行处理,程序将停止。 以下例子为使用try-except
处理异常
ZeroDivisionError
FileNotFoundError
使用try-except时配合else
报错时不做任何提示 直接把except下的print()改成 pass
分析文本
以下代码中,我有准备一个名为Napoleon.txt的文件,但没有python这个文件,运行后会显示Napoleon.txt的单词数,然后提示没有python这个文件
存储数据
使用json.dump()来存储数据
使用json.load()来读取数据
pygame
rect()
left
top
right
bottom
left : 矩形左边的X坐标 150 ---->图片中的A点
top: 矩形顶部的Y坐标 75 ---->图片中的B点
right : 矩形右边的X坐标 260 ----->图片中的C点
bottom: 矩形底部的Y坐标 120 ------->图片中的D点

python获取网页指定信息,例如csrf-token
需要用到的库有requests BeautifulSoup 
比如获取上图中 csrf-token 的值,过滤的关键在于 soup.find(‘meta’,{‘name’:’csrf-token’})[‘content’]
python3通过re加正则表达式,过滤指定内容报“TypeError: cannot use a string pattern on a bytes-like object”错误,解决方法
python3.6登录website,辅助软件fiddler,用于抓取登陆过程以及需要的信息
一、直接提交参数进行登录,以jenkins登录为例


二、需要携带crsf-token,以redmine登录为例


三、cookie
待补充
关于Python 文件中if name == 'main'的意思
当.py文件被直接运行时,if name == 'main'之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main'之下的代码块不被运行。
示例:只有直接执行以下内容的py文件时才会打印“Hello, world!”
最后更新于