• 自动化测试工程师--pyhon基础知识体系


    Python基础篇

    第一节-认识python基础语法

    一.注释,打印,命名,关键字

    (1)注释

    1.单行注释 -----------------------------------------

    一次性注释的快捷键:ctrl + /

    # 注释就是用来对代码进行说明
    # 打印hello python(注释)
    # 注释的快捷键:ctrl + /```
    
    • 1
    • 2
    • 3

    2.多行注释------------------------------------------

    “”" 或者 ‘’’ ‘’’
    注意点:python中双引号和单引号的作用是一样的所以在使用时,遇到一行双引号和单引号都存在的情况下要单独区分,最好混合使用。

    """
    多行注释
    第一行注释内容
    第一行注释内容
    第一行注释内容
    
    """
    
    '''
    多行注释2
    第一行注释内容
    第一行注释内容
    第一行注释内容
    
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.1注释使用场景

    def func1(arg1,arg2):
        """
        一句话总结函数
        具体描述
        :param arg1: (参数1) 
        :param arg2: (参数2)
        :return: (返回值的具体描述)
        :otherfunc:(其他关联函数)
        """
        pass
    
    def func2(arg1,arg2):
        """
        计算平均值
    
        :param arg1: int整数 
        :param arg2: int整数
        :return: int整数
        :otherfunc:(其他关联函数)
        """
        pass
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    (2)打印

    
    # print输出的时候,输出的内容会自动换行
    print('我是打印1')
    print('我是打印2')
    
    • 1
    • 2
    • 3
    • 4

    结果:
    ​​在这里插入图片描述

    # print输出的时候,通过end=''可以让下一个print输出的内容不换行
    
    print('我是打印1',end='')
    print('我是打印2')
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    #print的补充知识点
    
    知识点:
    1.python以.py结尾
    2.执行程序: python mai.py
    3.print是一个函数,用来打印输入
    4.要打印的内容成为参数,参数一定要放在()里
    5.字符串可以是单引号,双引号或者三引号
    '''
    print("""
                 
                 |\__|/ _____ //--seak------   \\xx/
                 | xx\ /%%%%///   __     __  \\ \
                 \_xxx %%%%  /   /  \   /  \    |
                 / /x%%%%       ((0) ) ((0) )   |
                / #/|%%%%        \__/   \__/     \__  ______-------
                \#/ |%%%%             @@            \/
                  _/%%%%                             |_____
         ________/|%%%%                              |    -----___
    -----         |%%%%     \___                  __/
               ___/\%%%%    /  --________________//
         __----     \%%%%                     ___/
        /             \%%%%                   _/
                         \%%%%              _/
                           \%%%%           /
                              \%%         |
                               |%%        |
    """)
    print('你好,小海')
    print('下海,你愿意跟我一起去异次元吗?')
    print("-- -- -- -- --- -- --- -- -- -- - -- --")
    
    
    #6变量,在内存中分配的一个小盒子,后面可以用变量名的名字来使用它里面的值
    #7字符串可以通过+来拼接,可以把字符串和变量拼接在一起
    #8变量名字小写,比较长的用下划线连接
    name = '麦叔'
    robot_name = '小麦'
    print("你好," + name + ",我是"+ robot_name)
    print("-- -- -- -- --- -- --- -- -- -- - -- --")
    
    
    #format格式化
    print("你好{},"  "我是{}".format(name,robot_name))
    print("-- -- -- -- --- -- --- -- -- -- - -- --")
    
    #format的进化方法(语法糖衣)
    print(f"你好,{name},我是{robot_name}")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    结果
    在这里插入图片描述

    #转义字符

    https://blog.csdn.net/c_first/article/details/89505548

    (3)命名

    1.常见的命令命名表示法(风格):

    (1)、纯小写字母,每个单词之间用下划线隔开

    max_num = 199999

    (2)、大驼峰命名法:每个单词的第一个字母大写

    MaxNum = 1999999

    (3)、小驼峰命名法:第一单词开头字母小写,后面单词第一个字母大写

    maxNum = 199999

    总结:模块命,函数名,变量名都小写,多个单词相连用_连接

    类名:首字母大写 常量:全部大写
    在这里插入图片描述

    (4)关键字

    python关键字:每个关键字都是有特殊的作用的。

    关键字分类:

    1.保留字---------------------------------------------

    在这里插入图片描述

    2.条件与循环语句---------------------------------

    在这里插入图片描述

    3.定义对象或函数---------------------------------

    在这里插入图片描述

    4.python功能语句---------------------------------

    在这里插入图片描述

    5.异常操作------------------------------------------

    在这里插入图片描述

    二.基本数据类型

    数据类型
    不可变类型:数字,字符串,元组
    可变数据类型,列表,字典,集合

    (1)数字(num)

    1.数字类型------------------------------------------

    int(整型)

    float(浮点型)

    bool(布尔型) 布尔型变量的值只有 真(true)和假(false)

    complex(复数)

    关键字:type 可以查看他是什么类型

    #整数
    number1 = 100
    a = 20
    res = type(a)
    print(res)
    
    #浮点数
    b = 1.2
    c = 222.2
    res2 = type(b)
    print(res2)
    
    #布尔类型数据
    t = True
    f = False
    res3 = type(f)
    print(res3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    结果:
    在这里插入图片描述

    2.运算------------------------------------------------

    2.1算术运算符-----------------------------------
    """
    + :加
    - :减
    * :乘
    / :除
    ** :幂运算
    % :取余
    //:除法取整(取商)
    """
    a = 20
    b = 5
    res = a / b
    print(res)
    print(2**4)
    print(9//5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    2.2赋值运算--------------------------------------

    (1) 赋值运算符: = += -= *= /= %=

    aa = 22
    aa = aa + 1    # 等同于  aa +=1
    print(aa)
    
    
    bb =22
    bb -= 1  # 等同于 bb = b-1
    print(bb)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述

    2.3比较运算--------------------------------------

    比较的条件成立,返回的是True,条件不成立返回的是False
    比较运算符:
    == 表示等于
    != 表示不等于

    a1 = 12
    b1 = 12
    print(a1 > b1)
    print(111 == 111)
    print("musen" == "xiaoming")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:

    在这里插入图片描述

    2.4逻辑运算--------------------------------------

    逻辑运算符:与 或 非
    and: 真真为真(所有的条件都要成立,才会返回True,否则返回False)
    or : 一真为真,假假为假(只要有一个以上的条件成立,就返回True,都不成立返回False)
    not: 取反

    print(10 < 8 or 9 > 10)
    print(not 10 < 7)
    
    • 1
    • 2

    结果:
    在这里插入图片描述

    2.5运算符的优先级-----------------------------

    运算符的优先级:用括号解决

    print(10 > 8 and (11 > 19 or 11 < 19))
    
    • 1

    结果:
    在这里插入图片描述

    (2)字符串(str)

    1.字符串的定义:通过引号(单引号,双引号,三引号)

    name = "seak"
    age = '18'
    print(name,type(name))
    print(age,type(age))
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    2.空字符与空白字符------------------------------

    # 空字符:字符串中没有任何内容
    s1 = ""
    print(s1,type(s1))
    
    
    # 空白字符:字符串中有内容,内容是空格键(空白)
    s2 = " "
    print(s2,type(s2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述

    3.字符串的转换------------------------------------

    注:python中任何的数据类型都可以转换为bool值

    1.字符串转换为bool类型

    # python中任何的数据类型都可以转换为bool值
    # 数据中有内容,转换成bool值之后为  :True
    # 数据中没有有内容,转换成bool值之后为  :False
    s1 = ""
    s2 = " "
    print(bool(s1))
    print(bool(s2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    在这里插入图片描述
    2.数值与字符串的转换

    number = 999
    print(type(number),number)
    
    # 数值类型转换为字符串
    s3 = str(number)
    print(type(s3),s3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果:
    在这里插入图片描述
    3.字符串类型转换为数值

    # 字符串类型转换为数值
    s4 = "898"
    n2 = int(s4)
    print(n2,type(n2))
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    4.字符串取值---------------------------------------

    在这里插入图片描述

    4.1下标索引取值--------------------------------
    str1 = "python hello"
    res = str1[-4]
    print(res)
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

    4.2字符串切片取值-----------------------------

    [起始位置:终止位置] :取头不取尾,从起始位置开始,到终止位置的前一个
    起始位置:不写,默认从头开始
    终止位置不写:默认到结束
    [起始位置:终止位置:步长] :步长为多少,就是多少个取一个

    str = 'Runoob'
    
    print(str)  # 输出字符串
    print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
    print(str[0])  # 输出字符串第一个字符
    print(str[2:5])  # 输出从第三个开始到第五个的字符
    print(str[2:])  # 输出从第三个开始的后的所有字符
    print(str * 2)  # 输出字符串两次
    print(str + "TEST")  # 连接字符串
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述

    5.字符串的拼接------------------------------------

    # 字符串拼接
    desc1 = "我的名字叫musen"
    desc2 = "今年年龄是18岁"
    
    # 第一种:  +
    res3 = desc1 + ',' + desc2
    print(res3)
    
    
    # 第二种:join方法
    """
    字符串X.join((字符1,字符2,字符3,字符4,字符5))
    字符1 字符串X 字符2 字符串X 字符3 字符串X 字符4 字符串X 字符5
    
    """
    res5 = ','.join((desc1,desc2,'python666'))
    print(res5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    结果:
    在这里插入图片描述

    6.字符串的转义------------------------------------

    \n :换行符
    \t :制表符(四个空格)
    r : 关闭字符串的转义

    \n :换行符

    print('8888888\n999999999\n77777777')
    
    • 1

    结果:
    在这里插入图片描述

    \t :制表符(四个空格)

    print('8\t9\t777')
    
    • 1

    结果:
    在这里插入图片描述
    r : 关闭字符串的转义

    r1 = r"123\nbc"
    r2 = "123\nbc"
    print(r1)
    print('*******************')
    print(r2)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    在这里插入图片描述

    7.输入 input-----------------------------------------

    name = input("请输入姓名:")
    age = input("请输入年龄:")
    gender = input("请输入性别:")
    
    print("*********************")
    print("姓名:", name)
    print("年龄:", age)
    print("性别:", gender)
    print("*********************")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    结果:
    在这里插入图片描述

    8.字符串的相关方法------------------------------------

    8.1方法的调用格式-----------------------------
    			字符串.方法名()
    
    • 1
    8.2 find查找字符串片段在字符串中的下标位置--------------------------------------------

    查找字符串片段在字符串中的下标位置,从前往后找,返回的是第一个被找到字符串片段(起始位置)

    第一个参数是要查找的字符串片段,第二参数,是查找的起始点

    
    s1 = "abcd234abcabcd234abc"
    res1 = s1.find('c',1)
    print(res1)
     
    # 字符不存在返回 - 1
    res2 = s1.find('s', 4)
    print(res2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述

    8.3 index检测字符串中是否包含子字符串-------------------------------
    #index方法:检测字符串中是否包含子字符串 str(按下标),不存在会抛异常
    # index()方法语法:str.index(str,         beg=0,         end=len(string))
    #                             字符串,    开始位置,      结束位置
    str1 = "this is string example"
    str2 = "exam"
    #str1中包含str2
    print(str1.index(str2))
    #str1中包含str2从第10个索引位置开始
    print(str1.index(str2,10))
     
    print("*"*20)
    #str1不包含str2的字符串从第40个位置开始(会抛异常)
    print(str1.index(str2,40))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    结果:
    在这里插入图片描述

    8.4 count统计字符串片段--------------------------------------------
    # count方法:统计字符串片段,在字符串中出现的次数
    s1 = "abcd234abcabcd234abc"
    res1 = s1.count('abc')
    print(res1)
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    8.5 replace替换指定的字符串片段--------------------------------------------
    # replace方法:替换指定的字符串片段
    # 参数1:要替换的字符串片段
    # 参数2:替换之后的字符串片段
    # 参数3:可以用来指定替换的次数(默认是替换所有的)
    s1 = "abcd234abcabcd234abc"
    res2 = s1.replace('abc', 'ABC',2)
    print(res2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果:
    在这里插入图片描述

    8.6split指定分割点对字符串进行分割--------------
    # split方法:指定分割点对字符串进行分割
    # 参数1:分割点
    # 参数2:分割的次数(默认找到所有的分割点进行分割)
    s2 = "111ab22ab333ab444"
    # ["111","b222","b333","b444"]
    # ['111', 'b222', 'b333', 'b444']
    res4 = s2.split("2",2)
    print(res4)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:
    在这里插入图片描述

    8.7upper将小写字母转换为大写--------------
    ### upper方法:将小写字母转换为大写
    s3 = "abc123ABC"
    res6 = s3.upper()
    print(res6)
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    8.8lower将大写字母转换为小写--------------
    #lower方法:将大写字母转换为小写
    s3 = "abc123ABC"
    res7 = s3.lower()
    print(res7)
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述

    9.字符串格式化输出--------------------------------------

    9.1 format格式化输出----------------------------------

    (1)按位置一 一对应进行填充

    #  有几个{},format中就可以传入几个数据,按位置一一对应进行填充
    str1 = "今收到{},交了学费{}元,开此收据为凭证"
    print(str1.format('小明',500))
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

    (2)通过下标位置指定填充内容的数据

    
    # 在{}中通过下标位置指定填充内容的数据(扩展)
    str1 = "今收到{0},交了学费{0}元,开此收据为凭证"
    print(str1.format('小明',10))
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述
    (3)保留特点小数位数按4舍5入方式{:.2f}

    price = float(input("请输入价格:"))
    #保留小数点后面的位数
    print("今天xx股票的是{:.2f}元".format(price))
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述
    (4)将数字按百分比显示

    # 将小数按百分比的形式显示
    print('百分比为{:.2%}'.format(0.12))
    
    • 1
    • 2

    结果:
    在这里插入图片描述

    9.2 传统格式化输出%----------------------------------
    # 传统的格式化输出方法:%
    # %s :为字符占位(任意类型都可以)
    # %d :为数值类型占位
    # %f :为浮点数占位
     
    s2 = "abcd1224:%s---%s---%s"%('A','B','C')
    print(s2)
     
    s3 = "我的名字%s,年龄%f,性别%s" % ('小明', 18, "男")
    print(s3)
    name = "小明"
    age = 18
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果:
    在这里插入图片描述

    9.3F表达式输出
    # F表达式格式化输出
    name = "小明"
    age = 18
    s3 = F"我的名字{name},年龄{age}"
    print(s3)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    在这里插入图片描述

    (3)列表

    1.list的特点------------------------------------------------

    1.查找和插入的时间随着元素的增加而增加
    2.占用空间小,浪费内存很少
    3.列表是用时间换取空间的一种方式

    2.list与dict的区别------------------------------------------------

    dict和list比较,dict有以下几个特点:
    1.查找和插入的速度极快,不会随着key的增加而增加
    2.需要占用大量的内存,内存浪费多
    3.dict是用空间来换取时间的一种方法

    3.list与tuple的区别------------------------------------------------

    tuple与list的区别

    1.元组比列表操作速度快
    2.对数据“写保护“
    3.可用于字符串格式化中
    4.可作为字典的key

    4.list的性质------------------------------------------------

    列表:列表是一种可变的数据类型
    列表的定义:[]

    5.list取值------------------------------------------------

    5.1列表的索引取值------------------------------------------
    # 列表可以通过下标索引取值
    li = [19, 1.3, "python"]
    print(li[2])
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

    5.2列表的切片操作----------------------------------------
    # 列表的切片操作
    li1 = [11, 22, 33, 44, 55]
    print(li1[::2])
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

    5.2列表的增删查改----------------------------------------

    (1)增加元素的方法:append,insert extend

    li2 = [1, 2, 3]
    #append:往列表结尾处添加一个元素(追加)
    li2.append("11")
     
    #insert:通过下标指定位置,往列表中加入元素
    li2.insert(1, 999)
     
    #extend:一次性加入多个元素(放在列表的结尾处)
    li2.extend([11, 22, 33])
    print(li2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果:
    在这里插入图片描述
    (2)删除元素的方法:remove pop clear

    
    # 删除元素的方法: remove  pop  clear
     
    li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
     
    # remove:删除指定的元素(删除找到的第一个)
    li3.remove(1)
    print(li3)
     
    #pop方法:指定下标位置进行删除(没有指定下标位置,默认删除的是最后一个)
    li3.pop(3)
    print(li3)
     
    #clear:清空列表
    li3.clear()
    print(li3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    结果:
    在这里插入图片描述
    (3)查找元素的方法:index

    注:字符串中可用find和index

    li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
    # index:查找指定元素的下标,找到了返回下标值,没有找到报错
    res = li3.index(11)
    print(res)
    
    • 1
    • 2
    • 3
    • 4

    结果:
    在这里插入图片描述
    (4)修改列表元素的方法:通过下标去指定元素,进行重新赋值

    # 修改列表中某个元素的值
    # 通过下标去指定元素,进行重新赋值
    li4 = ["aa", "bb", 11, 22, 33]
    #将bb改为999
    li4[1] = 999
    print(li4)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果:
    在这里插入图片描述

    5.3 列表的其他操作方法
    5.3.1列表的统计count----------------------------------
    # count:统计列表中某个元素出现的次数
    li3 = [1, 2, 3, 11, 22, 33, 1, 2, 3]
    #统计1出现的次数
    res2 = li3.count(1)
    print(res2)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:
    在这里插入图片描述

    5.3.2列表的排序sort------------------------------------
    li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
    
    #默认从小到大
    li5.sort()
    print(li5)
     
    #从大到小
    #通过参数(reverse=True)可以指定从大到小,降序排序
    li5.sort(reverse=True)
    print(li5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果:
    在这里插入图片描述

    5.3.3列表的反转reverse(头变成尾,尾变成头)--------------------
    li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
    li5.reverse()
    print(li5)
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

    5.3.4列表的复制copy--------------------------------------------------
    li5 = [111, 22, 31, 41, 5, 6, 888, 8, 34, 8, 12, 7, 33]
    li6 = li5.copy()
    print(li6)
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

  • 相关阅读:
    C++的命名空间、缺省参数、函数重载 及引用
    HTB-GoodGame
    第四代智能井盖传感器,实时守护井盖位安全
    Leetcode—304. 二维区域和检索 - 矩阵不可变【中等】
    服务器没有安装torch库的解决记录
    2022杭电多校七 Black Magic (签到)
    迁移学习(Transfer)
    Mysql Liunx下安装指南
    遇到的题目
    Spring Boot集成Hibernate Envers自定义修订实体使用多个数据源
  • 原文地址:https://blog.csdn.net/qq_38224014/article/details/125061041