• Python编程语言学习笔记


    1 书写格式

    1.1 程序框架格式

    说明:Python 采用严格的<缩进>来表明程序的格式框架。

    1.1 注释

    格式:使用#号、双引号和单引号。
    代码示例:

    '''
    这是一个多行注释
    这三个点可以是三个单引号,也可以是双引号加一个单引号
    '''
    """
    多行注释也可以全是双引号
    """
    import turtle   #这是一个单行注释
    turtle.setup(650,350,200,200)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.2 保留字

    使用下述代码可以输出打印出python的保留字列表。
    代码示例:

    print(keyword.kwlist) # 列出保留字
    
    • 1
    FalseNoneTrueandasassert
    asyncawaitbreakclasscontinuedef
    delelifelseexceptfinallyfor
    fromglobalifimportinis
    lambdanonlocalnotorpassraise
    returntrywhilewithyield

    2 数据

    2.1 整数类型

    进制种类引导符号
    十进制
    二进制0b或0B
    八进制0o或0O
    十六进制0x或0X

    代码示例:

    a = 10
    a = -8
    b = 0x5d
    c = 0b11001100
    d = 0o745621
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2 浮点类型

    代码示例:

    e = 10.2
    e = 50.0
    f = 4.1e-5
    
    • 1
    • 2
    • 3

    注:

    • 浮点数使用必须带有小数部分,小数部分可以是‘0’
    • 浮点数运算,计算机只能提供15位数字的准确性。Python通过标准库 decimal 提供更准确的数字类型Decimal。

    2.3 复数类型

    定义:就是高中数学中 x2 = -1 求解得出的那个复数。复数类型中,实数部分和虚数部分都是浮点类型。
    代码示例:

    g = 12.4+4j
    h = -3.6+5J
    k = g.real # 获取实部
    l = g.imag # 获取虚部
    
    • 1
    • 2
    • 3
    • 4

    2.4 数值运算符

    操作符描述
    x+y求和
    x-y求差
    x*y求积
    x/y求商
    x//yx除以y的整数商
    x%yx除以y的余数,模运算
    -xx的负数
    +xx本身
    x**yx的y次幂,即 xy

    2.5 数值运函数

    函数描述
    abs(x)x的绝对值
    divmod(x,y)以二元组形式输出(x//y,x%y)
    pow(x,y[z])(x**y)%z,[…]表示该参数可以省略
    round(x[ndigits])对x四舍五入,保留 ndigits 位小数 ,round(x) 表示返回四舍五入的整数
    max(x1,x2,…,xn)求 x1,x2,…,xn的最大值,n没有限制
    min(x1,x2,…,xn)求 x1,x2,…,xn的最小值,n没有限制

    2.6 数值类型转换函数

    函数描述
    int(x)将x转换为整数,x可以为浮点数或字符串
    float(x)将x转换为浮点数,x可以为整数或字符串
    complex(re[,im])生成一个复数,实部为re,虚部为im,re可以是整数,浮点数或字符串,im 可以是整数或浮点数但不能为字符串

    2.7 math

    定义:math 库:包含了 π,e,∞;还包含向上/向下取整、返回x的阶乘、返回小数或整数部分、返回最大公约数、比较相似性等函数和求对数。三角函数运算、高斯误差函数,余补高斯误差函数,伽马函数等。

    2.8 字符串

    2.8.1 字符串的表示

    代码示例:

    a = '单引号表示'
    b = "双引号表示"
    c = '''三引号表示'''
    
    • 1
    • 2
    • 3

    字符串使用的是Unicode编码方式,因此也可以使用Unicode码值输出一些特殊字符。

    2.8.2 字符串的区间访问

    代码示例:

    a = 'Python语言程序设计'
    
    • 1
    表示输出描述
    print(a[0],a[3],a[8])P h 程
    print(a[3:8])hon语言
    print(a[::-1])计设序程言语nohtyP反向输出
    print(a[0:10:2])Pto语程2是步长
    print(a[5:])n语言程序设计
    print(a[:8])Python语言

    2.8.3 字符串操作符

    操作符描述
    x+y连接两个字符串
    x*n复制n次字符串x
    x in s如果x是s的子串,返货True,否则返回False
    str[i]索引,返回第 i 个字符
    str[N:M]切片,返回第N到M个字符串,其中不包含M
    x+y
    x+y

    2.8.4 字符串操作函数

    函数描述
    len(x)返回字符串的长度
    str(x)返回任意类型所对应的字符串形式
    chr(x)返回Unicode编码x对应的单字符
    ord(x)返回单字符对应的Unicode编码
    hex(x)返回整数x对应十六进制的小写形式字符串
    oct(x)返回整数x对应八进制的小写形式字符串
    str.lower()返回字符串的副本,全部小写
    str.upper()返回字符串的副本,全部大写
    str.islower()当字符串都是小写时,返回True,否则返回False
    str.isprintable()当字符串都可打印的,返回True,否则返回False
    str.isnumeric()当字符串都是数字时,返回True,否则返回False

    2.9 字符串类型的格式化 farmat() 函数

    格式: <模板字符串>.farmat(<逗号分隔的参数>)

    2.9.1 连接不同类型

    代码示例:

    print("{}{}{}{}".format("红豆生南国,","春来发几枝。","愿君多采撷,","此物最相思。"))
    
    • 1

    运行结果:
    输出:红豆生南国,春来发几枝。愿君多采撷,此物最相思。

    2.9.2 对齐/填充

    代码示例:

    x = 'Python'
    print("{0:30}".format(x))  #默认左对齐
    print("{0:>30}".format(x)) #右对齐
    print("{0:^30}".format(x)) #居中
    print("{0:-^30}".format(x)) #居中并填充字符-
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    Python
    Python
    Python
    ------------Python------------

    2.9.3 千位分隔符

    代码示例:

    a = 123456789
    print("{0:,}".format(a)) 
    
    • 1
    • 2

    运行结果:
    123,456,789

    2.9.3 小数精度截取

    代码示例:

    x = 12.36547
    print("{0:.2f}".format(x)) # 保留两位有效数字,且四舍五入
    
    • 1
    • 2

    运行结果:12.37

    2.9.4 输出不同进制整数类型

    代码示例:

    x = 200
    print("{0:b}".format(x)) # 二进制
    print("{0:c}".format(x)) # Unicode
    print("{0:d}".format(x)) # 十进制
    print("{0:o}".format(x)) # 八进制
    print("{0:x}".format(x)) # 十六进制
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    运行结果:
    11001000
    È
    200
    310
    c8

    注:由于该函数过于强大,此处不能够一一列举各种用法。

    3 程序的控制结构

    3.1 关系操作符

    和C语言的几个操作符一样~

    操作符含义
    <小于
    <=小于等于
    >大于
    >=大于等于
    ==等于
    !=不等于

    3.2 逻辑操作符

    逻辑符含义
    X and Y
    X or Y
    not X

    3.3 if 语句

    3.3.1 单分支语句

    格式:条件不用括号包含,最后注意有个冒号;

    代码示例:

    x = 200
    if x < 100 :
        print("x小于100")
    
    • 1
    • 2
    • 3

    3.3.2 二分支语句

    代码示例:

    x = 1000
    if x <= 100 :
        print("小于100")
    else:
        print("x大于100")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.3.3 多分支语句

    代码示例:

    x = 63
    if x < 60 :
        print("不及格")
    elif 60 <= x <70:
        print("及格")
    elif 70 <= x <80:
        print("中等")
    elif 80 <= x <90:
        print("良好")
    elif x >=90:
        print("优秀")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    注:上文有一个很神奇地方,它的条件语句可以像数学公式一样写70 <= x < 80

    3.4 循环语句

    3.4.1 for 语句

    格式:
    for <循环变量> in <遍历结构>:
    ····<语句块>

    注:遍历结构可以是:字符串、文件、组合数据类型或range()函数等。

    代码示例:

    for i in range(10) :
        print("当前运行次数:"+ str(i) )
    
    • 1
    • 2

    循环和else结合的用法:当循环正常执行完成后才执行else语句块中的内容

    代码示例:

    for i in range(10) :
        print("当前运行次数:"+ str(i) )
    else:
        print("循环正常结束")
    
    • 1
    • 2
    • 3
    • 4

    3.4.2 while 语句

    格式:
    while<条件> :
    ····<语句块>

    代码示例:

    while x < 5:
        print("当前运行次数:"+ str(x) )
        x = x+1
    else:
        print("循环正常结束")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.4.3 break 和 continue

    break 用法和C语言中一致,用来跳出当前最内层循环结构,继续下面的语句代码。
    continue 用法和C语言中一致,用来提前结束本次循环,跳过循环体中尚未结束的代码,然后开始下次循环。

    4 函数

    格式:
    def <函数名>(<参数列表>):
    ····<函数体>
    ····return <返回值列表>

    4.1 简单函数

    代码示例:

    #定义函数
    def happy() :
        print("自定义子函数输出")
    happy() # 调用函数
    
    • 1
    • 2
    • 3
    • 4

    4.2 含参函数

    代码示例:

    #定义函数
    def happy(name) :
        print("祝{}生日快乐!".format(name))
    happy("LiMing") # 调用函数
    
    • 1
    • 2
    • 3
    • 4

    4.2.1 可选参数

    代码示例:

    #定义函数
    def addnum(a,b=5) :
        c = a+b
        return  c
    print(addnum(1)) # 运行结果就是6
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.2.1 可变数量参数

    代码示例:

    #定义函数
    def vfun(a,*b) :
        print(type(b))
        for n in b:
            a += n
        return a
    print(vfun(1,2,3,5,7)) 
    '''
    运行结果是:
    
    18
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4.2.3 参数的无序写法

    代码示例:

    #定义函数
    def addnum(a,b) :
        c = a+b
        return  c
    print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.3 带返回值函数

    代码示例:

    #定义函数
    def addnum(a,b) :
        c = a+b
        return  c
    print(addnum(1,2))
    print(addnum(b=1,a=8)) # 这种写法可以不在乎参数顺序
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    函数可以返回0个,1个或多个返回值。当返回多个返回值的时候,多个值以元组类型保存输出。
    代码示例:

    #定义函数
    def vfun(a,b) :
        return a,b+a
    print(vfun(1,5))
    '''
    运行结果是:
    (1, 6)
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.4 全局变量和局部变量

    • 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名变量,其值不变。
    • 简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变。
    • 对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值。
    • 如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变。

    5 组合数据类型

    在这里插入图片描述

    5.1 序列

    定义:序列类型是一唯元素向量,元素之间存在先后关系,通过序号访问。

    5.1.1 字符串(str)

    详见 2.8 节

    5.1.2 元组(tuple)

    定义:一旦创建不能被修改,用于表达固定数据项、函数返回值、多变量同步赋值、循环遍历等;
    表示方式:元组使用逗号和圆括号表示。
    代码示例:

    ('cat','dog',123,0x5f)
    
    • 1

    5.1.3 列表(list)

    定义:
      列表是包含0个或多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可自由对列表中的数据项进行增加、删除或替换长度无限制,元素类型多样
      列表可以通过[ ]表示,也可以通过list()函数将元组或字符串转化为列表。
    代码示例:

    Is = [425,"BIT",(10,"cs"),456]
    is2 = list("Python程序设计基础")
    print(Is)
    print(is2)
    
    • 1
    • 2
    • 3
    • 4

    运行结果:
    [425, ‘BIT’, (10, ‘cs’), 456]
    [‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘程’, ‘序’, ‘设’, ‘计’, ‘基’, ‘础’]

    5.2 集合

    5.2.1 集合(set)

    定义:集合与数学概念中的集合类似。包含0个或多个数据项的无序组合。集合中的元素不可重复,元素类型只能是固定的数据类型,例如整数、浮点数、字符串、元组等。列表、字典和集合烈性本身都是可变数据类型,不能作为集合的元素。
    代码示例:

    s = {425,"BIT",(10,"cs"),456}
    print(s)
    
    • 1
    • 2

    5.3 映射类型

    定义:
      映射类型是“键-值”数据项的组合,每个元素是一个键值对。即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系,源于属性和值的映射关系。
      键(key)表示一个属性,可以理解为一个类别或项目,值(value)是属性的内容,键值对刻画了一个属性和它的值。
      键值对将映射关系结构化,用于存储和表达

    5.3.1 字典

    格式:
    {<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
    键值对的访问使用中括号<值> = <字典变量>[<键>]
    代码示例:

    dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
    print(dcountry["中国"])
    
    • 1
    • 2

    代码示例:元素增删

    dcountry={"中国":"China","俄罗斯":"Russia","法国":"France"}
    dcountry["英国"]="England" #新增键值对
    print(dcountry)
    del dcountry["法国"]       #删除键值对
    print(dcountry)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:
    {‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘法国’: ‘France’, ‘英国’: ‘England’}
    {‘中国’: ‘China’, ‘俄罗斯’: ‘Russia’, ‘英国’: ‘England’}

    6 文件和数据格式化

    6.1 文件操作

    6.1.1 文件打开关闭

    格式:
    文件打开:<变量名> = open(<文件名>,<打开模式>)
    文件关闭:<变量名>.close()

    打开模式含义
    ‘r’只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
    ‘w’覆盖写模式,文件不存在则创建,存在则完全覆盖
    ‘x’创建写模式,文件不存在则创建,存在则返回异常FileExistsError
    ‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容
    ‘b’二进制文件模式
    ‘t’文本文件模式,默认值
    ‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能

    代码示例:

    x = open('12.txt','r')
    x.close()
    
    • 1
    • 2

    6.1.2 文件读写

    三种文件读取函数

    函数含义
    line = fo.read() 读出整个文件的内容
    line = fo.readline()读出一行内容
    line = fo.readlines()读所有行,每行以元素形成一个列表

    代码示例:

    fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','rt')
    line = fo.read()
    print(line)
    fo.close()
    
    • 1
    • 2
    • 3
    • 4

    注:文本的编码方式需要是ANSI,中文才可以在运行窗口正确的显示出来!

    三种文件写入函数

    函数含义
    <文件>.write(s)向文件写入字符串
    <文件>.writelines(list)将一个元素全为字符串的列表写入
    <文件>.seek(offset)改变文件操作指针位置:0-文件开头;1-当前位置;2-文件结尾

    代码示例:

    fo = open('C:\\Users\ZHAOBO\Desktop\短歌行.txt','w+')
    ls = ["富强 ","民主 ","文明 ","和谐"]
    fo.writelines(ls)
    fo.close()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7 程序打包

    编写好的Python程序打包成exe可执行文件,在没有Python安装环境下也可以运行程序。

    7.1 pyinstaller 库安装

    pyinstaller 是一个十分有用的第三方库,它能够在Windows、Linux、Mac OS X 等操作系统下将Python源文件打包。
    使用pip3 命令安装pyinstaller
    在这里插入图片描述

    7.2 程序打包

    假设Python源文件的目录为:C:\Users\ZHAOBO\Desktop\货币转换.py
    执行命令:

    pyinstaller C:\Users\ZHAOBO\Desktop\货币转换.py
    
    • 1

    命令执行完成后,会在电脑USER文件目录下生成如下图所示几个文件/文件夹。
    在这里插入图片描述
    其中,build 文件夹是临时文件夹,可以安全删除。dist文件夹中就有打包生成的可执行程序和一些相关文件。该文件夹需要统一移动才可以在不同系统或者设备上运行可执行文件。

    参考资料:

    [1] 嵩天,礼欣,黄天羽.Python语言程序设计基础.第2版.北京:高等教育出版社,2017

  • 相关阅读:
    ChatGPT 超有用提示词 练习雅思口语
    cesium 雷达扫描 (扫描线)
    求组合数算法的实现
    【Mybatis源码分析】插件机制和Pagehelper插件源码分析
    设计模式之抽象工厂模式
    电脑硬盘分区软件哪个好用,无损分区软件哪个好
    C++入门(上)
    Check SSH attacks on Linux
    计算机视觉学习记录(七):图像分类
    MyBatisPlus-映射匹配兼容性
  • 原文地址:https://blog.csdn.net/qq_37424623/article/details/132888229