Python3学习笔记
来源:互联网 发布:艾蕾 知乎 编辑:程序博客网 时间:2024/05/17 03:11
python3学习笔记
- 变量类型
- 字符串
- 操作
- 字符串可以相加
- 列表
- 增加元素
- 修改元素
- 查找元素
- 删除元素
- 排序元素
- 元组
- 字典
- 查找键值
- 添加键对
- 删除键对
- 修改键对
- 常见操作
- 字典的遍历
- 字符串
- 函数
- 参数
- 缺省参数
- 不定长参数
- 引用
- 类型
- 可变类型
- 不可变类型
- 匿名函数
- 参数
- 文件
- 操作
- 面向对象
- 简介
- 概念
- 方法
- 模式
- 工厂模式
- 单例模式
- 异常
- 捕获异常
- 抛出异常
- 模块
- 常用操作
- 模块的使用
- 模块的发布与安装
- 编写setuppy文件
- 构建模块
- 生成发布压缩包
- 安装方式
- 其他
- 给程序传参数
- 查看关键字
- 常用操作
- 运算符
- 分隔符
- 直接执行脚本
1.变量类型:
数字类型:int、long、float、complex布尔类型:true、false字符串(string)列表(list)元组(tuple)字典(dictionary)
1.字符串
str通过下标存储len(name) #测字符串长度name[0]、name[1]...
.操作:
切片:name[start:end-1:(+/-)step] find,index(str) r(从右往左) #查找str是否出现 count(str) #共出现str多少次 replace(str1,str2) #将str1替换为str2 split(str) #用str分割,(删除str) capitalize() #字符串第一个单词大写 title() #每个单词首字母大写 startwith(str),endwith(str) #判断是否以str开头/结尾返回Ture与False lower(),upper() #全部转换为小写/大写字母 rjust,ljust,center(width) #靠左/右/中间对齐,并用空格填充至长度width (l/s)strip #删除(左/右)两边的空白字符 (r)partition(str) #(从右)以str分割为str前、str、str后 splitlines #按行分隔,返回一个包含各行的列表 is[alpha/digit/num/space] #判断是否全部为字母/数字/(数字或字母)/空格返回T/F join(str) #str每个元素插入当前操作的字符串
.字符串可以相加:
n = "name"a = "address"number = 18print(n+a+str(number))print("%s%d"%(n,number))print("",end="\n")
2.列表
[] list
1.增加元素
append #添加元素或列表 insert #添加元素至指定位置 extend #将列表中的元素添加进去 list1 + list2 = list1.extend(list2)
2.修改元素
list[num] = changename
3.查找元素
name(not)in list#判断name是否位于list中返回Ture/False index,count #name在list中是否出现/出现几次
4.删除元素
del list[num] #删除指定下标的元素 .pop() #删除最后一个元素 .remove() #删除元素
5.排序元素
.sort() #从小到大排序 .reverse #改为逆序
3.元组
() tuple#元组与列表相似,但其中的元素不能修改#只有一个值时需要加,号
4.字典
[] dict #字典的key值必须不可变
1.查找键值
dict["key"] dict.get("key",value)
2.添加键对
dict["new_key"]=value
3.删除键对
del dict.["key"] dict.clear #清空字典
4.修改键对
dict.["key"]=new_value
5.常见操作
len() #返回键值对个数 keys(),values() #返回key,values的列表 items() #返回包含键对值元组的列表 has_key(key) #判断是否含有指定key返回Ture/False
6.字典的遍历
for temp in dict.items(): print(temp[0]) print(temp[1]) for a,b in dict.items(): print(a) print(b)
2.函数
pass #为待写的程序代码占位置def function(): "帮助文档"return #函数在return处结束 #return返回多个值可利用列表,元组,字典如果全局变量与局部变量名字相同,函数使用局部变量如果在函数中对全局变量进行修改,必须在前面加上global声明(不可变类型)
.参数
1.缺省参数
def function(a,b=num) #为函数指定一个默认参数,当参数未输入时函数读取默认参数 #缺省参数必须位于最后 #缺省参数为可变类型时只初始化一次
2.不定长参数
def function(a,b,*args,**kwargs) args #类型为元组,存放多余所有未命名的变量参数 #若实参为列表,前加*将其解包 [a,b,c]---->a,b,c kwargs #类型为字典,存放多余命名参数 #若实参为字典,前加**将其解包 {"a":"1","b":"2"}---->a=1,b=2
.引用
函数参数是引用传递(地址)
.类型
1.可变类型
list,dict #如果变量a等于一个可变类型变量list,当list的值发生改变时,a的值同时发生改变
2.不可变类型
int,long,bool,float,str,tuple 对可变类型来说,函数体的运算会更改传入的参数变量 传递列表时 a=a+a #生成新列表 a+=a #在原来的基础上直接修改
匿名函数
sum = lambda arg1,arg2:arg1+arg2 #可做参数传递 b.sort(key=lambda x:x['age']) 字典b中元素按age排序
3.文件
操作
open(文件名,访问模式) "r" #只读 (默认) "w" #写入(存在则删除) + 用于读写 "a" #追加 read(n) #如果使用读了多次,下次读取的数据从上次结束开始(一次读取n字节) readline #每次读取一行 readlines #读取内容按行显示 write() #写入内容 tell() #返回当前文件读写位置 seek(offset,from) #设置当前文件读写位置 offset #偏移量 from #0,开头;1,当前;2,末尾 import os os.rename oldfile newfile #重命名 os.getcwd #显示当前目录(pwd) os.chdir #修改当前路径 os.listdir #将当前 os.remove,os.mkdir,os.rmdir a = str(list) list = eval(a) # 将变量list转换为应该的类型
4.面向对象
1.简介
class Name: def function(self): pass a = Name() x = a.function()
类与对象 #列表中元素可以是对象 类是创建对象的模型,是对象的抽象 属性 变量 方法 函数
类添加新对象后,访问可以通过方法中self.属性获得
修改对象属性时最好用方法修改而不是直接修改
属性名前加上_为私有属性,不能随意修改(实际是在名字前加类名)
2.概念
继承 #私有的属性、方法,不会被子类继承 重写 #子类中的方法会覆盖掉父类中同名的方法 调用 #在调用的父类方法前面加super(). 多继承 #当前类.__mro__ 元组中决定调用方法前后(方法名相同时) 多态 类属性,实例属性 #用对象名访问实例属性,用类名访问类属性 #重名时实例属性会覆盖类属性 类方法 #实例方法上一行加上@classmethod,用于修改类属型 #第一个参数一般用clz 静态方法 #实例方法上一行加@staticmethod #普通函数无参数
3.方法
self 把对象自身当作第一个参数传递给self __init__()方法 当创建完一个对象后会立马执行,不需调用 创建对象后实参会传给__init__()方法 __str__()方法 print(对象名)打印的是对象中__str__()方法的值 __del__()方法 删除一个对象时会默认调用__del__()方法 __new__方法 完成对象的创建,返回实例化的对象,一般重写时加上return object.__new__(cls)
4.模式
1.工厂模式
目的是使类功能单一,减少耦合性
#通过工厂方法实行对象创建
工厂方法 #定义了一个创建对象的接口(可以理解为函数),但由子类决定要实例化的类是哪一个
2.单例模式
一个类只有一个实例存在
__instance = None def __new__(cls, *args, **kw): if not cls.__instance: cls._instance = super().__new__(cls, *args, **kw) return cls._instance
5.异常
#程序运行过程中发生错误无法执行,出现错误的提示
#函数产生异常就会结束
1.捕获异常
try...except 异常名(as result) #把可能出现问题的代码放在try中,把处理异常的代码放在except中 #result储存系统捕获到的错误提示 捕获所有异常 except: except Exception as result #存储异常的基本信息 else #如果没有出现一场就执行下面的代码 finally... #无论异常产生最后一定会执行
2.抛出异常
自定义异常 #定义一个Exception的子类 raise 异常名 #抛出异常 #捕获异常时变量存储的是自定义异常的对象 raise #将捕获的异常抛给系统,触发默认的异常处理
6.模块
导入模块的过程相当于执行的过程
1.常用操作
"__name__" #可用于判断是直接执行的python脚本还是被引入执行的if __name__ = "__main__" #在导入模块时不会执行import syssys.path.append() #修改绝对路径,使不在当前目录下也能导入模块__all__ #用*导入时只导入列表变量中包含的函数
2.模块的使用
import 文件夹.模块 from 文件夹 import 模块 文件夹中的__init__.py控制着包的导入行为,在其中定义的__all__变量控制着 from 包名 import * 时导入的模块 若只 import 包名,则不会导入包中的模块
3.模块的发布与安装
1.编写setup.py文件
from distutils.core import setup setup(name='test',version='1.6',description='???',author='???',py_modules=["???"])
py_modules需指明所需包含的py文件(不需加.py)
2.构建模块
python setup.py build
3.生成发布压缩包
python setup.py sdist #打包后,生成最终发布压缩包name-version.tar.gz,目录结构
4.安装方式
找到压缩包后解压,然后进入文件夹执行命令
sudo python(3) setup.py install
若执行目录安装则在后面加 –prefix=安装路径
7.其他
1.给程序传参数
import syspython3 test.py testsys.agrv 为一个列表,其值为['test.py','test']
2.查看关键字
import keywordkeyword.kwlist
3.常用操作
dir 函数名 #函数具有哪些功能及用法input("text") #函数的值为字符串型,若数字相加则进行转义
4.运算符
// #取整除% #取余** #幂运算
5.分隔符
多行语句写在一行用;隔开
一行语句写在多行用\隔开
6.直接执行脚本
在脚本最前面加上这个即可
#!/usr/bin/python3
阅读全文
0 0
- Python3.X学习笔记
- Python3学习笔记
- 【从零开始】Python3 学习笔记
- Python3学习笔记02
- Python3基础 学习笔记
- python3 学习笔记
- Python3学习笔记--基础知识
- Python3.5学习笔记
- Python3学习笔记
- Python3学习笔记
- python3学习笔记:@property
- Python3 基础学习笔记
- python3.6学习笔记
- Python3学习笔记
- python3 学习笔记
- Python3学习笔记
- ##Python3 学习笔记
- python3学习笔记(一)
- Ubuntu 16.04 LTS 配置 theano 笔记
- 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
- 解决CentOs下SeLinux拦截nginx读取文件的问题
- 数据结构的一些摘要
- 解决乱码问题
- Python3学习笔记
- 1021. 个位数统计 (15)
- 前端上传图片预览
- Android 状态栏通知Notification的创建与使用
- [DP] POJ
- Linux下多文件中查找内容中含某关键字文件的方法
- mybatis动态标签的学习
- 绿盟一面
- fzu2082 过路费(树链剖分)