• Python基础(一) | Python的基本语法


    ⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。

    🔥本文已收录于Python基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。
    🔥文章笔记和代码已归档至【Github仓库】,需要的朋友们自取。或者关注公众号【AIShareLab】,回复 python基础 也可获取。

    image-20220829104924361

    Part1 数据类型

    1.1 基本类型:数字、字符串、布尔

    1.1.1 数字类型

    • int 整型   整数
    2
    
    • 1
    • float 浮点型   带小数的数
    2.0
    
    • 1
    • complex 复数   a+bj
    3+4j
    
    • 1

    1.1.2 字符串类型

    • str 字符串   视作文本
    • 组成: 由数字、字母、空格、其他字符等组合而成
    • 表达: 用" " 或’ ’
    "timerring 2 @#$^&)"
    
    • 1

    1.1.3 布尔类型

    • bool 布尔类型
    • 主要用于逻辑运算
    y = 2 < 1
    y
    
    • 1
    • 2

    Output:

    False
    
    • 1

    上述类型均可定义单个数据,如果有一组数据,该如何表示?

    1.2 组合类型:列表、元组、字典、集合

    1.2.1 列表

    • list 列表    序列类型:  数据有位置顺序
    • 表示方式:  [data1,data2…]
    a = [1, 2, 3, 4, 5]
    a[4]
    
    • 1
    • 2

    Output:

    5
    
    • 1

    1.2.2 元组

    • tuple 元组    序列类型
    • 表示方式: (data1,data2…)
    • 元素不支持修改——“不可变的列表”
    b = (1, 2, 3, 4, 5)
    b[0]
    
    • 1
    • 2

    Output:

    1
    
    • 1

    1.2.3 字典

    • dict 字典  映射类型: 通过“键”-“值”的映射实现数据存储和查找
    • 表示方式: {key1:value1 , key2:value2 , …}
    • 其内部是无序的。
    student = {201901: "小明", 201902: "小红", 201903: "小强"}
    student[201902]
    
    • 1
    • 2

    Output:

    '小红'
    
    • 1

    1.2.4 集合

    • set 集合  一系列互不相等元素的集合,无序的
    • 表示方式: {data1,data2…}
    s = {"小明", "小红", "小强", "小明"}
    s
    
    • 1
    • 2

    Output:

    {'小强', '小明', '小红'}
    
    • 1

    在程序中,如何来引用这些数据?

    • 非常通俗的处理办法:赋值给一个变量

    Part2 变量

    2.1 变量的概念

    • “量”   实实在在的对象:如数据、抽象
    • “变”   可变性:增、删、查、改等
    • 变量定义二要素:  变量名、赋值
    x = 1
    
    • 1

    2.2 变量的命名

    image-20220829174853368

    2.2.1 哪些可以用来做变量名?

    • 大写字母、小写字母、数字、下划线、汉字及其组合。
    • 严格区分大小写
    Python_is_第1= True
    python_is_第1= False
    
    • 1
    • 2

    2.2.2 哪些情况不被允许?

    • 首字符不允许为数字
    1_fruit = "apple"
    
    • 1

    Output:

      File "", line 1
        1_fruit = "apple"
         ^
    SyntaxError: invalid token
    
    • 1
    • 2
    • 3
    • 4
    • 变量名中间不能有空格
    my fruit = "apple"
    
    • 1

    Output:

      File "", line 1
        my fruit = "apple"
               ^
    SyntaxError: invalid syntax
    
    • 1
    • 2
    • 3
    • 4
    • 不能与33个Pyhton保留字相同
      image-20220829175006026
    None = True
    
    • 1

    Output:

      File "C:\Users\24163\AppData\Local\Temp/ipykernel_14004/670613282.py", line 1
        None = True
        ^
    SyntaxError: cannot assign to None
    
    • 1
    • 2
    • 3
    • 4

    2.2.3 变量名定义技巧

    • 变量名尽可能有实际意义,表征数据的某种特性
    a = [17, 18, 19]
    age_of_students = [17, 18, 19]
    
    • 1
    • 2
    • 下划线(推荐:变量和函数名)
      变量名由多个单词组成:用_连接多个单词
    age_of_students = [17, 18, 19]
    
    • 1
    • 驼峰体(推荐:类名) 变量名由多个单词组成:单词首字母大写
    AgeOfStudents = [17, 18, 19]
    
    • 1
    • 尽量避免用中文和拼音做变量名

    • 特殊的变量:常量(不变的量,如 π \pi π、e)   变量名所有字母均为大写

    MAX_ITERATION = 1000
    
    • 1

    2.3 变量的赋值

    2.3.1 一般赋值

    • 通过等号自右向左进行赋值
    x = 1+2
    x
    
    • 1
    • 2

    Output:

    3
    
    • 1

    2.3.2 增量赋值

    x = 10
    x += 10
    x
    
    • 1
    • 2
    • 3

    Output:

    20
    
    • 1

    2.3.3 打包赋值

    x, y = 1, 2 # 通过","隔开
    print(x, y)
    x, y = y, x
    print(x, y)
    
    • 1
    • 2
    • 3
    • 4

    Output:

    1 2
    2 1
    
    • 1
    • 2

    Part3 控制流程

    3.1 顺序流程

    • 自上向下依次执行

    【例子】实现1到5的整数求和

    # res = 1+2+3+4+5 
    res = 0    # 赋初值
    res += 1
    res += 2
    res += 3
    res += 4
    res += 5
    res     # 显示结果
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Output:

    15
    
    • 1

    3.2 循环流程——遍历循环(for)

    主要形式:

    • for 元素 in 可迭代对象**:**

      执行语句

    注意有":"

    执行过程:

    • 从可迭代对象中,依次取出每一个元素,并进行相应的操作

    【例子】实现1到5的整数求和

    res = 0
    for i in [1,2,3,4,5]:    # 每次迭代,取出一个i
        res += i               # 对每次迭代取出的i 进行相应操作   
    res                      # 遍历结束后,执行后续语句
    
    • 1
    • 2
    • 3
    • 4

    Output:

    15
    
    • 1

    3.3 循环流程——无限循环(while)

    主要形式:

    • while 判断条件:
    •   条件为真,执行语句
    • 条件为假,while 循环结束

    【例子】实现1到5的整数求和

    i = 1
    res = 0
    while i <= 5:   # 若i不大于5,则循环继续
        res += i
        i += 1
    res           # 若循环条件不成立,循环停止,执行后续语句
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Output:

    15
    
    • 1

    3.4 分支流程(if)

    最简单的形式:

    • if 判断条件:
    •   条件为真,执行语句
    • else:
    •   条件为假,执行语句

    Part4 输入输出

    4.1 数据的输入

    1. 外部文件导入

    • 从本地硬盘、网络端读入等
    • 该部分内容放在 第八章《文件、异常和模块》进行讲解

    2. 程序中定义

    age = 18
    name = "Tom"
    
    • 1
    • 2

    3. 动态交互输入 input

    • 在程序运行的过程中进行输入
    x = input("请输入一个数字:")
    x
    
    • 1
    • 2
    请输入一个数字:58
    
    • 1

    Output:

    '58'
    
    • 1
    y = input("请输入一个数字:")
    y
    
    • 1
    • 2
    请输入一个数字:2.3
    
    • 1

    Output:

    '2.3'
    
    • 1
    x + y 
    
    • 1

    Output:

    '582.3'
    
    • 1
    type(x)
    
    • 1

    Output:

    str
    
    • 1

    可以看到,这里是字符串的拼接,input后类型也是str,因此输出的形式是’582.3’。为了转换为数字,可以采用以下方法:

    4.1.1 eval() 去掉引号

    Input:

    x = eval(input("请输入一个数字:"))
    x
    
    • 1
    • 2
    请输入一个数字:58
    
    • 1

    Output:

    58
    
    • 1

    Input:

    y = eval(input("请输入一个数字:"))
    y
    
    • 1
    • 2
    请输入一个数字:2.3
    
    • 1

    Output:

    2.3
    
    • 1

    Input:

    x + y
    
    • 1

    Output:

    60.3
    
    • 1

    4.2 数据的输出

    4.2.1 存储到本地硬盘或网络端

    • 该部分后面单独讲解

    4.2.2 打印输出 print

    • 直接打印数据

    Input:

    print("timerring")
    
    • 1

    Output:

    timerring
    
    • 1

    Input:

    print(520)
    
    • 1

    Output:

    520
    
    • 1
    • 打印变量

    Input:

    x = 1024
    print(x)
    
    • 1
    • 2

    Output:

    1024
    
    • 1
    • print 默认换行

    Input:

    print(1)
    print(2)
    
    • 1
    • 2

    Output:

    1
    2
    
    • 1
    • 2
    • 如果不想换行怎么办?
    • 换行控制 end=
    print(123,end=" ")#也可以自定义end的内容
    print(456)
    
    • 1
    • 2

    Output:

    123 456
    
    • 1
    • 有时候,我们需要一些复杂的输出:比如几个变量一起组合输出
      下面这种方式也有缺点,无法格式化输出

    Input:

    PI = 3.1415926
    E = 2.71828
    print("PI = ", PI, "E = ", E)
    
    • 1
    • 2
    • 3
    PI =  3.1415926 E =  2.71828
    
    • 1

    4.2.3 格式化输出方法 format

    • 基本格式:“字符{ 0 }字符{ 1 }字符”.format(v0,v1)
    • 注意,这里是对应的关系

    Input:

    print("PI = {0},E = {1}".format(PI, E))
    
    • 1
    PI = 3.1415926,E = 2.71828
    
    • 1

    Input:

    print("PI = {0},E = {0}".format(PI, E))
    
    • 1
    PI = 3.1415926,E = 3.1415926
    
    • 1

    Input:

    print("PI = {1},E = {0}".format(PI, E))
    
    • 1
    PI = 2.71828,E = 3.1415926
    
    • 1
    • 默认情况下是严格地按照顺序来执行的

    Input:

    print("PI = {},E = {}".format(PI, E))
    
    • 1
    PI = 3.1415926,E = 2.71828
    
    • 1

    Input:

    print("PI = {},E = {}".format(E, PI))
    
    • 1
    PI = 2.71828,E = 3.1415926
    
    • 1

    4.2.4 修饰性输出

    4.2.4.1填充输出

    Input:

    # ____3.1415926_____  进行填充
    print("{0:_^20}".format(PI))#这里的0也是后面PI变量 :表示修饰输出 _表示修饰字符 ^表示居中 20表示输出的宽度
    
    • 1
    • 2
    _____3.1415926______
    
    • 1

    Input:

    print("{0:*<30}".format(PI))# <代表左对齐
    
    • 1
    3.1415926*********************
    
    • 1
    4.2.4.2 数字千分位分隔符
    • 显示1,000,000
    print("{0:,}".format(10000000))
    
    • 1
    10,000,000
    
    • 1
    • 填充必须放在前面,最后才能是 , 分隔符
    print("{0:&>20,}".format(10000000))
    
    • 1
    &&&&&&&&&&10,000,000
    
    • 1
    print("{0:,&>20}".format(10000000))
    
    • 1
    ---------------------------------------------------------------------------
    
    ValueError                                Traceback (most recent call last)
    
     in 
    ----> 1 print("{0:,&>20}".format(10000000))
    ValueError: Invalid format specifier
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    4.2.4.3 浮点数简化输出
    • 留2位小数
    print("{0:.2f}".format(PI))
    
    • 1
    3.14
    
    • 1
    • 按百分数输出
    print("{0:.1%}".format(0.818727))
    
    • 1
    81.9%
    
    • 1
    • 科学计数法输出
    print("{0:.2e}".format(0.818727))
    
    • 1
    8.19e-01
    
    • 1
    4.2.4.4 整数的进制转换输出
    • 十进制整数转二进制、unicode码、十进制、八进制、十六进制输出
    "二进制{0:b},Unicode码{0:c},十进制{0:d},八进制{0:o},十六进制{0:x}".format(450)
    
    • 1
    '二进制111000010,Unicode码ǂ,十进制450,八进制702,十六进制1c2'
    
    • 1

    总结

    • 格式化输出:“字符{0:修饰}字符{1:修饰}字符”.format(v0 ,v1 )
    • 修饰输出方法:必须严格按照顺序来。

    image-20220829175908182

    Part5 程序格式

    5.1 行最大长度

    所有行限制的最大字符数为79

    5.2 缩进

    • 用缩进来表示语句间的逻辑
    • 在 for while if def class等 :之后下一行开始进行缩进,表明后续代码与前句之间的从属关系
    • 缩进量:4字符
    for i in [1, 2, 3]:
        print(i)
    print("打印结束")
    
    • 1
    • 2
    • 3

    5.3 使用空格

    • 视觉上更加一目了然

    • 二元运算符两边加一个空格

    x = 2       # 赋值
    x + = 4     # 增量
    6 > 2       # 比较
    
    • 1
    • 2
    • 3
    • 使用不同优先级的运算符,考虑在最低优先级的运算符周围添加空格
    x = x*2 - 1
    z = x*x + y*y
    c = (a+b) * (a-b)
    
    • 1
    • 2
    • 3
    • 在逗号后使用空格
    x, y = 1, 2
    ls = [1, 2, 3]
    
    • 1
    • 2
    • 不要使用一个以上的空格
    x     = 2        # 空格一个就够了,不应过多
    
    • 1

    5.4 避免使用空格

    • 在制定关键字参数或者默认参数值的时候,不要在=附近加上空格
    def fun(n=1, m=2):
        print(n, m)
    
    • 1
    • 2

    小结

    1、以上属于PEP8格式指南的部分内容,养成良好的编码规范利人利己

    2、格式约定的目的:

    • 使大量Python代码风格一致
    • 提升代码可读性

    3、尽信书不如无书,不应死板教条的执行格式规范

    • 项目规范优先

    5.5 注释

    • 单行注释
    • 格式:# 注释内容
    a=1  # 单行注释
    
    • 1
    • 多行注释
    • 格式:“”“注释内容,可分行”“”
    """
    欢迎
    关注
    timerring
    的
    专栏
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Output:

    '\n欢迎\n关注\ntimerring\n的\n专栏\n'
    
    • 1
  • 相关阅读:
    「Vue系列」欢迎传送到“Teleport”星球
    canvas基础笔记
    非root用户,没有root权限,安装nginx
    【Docker 基础教程】Centos7.5安装Docker并配置阿里云镜像
    Ubuntu系统Kubernetes(1.25)快速安装手册
    Python | 机器学习之PCA降维
    iOS 设置下载部分文件,如何获取完整文件的大小
    记录一次内网渗透过程
    css:详解BFC块级格式化上下文
    MySQL的故事——查询性能优化
  • 原文地址:https://blog.csdn.net/m0_52316372/article/details/126598814