• python


    前言

              学习 Python 内容!    官网学习链接

    一、简介

    Python 语言的特点

    1. python 中的一个语句可以进行很多复杂操作(语法糖)
    2. 使用缩进来区分代码块的。C++ 和 java 是通过 {} 来区分
    3. 变量无需声明,可以直接用
    4. 容易扩展

    二、Python 解释器

    版本为 Python3.10

    文件模式

    1. 执行 python 文件(.py结尾)
      输入 python3 会直接进入到一个 python 解释器中,python 解释器可以用来直接执行一个 python 文件(python 可以像其它语言一样,放到一个文件里来写),类似于写 shell 脚本。
      在这里插入图片描述
      运行 python 代码文件有两种方式:
      1. python3 文件名.py
      2. ./文件名.py,文件需要有可执行权限,如果没有执行:chmod +x 文件名.py

    交互模式

    1. 交互式执行(ipython3 支持高亮)
      • 注释用 #, 注释语句在单独一行,或者是一个语句后面两个空格
      • 单独一句一句的执行,支持自动补全(按两下 tab 键)
      • 上下键可以切换之前执行的语句
      • 退出,通过输入 exit() 或者快捷键 ctrl+d

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

    三、运算

    1. 数字

      • / :默认是浮点数除法,//:整除,是向下取整(-1 // 3 (是负三分之一),向下取整结果为 -1)。C++ 的整除是向零取整(-1 / 3 是负三分之一,向零取整为零)
      • **:乘方运算
      • 变量不用定义类型,直接用即可。n = 20,注意变量未赋值的话不能直接用
      • 交换两个变量:a, b = b, a
      • 交互模式下 _ 表示上一个表达式的值
    2. 字符串

      • 字符串:python 里的字符串和 C++ 中一样的,区别在于 python 中单引号和双引号都可以表示字符串,没有区别。python 中的字符串是不能修改的

      • 下标:

        • python 中的字符串和列表都是既可以从前往后访问,也可以从后往前访问。
        • 下标加上 - 表示从右往左数,从右往左数的时候下标从 1 开始。不加 -,表示从左往右数,下标从 0 开始
          在这里插入图片描述
      • 切片

        • 区间是一个左闭右开的区间,word[0:2]
        • 省略前面的时候,前面默认是 0,省略后面的时候,后面默认是字符串长度。word[:2] word[4:]
        • 支持负数。word[-2:] word[-5,4]
        • 支持相加。word[:2] + word[2:]
        • 直接操作下标不能越界,但是切片是可以越界的
      • len:可以求所有类型的长度

    四、列表

    就是数组:中括号([])表示,里面每一项元素用逗号(,)隔开,数组里每一项元素类型可以不一样

    a = [1, 4, 9]
    b = [1, 2.0, 'yjx', [2,3]]
    x, y, z = a
    
    • 1
    • 2
    • 3

    可以通过下标来访问 支持切片,操作和字符串一样

    浅拷贝

    支持相加操作:将两个数组拼接到一起

    在列末尾添加元素,a.append(6) 或者 a += [7]

    len(a):求列表 a 的长度

    列表中的每一个元素是可以修改的:x[0] = 4x[1:3] = ['a', 'b']

    清空一个数组:x[:] = [],[]:空

    列表是支持嵌套的,就是一个二维数组,x = [[1,2], [3,4]]

    python 中所有的循环、判断后面需要加上一个 :

    # 斐波那契数列
    a, b = 0, 1  # python支持复合赋值方式:第一项赋值给第一个变量,第二项赋值给第二个变量,以此类推..
    while a < 10:
    	print(a, end=',')  # print 默认会输出一个回车,end=',',如果声明一个 end 参数的话,末尾的参数就不是回车了,而是后面指定的
    	a, b = b, a + b
    
    • 1
    • 2
    • 3
    • 4
    • 5

    python 是通过缩进区分代码块的
    在这里插入图片描述

    五、if 语句

    >>> x = int(input("Please enter an integer: "))  # 读入一个整数,通过 int 函数将字符串转化成整数
    Please enter an integer: 42
    >>> if x < 0:
    ...     x = 0
    ...     print('Negative changed to zero')
    ... elif x == 0:
    ...     print('Zero')
    ... elif x == 1:
    ...     print('Single')
    ... else:
    ...     print('More')
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    六、for 语句

    python 中的 for 循环:有一堆东西,通过 for 循环进行一个一个枚举,不支持算法运算符,不能直接实现像 C++ 中的 for (Int i = 0; i < 10; i ++) 这种操作

    1. 循环遍历一个列表
     words = ['cat', 'window', 'defenestrate']
    	for w in words:
    		print(w, len(w))
    
    • 1
    • 2
    • 3
    1. 循环遍历一个字典

    2. 用 range 来实现一个通常的 for 循环
      rnage():会返回一个左闭右开的区间

    for i in range(0, 10)
    	print(i)
    
    • 1
    • 2

    range 可以实现倒序:range(9, -1, -1),第三个参数为公差
    只有一个参数时:range(10):默认是等价于 range(0, 10)

    七、函数

    python 不写返回值的话,默认返回一个 None(类似于 C++ 中的 NULL)
    python 中是可以定义重名函数的,重名的函数下一个会将上一个覆盖掉
    函数参数可以不用写变量类型,python 会自动判断变量类型
    设置默认值的变量一定是要连续的
    函数可直接赋值:f = g,其中 gf 都是函数
    解包:*,将列表中的元素展开成几个用逗号隔开的变量,赋值给函数的参数,当作函数的参数来调用
    解包一个列表是用 *,解包一个字典是用 **

    八、数据结构

    1. 列表
      • 列表推导式:像倒装句:
      b = [i *i for i in range(10)]  # b里面的每个元素是 i*i,i 是枚举[0,9]
      
      • 1
      • sroted(a):对列表进行排序

    1. 元组

      • a(1, 2, 3),注意是用小括号,列表是用中括号。和列表操作类似,唯一区别为列表里的元素是可以修改的,元组里的元素是不可以进行修改的
      • 可以将一个元组赋给一个变量:b = (1, 2, 3),括号可以省略:b = 1, 2, 3。也可以将一个元组反过来赋给若干个变量:x, y, z = b,其中 x = 1 y = 2 z = 3 (解包操作)
      • 交换:y, x = x, y
    2. 集合(set)
      类比于 C++ 的 set

      • 定义: a = se(), a = {1, 2, 3},{}既可以表示集合也可以表示字典,区分主要看其里面存的是 key-value 对还是单独的值,如果是 key-val 对那么就是字典,如果是单独的值那么就是 集合
      • 添加元素:a.add(1)。相同元素只保留一个,如果新插入的元素在集合中出现过,那么新元素不会插入到集合中
      • 作用:一般是用来对列表进行判重‘
    a = {1,2,2,3,5}
    set(a)  # 结果为去重后的集合
    a = list(set(a))  # 去重后的结果还是列表类型
    
    • 1
    • 2
    • 3
    1. 字典(dict)
      • 定义 tel = {'jack':4096,'sape':4139}
      • 修改:tel['jack'] = 8888
  • 相关阅读:
    【vue】在父组件监听子组件的生命周期方法 ---@hock
    C/C++图的最小生成树和最短路径的实践
    1.typescript安装
    每日一练 | 华为认证真题练习Day123
    gitlab的使用方法,详解gitlab操作
    微服务中的Feign:优雅实现远程调用的秘密武器(二)
    LCR 171.训练计划 V
    如何让销售管理更高效?
    硬件基础 -比较器
    美团T3架构师推荐633页JavaEE核心框架实战
  • 原文地址:https://blog.csdn.net/weixin_39903708/article/details/125448062