所有分类
  • 所有分类
  • 其它

Python基础知识

  • 标识符,变量名、函数名、类名的统称
    • 命名规范
      • 只能包含字母、数字、下划线,并且不能以数字开头
      • 不能与系统关键字、模块名相同

      • 严格区分大小写
      • 尽量使用有意义的英文单词
      • 多个单词之间使用下划线连接
        • student_age = 20
  • 变量
    • 声明:取个名字,给一个值,通常在运算符两边夹空格,提高代码可读性
      • age = 20
  • 输入输出
    • 输入:input([‘message’])
      • 接收外部输入,无论外部输入哪种数据类型的值,都统一作为字符串处理
      • 代码遇到input函数会暂停,直到敲入回车键后代码继续运行
      • message为可选的参数,一般用于输入的提示
      • 在控制台输入时,需要夹引号,不然会报语法错误
    • 输出:print(value1,value2,……,sep=’ ‘,end=’n’,file=sys.stdout)
      • value1,表示要输出的内容,可以同时输出多个对象,中间使用逗号隔开
      • sep,seperate,在结果中多个对象值的分隔符,默认为空格
      • end,表示输出完成后的结束符,默认为换行符(n)
      • file,将内容输出到指定文件
  • 数据类型
    • type(obj),返回对象的类型
    • 布尔型:bool
      • 只有两个值:True、False,声明后不能被改变
      • bool(obj),根据对象的值返回布尔值
        • 0、None、空字符、空列表、空字典,是返回False
    • 整型:int
      • 声明后不能被改变
    • 浮点型:float
      • 声明后不能被改变
    • 字符串:str,包含在引号之间的内容(可以是单引号、双引号、三引号)
      • 声明后不能被改变
      • 单引号、双引号不能跨行写,非得跨行的话,就输入一个转义字符
      • tips:如果三引号单独站一排,表示注释;如果三引号在等号右边,表示字符串
    • 元组:tuple
      • 声明后不能被改变
      • 包含在()之间的内容,每一个元素之间使用逗号分隔,元组中的元素可以是任意数据类型
        • 声明:tup = (1,2,3,4)
    • 列表:
      • 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
      • int(obj),将对象转换为整型
        • 布尔型–>整型
          • True —–> 1
          • False —- > 0
        • 浮点型—->整型
          • 做截取(取整),会损失精度
        • 字符串 ——> 整型
          • 字符串中不能包含任何非数字字符
      • float(obj),将对象转换为浮点型
        • 布尔型—–>浮点型
          • True —– > 1.0
          • False —–> 0.0
        • 整型 —— > 浮点型
        • 字符串 —-> 浮点型
          • 字符串中不能包含小数点以外的任何非数字字符
      • str(obj),将对象转换为字符串
      • 例:
        • 字符串、整型、浮点型、布尔型相互转换

      • tuple(obj),将对象转换为元组
        • 字符串—-> 元组
        • 列表—-> 元组
        • 字典—-> 元组
          • 元组中只有键
        • 集合不能转元组
      • list(obj),将对象转换为列表
        • 字符串 —-> 列表
        • 元组 —-> 列表
        • 集合 —-> 列表
        • 字典 —-> 列表
          • 列表中只有键
  • 格式化
    •  第一种方式:占位符
      • 语法:%[-w.p]type
        • -,表示左对齐,默认是右对齐
        • w,宽度
        • p,表示精度
        • type,表示数据类型(d-整数,f-浮点数,s-字符串)
      • 例1:
        • %5.2f,表示一个浮点数,宽度为5,精确到小数点后第2位
        • %-5s,表示一个字符串,宽度为5,左对齐
      • 例2:
        • 输入一个用户的姓名,手机号,按格式输出用户信息:姓名–xxxx;手机号—xxxxxxxx
      • 例3:
        • 输入学生的姓名、成绩,按以下格式输出每个学生的成绩信息、平均成绩(保留2位小数)
    • 第二种方式:format
      • 语法:'{[:w.pf]}’.format(var)
        • w,宽度
        • pf,表示浮点数的精度
        • 无-,默认左对齐
      • 例:
    • 第三种方式:f-string
      • 语法:f'{var[:w.pf]}’
        • pf,表示浮点数的精度
        • w,宽度
        • f'{name_1:7}t{score_1}n{name_2:7}t{score_2}n平均成绩t{avg_score:.2f}'
      • 例:
  • 运算符
    • 算术运算符
      • +,加法,返回两个对象的和,3+4 = 7
        • 如果运算的两个对象为字符串,则做字符串的拼接,如’abc’+’efg’ = ‘abcdefg’
      • -,减法,返回两个对象的差,3-4 = -1
      • *,乘法,返回两个对象乘积,3*4 = 12
        • 如果运算的对象为1个字符串,1个数字,则复制该字符串n次,如’a’*5 = ‘aaaaa’
      • /,除法,返回两个对象的商,5/2 = 2.5
      • //,整除,返回小于等于两个对象的商的最大整数
        • 5//2 = 2
        • 5//-2 = -3
      • **,幂运算
        • 3**2 = 9
        • 3**-2 = 1/9 = 0.111111
      • %,求余,返回两个对象相除的余数
        • 公式:r = a%b = a-b*(a//b)
      • 例:

    • 赋值运算符
      • =,普通赋值运算符,a = 1
      • +=,如a += b相当于a = a+b
      • -=,如a -= b相当于a = a-b
      • *=,如a *= b相当于a = a*b
      • /=,如a /= b相当于a = a/b
      • //=,如a //= b相当于a = a//b
      • **=,如a **= b相当于a = a**b
      • %=,如a %= b相当于a = a%b
      • 例:

    • 比较运算符
      • 运算结果为布尔值:True、False
      • ==,比较两个对象的值是否相等
      • >
      • >=
      • !=
    • 逻辑运算符
      • 运算对象为布尔表达式,运算结果为布尔值
      • and,参与运算的对象结果都为True,则整体表达式结果为True,否则为False
      • or,参与运算的对象只要有任意一个结果True,则整体表达式结果为True,如果都为False则整体为False
      • not,参与运算的对象结果为True,则整体结果为False;参与运算的对象结果为False,则整体结果为True;
    • 成员运算符
      • 检查在指定对象中是否包含指定的成员,包含则返回True,否则返回False
      • in
      • not in
      • 例:
        • ‘a’ in ‘abc’ ,返回True
        • ‘d’ not in ‘abc’ ,返回True
    • 身份运算符
      • 检查两个对象是否为同一个引用(是否指向同一个内存地址),如果是返回True,否则返回False
      • id(obj),返回引用的地址
      • is
      • not is

    • 三元运算符
      • 语法:value1 if 布尔表达式 else value2,如果布尔表达式结果为True,返回value1;否则返回value2

    • 位运算符
  • 数据结构
    • 通用方法
      • len(obj),返回对象(字符串、列表、元组、字典、集合)中的元素个数
      • sum(obj),返回对象(列表、元组、字典、集合)中所有元素的和
      • max(obj),返回对象(列表、元组、字典、集合、字符串)中的最大元素
      • zip(obj1,obj2,…),将多个对象打包
      • del obj,删除指定对象
    • 字符串方法
      • 语法:字符串.方法名([参数])
      • count(sub[, start[, end]),返回字符串中指定位置范围内指定子字符串的数量
        • sub,表示待查找的子字符串
        • start,表示开始位置索引,索引是从0开始的
        • end,表示结束位置的索引

      • index(sub[, start[, end]]),返回子字符串在字符串中的索引
        • 如果有多个相同的子字符串则返回第一个的索引
        • 如果不存在指定的子字符串,则报错
      • upper(),将字符串转换为大写
      • lower(),将字符串转换为小写
      • title(),将每个单词的首字母转换为大写
      • startswith(sub),检查是否以指定的子字符串开始,如果是返回True,否则返回False
      • endswith(sub),检查是否以指定的子字符串结尾,如果是返回True,否则返回False
      • replace(old,new[,count]),替换,可以指定替换次数(默认全部替换)
      • strip(),去除字符串前后的空字符
      • 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
      • clear(),清空列表
      • remove(obj),删除列表中的指定元素
        • 如果指定元素不存在则报错
        • 如果存在多个相同的元素,则删除索引最小的
      • pop([index]),根据索引删除列表元素(如果不指定索引则删除最后一个元素)
      • apend([obj]),在列表的末尾添加一个元素(可以是任意数据类型)
      • insert(index,obj),在列表的指定索引处插入一个元素
      • extend(iterable),将一个可迭代对象的元素拆开,再分别添加到列表
      • sort([reverse=True]),排序,默认为升序
      • reverse(),将列表反向
      • copy(),复制列表(在内存中地址不同)
    • 字典方法
      • 语法:字典.方法名([参数])
      • pop(key),删除指定的键
      • popitem(),随机删除键值对
      • get(key),返回指定键的值,如果键不存在返回None
      • values(),以dict_values格式返回字典中的所有值
      • keys(),以dict_keys格式返回字典中的所有键
      • update(obj),将指定对象更新到字典中

      • setdefault(key,default_value),返回指定键key的值,如果这个键不存在则新增键值(key:default_value)对并且返回default_value
      • fromkeys(iterable),从可迭代对象快速创建一个字典
    • 可迭代对象
      • 内部包含__iter__()的对象(字符串、元组、列表、字典、集合),数字无
      • 支持循环遍历(for)
      • 序列
        • 数据类型:字符串、元组、列表
        • 操作类型:
          • 索引,可以通过索引访问序列中的元素(索引范围:[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循环。输出一个5×5矩阵

        • 例5:输出九九乘法表

      • 循环控制语句
        • continue,结束当前循环,开始下一次新的循环
        • break,终止循环
      • 循环与else
        • 如果循环没有遇到break语句而终止,则执行else语句中代码;否则不执行

  • 函数
    • 声明:

      • 函数名:必须符合标识符命名规范
      • 参数:也叫做形参,可选,可以有多个。在函数内部可以直接使用形参
      • 返回值:可选的,可以同时返回多个值。如果没有return语句,则默认返回None
    • 调用:函数名([参数1,……])
      • 参数:也叫做实参,根据形参传入实参
    • 例1:
      • 不带参数与返回值

    • 例2:
      • 带一个参数与一个返回值

    • 例3:
      • 多个参数与多个返回值

    • 参数
      • 形参
        • 必须参数(位置参数)
          • 要求在调用时必须严格按照形参的数量、顺序、数据类型传入实参

        • 默认参数
          • 在声明函数时通过键值对(key=value)的形式指定形参的值,指定了以后在调用函数时,可以不为该参数传值(此时使用默认值),如果传入则使用实际传入的值。
          • 默认参数必须放在位置参数后面

        • 可变参数
          • *args,接收若干的位置参数,将传入的值封包一个元组args中

          • **kwargs,接收若干的关键字参数,将传入的值封包一个字典kwargs中
      • 实参
        • 位置参数,根据形参的数量、顺序、数据类型传入实参
        • 关键字参数(指定参数)
          • 在调用函数时,通过键值对(key=value)形式指定将实参传给某个形参,此时可以不用再关心形参的顺序
    • 变量作用域
      • 局部变量
        • 在函数内部声明的变量,只能在函数内部使用
      • 全局变量
        • 在函数外部声明的变量,可以在函数的内部使用,也可以在函数外部使用
      • global
        • 在函数内部如果需要修改全局变量(不可变数据类型),需要使用global声明变量
        • 如果全局变量为可变数据类型,在函数内部可以任意操作该全局变量,不需要使用global声明,
    • 函数递归
      • 在函数内部return返回函数本身
      • 注意
        • 递归需要向已知的方向进行
        • 递归层数一般不超过1000层
    • 匿名函数
      • 语法:lambda [参数1,…]:返回值
        • 必须,并且只能有一个返回值
        • 不会重复调用的地方,用的比较少
      • 例1:

      • 例2:排序,通过匿名函数指定用于排序的key

  • 模块与包
    • 自定义模块,py文件即为一个模块
    • 包,存在一个__init__.py文件的目录,在包中可以有若干的模块
    • 导入
      • import 模块名/包名.模块名
        • 导入一个模块,使用时通过`模块名.成员名`引用模块下的指定内容

      • from 模块名/包名 import 成员1,成员2,……
        • 导入模块下的指定成员

      • from 模块名/包名 import *
        • 导入模块下的所有成员
      • 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),从指定序列中随机获取指定长度的片断
      • time
        • time()
        • sleep(t)
        • strftime(fmt)
          • %Y – 4位年;
          • %m – 2位月;
          • %d – 2位天
          • %X – 小时:分钟:秒
          • %H – 小时;
          • %M – 分钟;
          • %S – 秒
      • sys
        • path,以列表返回python环境变量

      • os
        • os.system(命令),执行系统命令
        • os.getcwd(),获取当前工作目录
        • os.mkdir(path),创建目录
        • 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.abspath(__file__),返回当前文件的绝对路径
        • os.path.dirname(path),返回指定对象所在的目录
        • os.path.join(path,obj),将两个对象拼接成一个路径
        • 例1:输入1个目录路径,统计出该目录下有多少个文件和目录

      • hashlib
        • md5(s:bytes),对明文进行md5加密,返回md5对象,加密后可以通过调用hexdigest()方法获取密文

    • 安装第三方模块
      • pycharm安装
      • pip命令安装(推荐)
        • pip install pip -U,更新pip模块
        • pip -V,返回版本
        • pip list,列出已经安装的所有模块
        • 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(读)
        • pip install 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名称获取指定表中的数据
              • nrows,返回sheet中的行数
                • 例6:rows = sheet.nrows
              • row_values(row),获取指定行中的数据,参数row为行号
                • 例7:values = sheet.row_values(1),获取第2行的数据,以列表返回
              • ncols,返回sheet中的列数
              • col_values(col),获取指定列中的数据,参数col为列号
            • 单元格
              • cell_value(row,col),返回指定单元格的数据
      • 模块:xlwt
        • xlwt模块只能写xls文件,不能写xlsx文件
        • 安装模块:pip install 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:基本使用

        • 例2:设置样式

        • 例3:设置字体

        • 例4:设置单元格宽度

        • 例5:设置边框

        • 例6:设置背景色

    • 安装第三方模块
      • pycharm安装
      • pip命令安装(推荐)
        • pip install pip -U,更新pip模块
        • pip -V,返回版本
        • pip list,列出已经安装的所有模块
        • 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,表示打开文件的方式,如果省略则表示只读模式
            • r,只读,如果指定的文件不存在,系统报错
            • w,覆盖写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
            • a,追加写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
            • b,表示二进制,一般用于对图片类的文件操作
          • encoding,指定编码,如果打开文件提示编码错误,再加上encoding参数即可
          • 例1:f = open(file=’f2.py’,mode=’r’,encoding=’utf8′),以只读方式打开文件
        • 常用方法
          • closed,检查文件是否为关闭状态,如果是返回True,否则返回False
          • close(),关闭文件
          • encoding,返回打开文件的编码
          • 例2:

      • 读文件
        • read(),将文件的所有内容读取出来,保存在字符串中
        • readline(),读取文件中的一行,保存在字符串中
        • readlines(),将文件的所有内容读取出来,保存在列表中,文件中的每一行为列表中的一个元素
      • 写文件
        • write(s),将一个字符串写入文件
        • writelines(iter),将一个可迭代对象的所有元素写入文件
      • 例:
        • 有一个文件保存学生的成绩信息,计算出每个学生的总成绩

    • csv文件
      • 模块:csv
      • 使用步骤:
        • 打开文件(open)
        • 读取内容(csv.reader())
      • 例:

    • with语句
      • 管理上下文,可以实现打开文件后自动关闭
      • 语法:with open(file) as f:

    • 例:
      • 1、一个目录users,users中使用文件保存用户信息(每个用户一个文件,文件名为账号),文件中包含三行内容,分别是密码、姓名、账户余额,格式如下。

      • 2、实现系统的登录、注册功能
  • 异常
    • 语法:

    • try
      • 将有可能引发异常的语句放在try中
    • except
      • 捕获异常,并且针对该异常进行相应的处理,可以同时存在多个except语句
      • except 异常,捕获1个指定异常
      • except (异常1,异常2,…),捕获元组中的异常
      • except Exception,捕获所有异常
      • 例1:多个except语句捕获不同的异常

      • 例2:一个except语句捕获多个异常

      • 例3:使用Exception捕获所有异常]

      • 例4:判断数字是否合法

    • else
      • 如果try中的语句没有引发异常,则执行else的代码

    • finally
      • 无论try语句中的代码是否引发异常,都要执行finally中的代码

    • raise
      • 主动抛出异常

  • 数据库操作
    • 模块:pymysql
      • pip install pymysql
    • 使用步骤
      • 1、导入pymysql模块
      • 2、调用connect方法连接数据库,返回一个数据库对象
        • con = pymysql.connect(user=None,password=None,host=None,db=None,port=None,charset=None)
          • user,数据库用户名
          • password,数据库用户密码
          • host,数据库服务器地址
          • db,要连接的database
          • port,端口号
          • charset,字符集

        • 常用方法
          • cursor(),创建游标
          • commit(),提交事务
          • rollback(),回滚事务
          • close(),关闭数据库连接
      • 3、创建游标
        • cur = con.cursor(),通过数据库连接对象调用cursor()方法创建游标,用于执行SQL语句
      • 4、操作数据库
        • 通过游标调用相应的方法执行SQL语句
        • execute(sql),执行SQL语句,返回该SQL语句影响的行数
        • fetchone(),从select语句的查询结果中返回一行记录
        • fetchall(),从select语句的查询结果中返回所有记录
        • close(),关闭游标
      • 5、关闭游标、关闭数据库连接
        • cur.close()
        • con.close()

 

社交账号快速登录