【软件技能】Python 基础语法总结


前言

本文是python基础语法和语法练习的一些记录。

Python的基础知识

标识符/命名规范/变量/输入输出

标识符

  • 变量名、函数名、类名的统称

命名规范:

  1. 只能包含字母、数字、下划线,并且不能以数字开头,不能与系统关键字、模块名相同;在这里插入图片描述
  2. 严格区分大小写
  3. 尽量使用有意义的英文单词
  4. 多个单词之间使用下划线连接,如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),将对象转换为列表
    字符串 ----> 列表
    元组 ----> 列表
    集合 ----> 列表
    字典 ----> 列表,列表中只有键

数据结构

数据结构

  • 通用方法
    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]
    在这里插入图片描述切片,通过索引返回对象的子元素片段
    语法:
    在这里插入图片描述
    start,开始位置,如果省略表示从第一个位置开始
    end,表示结束位置,实际返回的是end-1位置上的元素,如果省略表示取到最后一个元素
    step,表示步长(每间隔多少元素取一个),省略表示1在这里插入图片描述
    非序列
    字典
    集合

打印格式化

格式化

  • 第一种方式:占位符
    语法:%[-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
    在这里插入图片描述
  • 位运算符

控制结构

控制结构

  • 分支语句(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矩阵
    在这里插入图片描述
    例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()

python中的常用函数用法

print()函数

题目描述:
在这里插入图片描述
答案:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

  • 字符串的单引号和双引号的区别是什么?——实际上在print函数来看,没什么区别,都可以正常打印出来;

  • print函数中如果带单引号或双引号,则是表示将这个字符串打印出来,而如果print函数中是一个字符串变量的化,那么不需要加双引号,就会将这个字符串变量具体的值打印出来。

  • print函数中的“\t”是指制表符,代表着四个空格,也就是一个tab;它的作用是对齐表格数据的各列,可以在不使用表格的情况下,将数据上下对齐。在这里插入图片描述

eval()函数

输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90-100分为A,80- 89分为B,70-79分为C,60~69分为D,60分以下为E。

要求:
用if语句实现;
输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

在这里插入图片描述
总结

  • 这里用到了eval()函数,其功能如下:

在这里插入图片描述
在这里插入图片描述

eval()函数实际例子:
篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。

算法描述:
获取领先的分数 ,减去3分;
如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);
计算平方后的结果;
如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。
请编写程序实现上述算法的功能,并给出运行结果。
在这里插入图片描述

range()函数

小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?
在这里插入图片描述

  • range函数:range函数详解,上面例子中range(n, -1, -1)含义是从n开始每次以-1为step递减,递减至-1,最后的-1是边界,是不会得到的,如果变为range(n,-1,-2)则表示每次以-2为step递减;
  • //运算符表示向下取整除,它会返回整除结果的整数部分;%执行取模运算;示例如下:
    在这里插入图片描述

致谢:
部分题目转载自以下网站,以示感谢!
https://www.jb51.net/article/227445.htm
版权声明:本文为CSDN博主「鱼排也爱小白菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_41739591/article/details/124227613

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值