脚本宝典收集整理的这篇文章主要介绍了Python基础知识,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
- 标识符,变量名、函数名、类名的统称
- 命名规范
- 不能与系统关键字、模块名相同
- 变量
- 输入输出
- 输入:input([';message'])
- 接收外部输入,无论外部输入哪种数据类型的值,都统一作为字符串处理
- message为可选的参数,一般用于输入的提示
- 在控制台输入时,需要夹引号,不然会报语法错误
- 输出:PRint(value1,value2,......,sep=' ',end='n',file=Sys.stdout)
- value1,表示要输出的内容,可以同时输出多个对象,中间使用逗号隔开
- sep,sePErate,在结果中多个对象值的分隔符,默认为空格
- end,表示输出完成后的结束符,默认为换行符(n)
- 数据类型
- 布尔型:bool
- 只有两个值:True、False,声明后不能被改变
- bool(obj),根据对象的值返回布尔值
- 0、None、空字符、空列表、空字典,是返回False
- 字符串:str,包含在引号之间的内容(可以是单引号、双引号、三引号)
- 声明后不能被改变
- 单引号、双引号不能跨行写,非得跨行的话,就输入一个转义字符
- tips:如果三引号单独站一排,表示注释;如果三引号在等号右边,表示字符串
- 元组:tuple
- 包含在()之间的内容,每一个元素之间使用逗号分隔,元组中的元素可以是任意数据类型
- 列表:
- list,包含在[]之间的内容,每一个元素之间使用逗号分隔,列表中的元素可以是任意数据类型
- 声明:li = [1,2,1.2,'abcd',True,[1,2,3]]
- 字典:
- dict,包含在{}之间的内容,每一个元素为一个键值对(key:value),键只能为不可变的数据类型(int、float、布尔型、字符串、元组),值可以为任意数据类型
- 声明:dic = {'name':'lucy',1:[1,2,3],1.8:{},True:'abc'(1,2):1000}
- 集合(了解):
- set,包括在{}之间的内容,每一个元素之间使用逗号分隔,集合中的元素可以是任意数据类型
- 例:
- 数据类型
- 数据类型转换
- bool(obj),根据对象的值返回布尔值
- 0、None、空字符、空列表、空字典,返回False
- tuple(obj),将对象转换为元组
- 字典----> 元组
- 元组中只有键
- 集合不能转元组
- list(obj),将对象转换为列表
- 格式化
- 第一种方式:占位符
- 语法:%[-w.p]type
- type,表示数据类型(d-整数,f-浮点数,s-字符串)
- 例1:
- %5.2f,表示一个浮点数,宽度为5,精确到小数点后第2位
- 例2:
- 输入一个用户的姓名,手机号,按格式输出用户信息:姓名--xxxx;手机号---xxxxxxxx
- 例3:
- 输入学生的姓名、成绩,按以下格式输出每个学生的成绩信息、平均成绩(保留2位小数)
- 第二种方式:format
- 语法:'{[:w.pf]}'.format(VAR)
- 例:
- 第三种方式:f-string
- 例:
- 运算符
- 算术运算符
- +,加法,返回两个对象的和,3+4 = 7
- 如果运算的两个对象为字符串,则做字符串的拼接,如'abc'+'efg' = 'abcdefg'
- *,乘法,返回两个对象乘积,3*4 = 12
- 如果运算的对象为1个字符串,1个数字,则复制该字符串n次,如'a'*5 = 'aaaaa'
- 例:
- 赋值运算符
- 例:
- 逻辑运算符
- and,参与运算的对象结果都为True,则整体表达式结果为True,否则为False
- or,参与运算的对象只要有任意一个结果True,则整体表达式结果为True,如果都为False则整体为False
- not,参与运算的对象结果为True,则整体结果为False;参与运算的对象结果为False,则整体结果为True;
- 成员运算符
- 检查在指定对象中是否包含指定的成员,包含则返回True,否则返回False
- 身份运算符
- 检查两个对象是否为同一个引用(是否指向同一个内存地址),如果是返回True,否则返回False
- not is
- 三元运算符
- 语法:value1 if 布尔表达式 else value2,如果布尔表达式结果为True,返回value1;否则返回value2
- 数据结构
- 通用方法
- len(obj),返回对象(字符串、列表、元组、字典、集合)中的元素个数
- sum(obj),返回对象(列表、元组、字典、集合)中所有元素的和
- max(obj),返回对象(列表、元组、字典、集合、字符串)中的最大元素
- zip(obj1,obj2,...),将多个对象打包
- 字符串方法
- count(sub[, start[, end]),返回字符串中指定位置范围内指定子字符串的数量
- end,表示结束位置的索引
- index(sub[, start[, end]]),返回子字符串在字符串中的索引
- startswith(sub),检查是否以指定的子字符串开始,如果是返回True,否则返回False
- endswith(sub),检查是否以指定的子字符串结尾,如果是返回True,否则返回False
- replace(old,new[,count]),替换,可以指定替换次数(默认全部替换)
- split([char]),将字符串使用指定的字符(如果不指定则默认使用空字符分割)分割,返回一个列表,属于字符串和列表的相互转化
- join(iterable),将可迭代对象转换为字符串
- 数字不可以用这个方法
-
- isdecimal(),判断字符串是否由数字组成,如果是返回True,否则返回False
- isalpha(),判断字符串是否由字母组成,如果是返回True,否则返回False
- isupper(),判断字符串是否全部为大写,如果是返回True,否则返回False
- islower(),判断字符串是否全部为小写,如果是返回True,否则返回False
- upper().isupper()
- lower().islower()
- isalnum(),判断字符串是否由字母或者数字组成,如果是返回True,否则返回False
- isalpha(), 判断字符串是否全由字母组成,如果是返回True,否则返回False
- isdigit(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
- isdecimal(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
- isnumeric(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
- rjust(length,'xx'),在字符串左边拼接xx,总长度为length
- ljust(length,'xx'),在字符串右边拼接xx,总长度为length
- encode(),编码
- decode(),解码
- 元组方法
- index(obj),返回指定元素在元组中的索引,如果指定元素不存在则报错,ValueError: tuple.index(x): x not in tuple
- count(obj),返回指定元素在元组中的数量,如果指定元素不存在则返回0
- 列表方法
- index(obj),返回指定元素在列表中的索引,如果指定元素不存在则报错
- count(obj),返回指定元素在列表中的数量,如果指定元素不存在则返回0
- pop([index]),根据索引删除列表元素(如果不指定索引则删除最后一个元素)
- apend([obj]),在列表的末尾添加一个元素(可以是任意数据类型)
- insert(index,obj),在列表的指定索引处插入一个元素
- extend(iterable),将一个可迭代对象的元素拆开,再分别添加到列表
- sort([reverse=True]),排序,默认为升序
- 字典方法
- get(key),返回指定键的值,如果键不存在返回None
- values(),以dict_values格式返回字典中的所有值
- keys(),以dict_keys格式返回字典中的所有键
- update(obj),将指定对象更新到字典中
- setdefault(key,default_value),返回指定键key的值,如果这个键不存在则新增键值(key:default_value)对并且返回default_value
- Fromkeys(iterable),从可迭代对象快速创建一个字典
- 可迭代对象
- 内部包含__iter__()的对象(字符串、元组、列表、字典、集合),数字无
- 序列
- 操作类型:
- 索引,可以通过索引访问序列中的元素(索引范围:[0,len(obj)-1])
- 语法:obj[index]
- 切片,通过索引返回对象的子元素片段
- 语法:obj[start:end:step]
- start,开始位置,如果省略表示从第一个位置开始
- end,表示结束位置,实际返回的是end-1位置上的元素,如果省略表示取到最后一个元素
- step,表示步长(每间隔多少元素取一个),省略表示1
- 控制结构
- 分支语句(if)
- 单分支
- 描述了程序在布尔表达式结果为True的情况下需要执行的操作
- 语法:注意冒号与缩进(默认为4个空格)
- 例1:输入一个学生的姓名、成绩,如果成绩>=60输出'合格',小于60输出不合格
- 例2:输入一个整数,判断这个数是奇数还是偶数
- 双分支
- 描述了程序在布尔表达式结果为True或者False的情况下需要执行的操作
- 语法:
- 例1:输入一个学生的姓名、成绩,如果成绩>=60输出'合格',小于60输出不合格
- 例2:输入一个整数,判断这个数是奇数还是偶数
-
- 多分支
- 描述了程序在不同的布尔表达式下分别需要进行的操作,else不是必须的
- 语法:
- 例1:输入一个学生的姓名、成绩,如果成绩在[91,100]输出'优秀',成绩在[81,90]输出'良好',成绩在[60,80]输出'合格',小于60输出'不合格'
- 嵌套if语句
- 例1:输入一个学生的姓名、成绩,如果成绩在[91,100]输出'优秀',成绩在[81,90]输出'良好',成绩在[60,80]输出'合格',小于60输出'不合格'。如果输入成绩不在0-100提示错误,输入成绩包含非数字提示错误。
- 例2:使用一个字典保存学生的信息(学号作为键,值为列表--包含姓名、性别、手机号三个元素),输入一个学生的学号,如果存在则打印出该学生的信息,如果不存在则新增一个学生
- 循环语句(while、for)
- while语句
- 语法:
- 例1:输出0-9这10个数字
- 例2:计算1+2+...+9+10的和
- 例3:输入1个正整数n,计算1+...+n的和,如果n=1,和为1
- 例4:循环次数未知,可以通过变量值的变化控制循环继续还是结束。
- 使用字典保存用户信息userinfo = {'user1':['123456','张三'],'user2':['123456','李四']},完成注册和登录功能
- 注册,如果用户名已存在,提示错误;如果密码不是6位数字,提示错误
- for语句
- 语法:
- i,变量,可以不需要声明,在循环内部可以直接使用该变量的值
- range(start,end),生成[start,end)范围的数字序列
- 例1:输出0-9这10个数字
- 例2:输入1个正整数n,计算1+...+n的和,如果n=1,和为1
- 例3:将字符串s = 'qw$^e&sd1*23('中的特殊符号去除
- 例4:嵌套for循环。输出一个5x5矩阵
- 循环控制语句
- continue,结束当前循环,开始下一次新的循环
- 循环与else
- 如果循环没有遇到break语句而终止,则执行else语句中代码;否则不执行
- 函数
- 声明:
- 参数:也叫做形参,可选,可以有多个。在函数内部可以直接使用形参
- 返回值:可选的,可以同时返回多个值。如果没有return语句,则默认返回None
- 例1:
- 不带参数与返回值
- 例2:
- 带一个参数与一个返回值
- 例3:
- 多个参数与多个返回值
- 参数
- 形参
- 必须参数(位置参数)
- 要求在调用时必须严格按照形参的数量、顺序、数据类型传入实参
- 默认参数
- 在声明函数时通过键值对(key=value)的形式指定形参的值,指定了以后在调用函数时,可以不为该参数传值(此时使用默认值),如果传入则使用实际传入的值。
- 默认参数必须放在位置参数后面
- 可变参数
- *args,接收若干的位置参数,将传入的值封包一个元组args中
- **kwargs,接收若干的关键字参数,将传入的值封包一个字典kwargs中
- 实参
- 关键字参数(指定参数)
- 在调用函数时,通过键值对(key=value)形式指定将实参传给某个形参,此时可以不用再关心形参的顺序
- 变量作用域
- 全局变量
- 在函数外部声明的变量,可以在函数的内部使用,也可以在函数外部使用
- global
- 在函数内部如果需要修改全局变量(不可变数据类型),需要使用global声明变量
- 如果全局变量为可变数据类型,在函数内部可以任意操作该全局变量,不需要使用global声明,
- 例
- 函数递归
- 例
- 匿名函数
- 语法:lambda [参数1,...]:返回值
- 必须,并且只能有一个返回值
- 不会重复调用的地方,用的比较少
- 例1:
- 例2:排序,通过匿名函数指定用于排序的key
- 模块与包
- 包,存在一个__init__.py文件的目录,在包中可以有若干的模块
- 导入
- import 模块名/包名.模块名
- 导入一个模块,使用时通过`模块名.成员名`引用模块下的指定内容
- from 模块名/包名 import 成员1,成员2,......
- 导入模块下的指定成员
- as,可以为导入的模块或者成员取别名,使用时通过别名引用即可
- 常用模块
- random
- random.randint(a,b),生成[a,b]之间的整数
- random.uniform(a,b),生成[a,b]之间的浮点数
- random.random(),生成[0,1.0]之间的浮点数
- random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数
- random.choice(sequence),从序列中获取一个随机元素
- random.shuffle(x[, random]),将一个列表中的元素打乱
- random.sample(sequence, k),从指定序列中随机获取指定长度的片断
- sys
- path,以列表返回python环境变量
- os
- os.listdir(path),以列表返回指定目录下的文件名、目录名
- os.path.exists(path),检查指定对象是否存在,存在返回True,否则返回False
- os.path.isdir(path),检查指定路径是否为目录,如果是返回True,否则返回False
- os.path.isfile(path),检查指定路径是否为文件,如果是返回True,否则返回False
- os.path.abspath(path),返回指定对象的绝对路径
- os.path.dirname(path),返回指定对象所在的目录
- os.path.join(path,obj),将两个对象拼接成一个路径
- 例1:输入1个目录路径,统计出该目录下有多少个文件和目录
- hashlib
- md5(s:bytes),对明文进行md5加密,返回md5对象,加密后可以通过调用hexdigest()方法获取密文
- 安装第三方模块
- pip命令安装(推荐)
- pip install pip -U,更新pip模块
- pip show 模块名,列出已经安装的指定模块的信息
- pip install 模块名,从默认镜像源安装指定模块
- 国内的镜像源
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.COM/pypi/simple/
- 中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
- 华中理工大学:http://pypi.hustunique.com/
- 山东理工大学:http://pypi.sdutlinux.org/
- 豆瓣:http://pypi.douban.com/simple/
- 临时配置:-i 镜像源
- pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple,使用清华大学镜像源安装
- 永久配置:pip config set global.index-url 镜像源
- pip config set global.index-url http://pypi.douban.com/simple/,配置默认镜像源为豆瓣镜像源
- pip install xlrd,配置好以后默认安装时使用豆瓣镜像源
- pip uninstall 模块名,卸载已经安装的模块
- 文件操作
- Excel
- 模块:xlrd(读)
- 使用步骤:
- 1、打开文件
- open_workBook(path),打开Excel文件,返回一个文件对象,目前只支持xls格式,不支持xlsx
- 例1:f = xlrd.open_workbook('./test.xls'),打开当前目录下的test.xls文件
- 2、获取文件中的sheet名称
- sheets(),返回excel文件中所有的sheet对象,通过对象调用name返回sheet名称
- 例2:sheets = f.sheets(),获取所有的sheet对象
- sheet_names(),返回excel文件中所有的sheet的名称
- 例3:names = f.sheet_names(),以列表返回所有的sheet的名称
- sheet_by_name(sheet_name),通过sheet名称获取指定的表
- 例4:sheet = f.sheet_by_name('表1'),获取名称为表1的sheet
- sheet_by_index(index),通过索引获取指定的表
- 例5:sheet = f.sheet_by_index(1),获取索引为1的sheet
- 3、通过sheet名称获取指定表中的数据
- 行
- row_values(row),获取指定行中的数据,参数row为行号
- 例7:values = sheet.row_values(1),获取第2行的数据,以列表返回
- 列
- col_values(col),获取指定列中的数据,参数col为列号
- 单元格
- cell_value(row,col),返回指定单元格的数据
- 模块:xlwt
- 使用步骤:
- 1)创建工作簿:book = xlwt.Workbook(),如果写入中文为乱码,可添加参数encoding = 'utf-8'
- 2)创建工作表:sheet = book.add_sheet('Sheet1')
- 3)向单元格写入内容:sheet.write(m,n,'内容1')、sheet.write(x,y,'内容2')
- 4)保存工作簿:book.save('excel文件名称'),默认保存在Py文件相同路径下,如果该路径下有相同文件,会被新创建的文件覆盖,即xlwt不能修改文件。
- 例1:基本使用
- 例3:设置字体
- 例4:设置单元格宽度
- 例5:设置边框
- 例6:设置背景色
- 安装第三方模块
- pip命令安装(推荐)
- pip install pip -U,更新pip模块
- pip show 模块名,列出已经安装的指定模块的信息
- pip install 模块名,从默认镜像源安装指定模块
- 国内的镜像源
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
- 华中理工大学:http://pypi.hustunique.com/
- 山东理工大学:http://pypi.sdutlinux.org/
- 豆瓣:http://pypi.douban.com/simple/
- 临时配置:-i 镜像源
- pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple,使用清华大学镜像源安装
- 永久配置:pip config set global.index-url 镜像源
- pip config set global.index-url http://pypi.douban.com/simple/,配置默认镜像源为豆瓣镜像源
- pip install xlrd,配置好以后默认安装时使用豆瓣镜像源
- pip uninstall 模块名,卸载已经安装的模块
- 文本文件
- 打开文件
- 语法:open(file[,mode=type,encoding=编码]),打开指定文件,返回一个文件对象
- file,表示待操作的文件,相对路径、绝对路径都行(不能是目录)
- mode,表示打开文件的方式,如果省略则表示只读模式
- w,覆盖写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
- a,追加写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
- encoding,指定编码,如果打开文件提示编码错误,再加上encoding参数即可
- 例1:f = open(file='f2.py',mode='r',encoding='utf8'),以只读方式打开文件
- 常用方法
- closed,检查文件是否为关闭状态,如果是返回True,否则返回False
- 例2:
- 读文件
- read(),将文件的所有内容读取出来,保存在字符串中
- readline(),读取文件中的一行,保存在字符串中
- readlines(),将文件的所有内容读取出来,保存在列表中,文件中的每一行为列表中的一个元素
- 写文件
- writelines(iter),将一个可迭代对象的所有元素写入文件
- 例:
- 有一个文件保存学生的成绩信息,计算出每个学生的总成绩
- csv文件
- 例:
- with语句
- 语法:with open(file) as f:
- 例:
- 1、一个目录users,users中使用文件保存用户信息(每个用户一个文件,文件名为账号),文件中包含三行内容,分别是密码、姓名、账户余额,格式如下。
- 异常
- 语法:
- except
- 捕获异常,并且针对该异常进行相应的处理,可以同时存在多个except语句
- except (异常1,异常2,...),捕获元组中的异常
- 例1:多个except语句捕获不同的异常
- 例2:一个except语句捕获多个异常
- 例3:使用Exception捕获所有异常]
- 例4:判断数字是否合法
- else
- 如果try中的语句没有引发异常,则执行else的代码
- finally
- 无论try语句中的代码是否引发异常,都要执行finally中的代码
- raise
- 主动抛出异常
- 数据库操作
- 使用步骤
- 2、调用connect方法连接数据库,返回一个数据库对象
- con = pymysql.connect(user=None,password=None,host=None,db=None,port=None,charset=None)
- charset,字符集
- 3、创建游标
- cur = con.cursor(),通过数据库连接对象调用cursor()方法创建游标,用于执行SQL语句
- 4、操作数据库
- execute(sql),执行SQL语句,返回该SQL语句影响的行数
- fetchone(),从select语句的查询结果中返回一行记录
- fetchall(),从select语句的查询结果中返回所有记录
脚本宝典总结
以上是脚本宝典为你收集整理的Python基础知识全部内容,希望文章能够帮你解决Python基础知识所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。