python必会的知识基础

一、运算符

  • 算术运算
    • 加、减、乘
      • 10/3 (得到浮点数)
      • 10//3(取整除 - 向下取接近商的整数)
    • 幂运算(x**y)
      • 幂 - 返回 x 的 y 次幂
    • 取余/取模(%)
      print(10%3)
      1
      • 取模 - 返回除法的余数
  • 赋值运算
    • =:简单的赋值运算符

    • 拓展知识

      • +=:加法赋值运算符
      • -=:减法赋值运算符
      • *=:乘法赋值运算符
      • /=:除法赋值运算符
      • %=:取模赋值运算符
      • **=:幂赋值运算符
      • //=:取整除赋值运算符

      num = 0
      num += 1
      print(num)
      输出:1

  • 比较运算符
    • >、<、== 、!= 、>=、<=
    • 让计算机判断条是真还是假,是真就返回 True,否则返回 False
  • 逻辑运算
    • 与 (and)
      print('逻辑运算:',num1 == 0 and num2 == 0)
      代码说明:让计算机判断 num1 ==0 和 num2 == 0 两个条件是真还是假,都是真才返回 True,否则返回 False
    • 或(or)
      print('逻辑运算:',num1 == 0 or num2 == 0)
      代码说明:让计算机判断 num1 ==0 或者 num2 == 0 是真还是假,只要有一个是真的就返回 True,否则返回 False
    • 非(!)
      print('逻辑运算:',num1 != 0)
      代码说明:让计算机判断 num1 !=0 是真还是假,是真的就返回 True,否则返回 False

二、字符串

  • 字符串定义
    • 定义单行字符串
      • 单引号
      • 双引号
    • 定义多行字符串
      • 三个单引号
      • 三个双引号
    • 空字符串
      str = ""
    • 转换成字符串
      str(object)
  • 字符串操作
    • 字符串访问
      • 顺序索引 0 开始
      • 倒序索引负 1 开始
    • 字符串切片

      字符串[起始索引,结束索引,步长]

      • 常用形式
        • 正序切片
          • 使用默认步长(1)
            string[start_index : stop_index]
          • 自定义步长
            string[start_index : stop_index : step]
          • 反转
            string[::-1]
        • 倒序切片
          [start_index : stop_index : step]
          起,未,步长都为必传,且都是负数
          • step>0 正数(或不传):表示正序切片
          • step<0(负数):表示倒序切(索引值也要为负数)
      • 注意点
        • 一个空格占一个索引位置

        • 正切默认起始索引 0,默认步长 1

        • 倒序切片默认起始索引-1,默认步长 1

        • 不写结束索引默认为字符串长度

        • 左闭右开(取起始索引的值,不取结束索引的值)

        • start_index : stop_index : step 超过列表索引值,返回空

        • step 参数中"+,-" 只是切片方式的标记,后面数字表示步长

        • 正序切片起始索引值必须小于结束索引值(建议记绝对值)

        • 正切就用正切的索引方式写索引(0 开始)

        • 倒序切就用倒序的方式写索引(-1 开始)

        • 代码演示
          """
          起始索引绝对值 > 结束索引绝对值
          正序:能取到值
          倒序:取不到值

          str_1[-3:-2]
          昨天说正序切片:起始索引绝对值 < 结束索引绝对值
          虽然能取到值,但是不好理解,这么说目的就是让大家不要用这种方式
          """
          str_1='123456789'
          str_2=str_1[-3:-2]
          str_3=str_1[-3:-2:-1]
          str_4=str_1[-1:2:-1]
          print('正序切片值:',str_2)
          print('倒序切片值:',str_3)
          print('倒序切片值:',str_4)
          输出:
          正序切片值: 7
          倒序切片值:
          倒序切片值: 987654

    • 字符串运算
      • 字符串拼接
        • “+”
      • 重复输出

    • 字符串转义
      • \n
    • 换行,打印字字符串过程中遇到 \n 会换行打印
      print('hello\npython')
      输出:
      hello
      python

      • \ 和 r
        • 在非特殊符号前面功能就是【续行符】
        • 在运算符或者特殊符号前面就是【关闭转义】
          • 打印\n

            print('\n')# r raw

            print(r'\n')
            \n# 打印引号

            print(""")
            print('"')
            输出:"

        • 打印空格
          print(\000)
    • \\

      • 单独打印一个反斜杠是打印不出“\”的会报错
        • 正确打印方式 # 通过转义打印

          print('\')

          \

        • 夹在字符串中间打印
          print('hello\hello')

    • 关闭转义(r)

      • 关闭转义,让等具有特殊意义的字符失效,按照原本的意思输出
        print(r'hello \n oython')
  • 字符串常用方法
    • 单词大小写相关
      • upper:所有字母大写
        string.upper()
      • lower:所有字母小写
        string.lower()
      • 其他方法(了解)
        • capitalize:整个字符串首字母大写
          string.capitalize()
          new_str='python'
          print(new_str.capitalize())
          输出:Python
        • title:每个单词首字母大写
          string.title()
          new_str='hello python'
          print(new_str.title())
          输出:Hello Python
        • swapcase:大小写互换
          string.swapcase()
          new_str='Hello Python'
          print(new_str.swapcase())
          输出:hELLO pYTHON
    • 统计相关
      • count:返回子字符串在字符串中出现的次数
        string.count(sub, start= 0,end=len(string))

        • sub:搜索的子字符串
          • start:字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为 0
        • end:字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置
        str_1='1233333456789'
        new_str=str_1.count('3',0,len(str_1))
        print(new_str)
        输出:5
      • find:默认只查询第一个字符串,如果包含子字符串返回查找到的第一个字符串索引值,否则返回-1
        string.find(str, beg=0, end=len(string))

        • str:指定检索的字符串
        • beg:开始索引,默认为 0
        • end:结束索引,默认为字符串的长度
        str_1='123456789'
        new_str=str_1.find('5',0,-1)
        print(new_str)
        4
      • rfind:返回字符串最后一次出现的位置,如果没有匹配项则返回 -1
        string.rfind(str,beg=0, end=len(string))

        • str:指定检索的字符串
        • beg:开始索引,默认为 0
        • end:结束索引,默认为字符串的长度
        str_1='hello python'
        new_str=str_1.rfind('o')
        print(new_str)
        10
      • 判断相关

        • string.isupper():判断字符串是否都是大写,返回布尔值
        • string.islower ():判断字符串是否都是小写,返回布尔值
        • string.isalnum():判断字符串是否由数字字母汉字组成,返回布尔值
        • string.isalpha():判断字符串是否由字母汉字组成,返回布尔值
        • string.isspace():判断是否有空格,返回布尔值
        • string.title():判断字符串是否每个单词首字母大写,返回布尔值
    • 拆分&替换
      • string.split(sep=None, maxsplit=-1):字符串拆分,默认空格拆分,可以指定字符切

        • sep:拆分字符
        • maxsplit=-1:最多进行多少次拆分,默认为-1 表示不做限制,0 表示不拆分
        • 拆分后的值作为一个 list 返回
        • 拆分过程中会丢弃拆分符号
          str="aafbbfccfddfee"
          new_str=str.split('f')
           ['aa','bb','cc','dd','ee']
      • string.join(iterable):将序列中的元素以指定的字符连接生成一个新的字符串

        • iterable:元组、列表、字典、字符串
        • string:iterable 内部元组间的连接符号
          # 用“-”连接
          new_string='-'.join(['I','love','python'])
          print(new_string)
           I-love-python
      • string.replace(old, new, count=None):替换字符串,返回替换后的字符串,不会修改原来的字符串
        • old:需要替换的字符
        • new:替换后的字符
        • count:需要替换的个数,非必填,如不填,默认全部替换
          str_1 = '1233333333456789'
          # old, new, count=None
          new_str = str_1.replace('3', 'A', 1)
          print(new_str)
          输出:12A3333333456789
      • 其他方法
        • string.splitlines(keepends=None):字符串拆分,按换行符进行拆分

          • \r:回车、\n:换行
          • keeppends(False) 在输出时是否去掉换行符(\r,\r\n,\n)默认 False,如果改为 True 则保留换行符
        • string.zfill(width):将 string 放右边,返回指定长度的字符串,长度不够在前面填充 0

          • width:返回字符串的长度
        • string.center(width, fillchar=None):将 string 放中间,返回指定长度的字符串,长度不够从字符串两边一起填充指定字符
          • width:返回字符串的长度
        • fillchar=None:指定填充字符,默认为 None,填充空格
        • string.rjust(width, fillchar=None) 返回指定长度的字符串,从字符串左边填充指定字符
          • width:返回字符串的长度
      • fillchar=None:指定填充字符,默认为 None,填充空格
    • string.ljust(width, fillchar=None) 返回指定长度的字符串,从字符串右边边填充指定字符
      • width:返回字符串的长度
      • fillchar=None:指定填充字符,默认为 None,填充空格
  • 字符串格式化输出

    • %(% 相当于占位符)
      • %s:格式化字符串

        # 字符串
        price = 'the price is %s' %('none')
        print(price)
        the price is none
        
        # 数值
        price = 'the price is %s' %(100)
        print(price)
        输出:the price is 100
        • 注意点
          • 当 %('test')中 test 传的不是 str 类型,是数字的时候,会将数字强制转换成 str
      • %d:格式化数值

        price = 'the price is %d' %(-100)
        print(price)
        输出:the price is -100
        • 注意点
          • 当 %(10)括号中传的不是整数类型,且无法强制转换成整数类型的时候,会报错
          • 当 %(10)括号中传的不是整数(int),是小数(float)的时候,会强制转换成整数,小数部分会被抹掉
      • %f:格式化浮点数

        • %f:不指定精度默认保留 6 位小数,无小数位就补 0
          price = 'the price is %f' %(100)
          print(price)
          输出:the price is 100.000000
        • %.2f:指定保留两位小数
          price = 'the price is %.2f' %(100)
          print(price)
          输出:the price is 100.00
      • 其他用法

        • 百分号"%",数字,点"."的用法
          • 数字在点前面:表示占多少个字符位置

            • 数字在点后面:表示保留几位小数
              """
              点前面的10表示该字浮点数前面占10个字符位置
              点后面的4表示该浮点数保留4位小数
              """
              print("this number is %10.4f" %(10.999)
              输出:this number is    10.9990
          • 横杠“-”的用法

            • 占位符数字前带杠(-)表示字符左对齐
            print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Json",25,1.80))
            输出:Name:Json       Age:25       Height:1.80
            • 占位符数字前不带杠(-)表示字符右对齐
              print ("Name:%10s Age:%8d Height:%8.2f"%("Json",25,1.80))
              Name: JSON Age: 25 Height: 1.80
      • format()函数

        • 按顺序取值
          print("my name is {} age {}".format('老王',20))
          输出:my name is 老王 age 20
        • 按索引取值
          print("my name is {1} age {0}".format('老王',20))
          输出:my name is 20 age 老王
        • 按关键字取值
          print("my name is {name} age {age}".format(age=20,name='老王'))
          输出:my name is 老王 age 20
        • 调整精度
          # .表示在小数点后面进行运算
          print('{:.2f}'.format(12.123456))
          输出:12.12
        • 百分比格式化
          # . 表示在小数点后面进行运算
          print("percent is {:.3%}".format(0.67899))
          输出:percent is 67.899%
          
          print("percent is {:%}".format(0.67899))
          输出:percent is 67.899000%
          
          print("percent is {:3%}".format(0.67899))
          输出:percent is 67.899000%
        • 其他用法
          • 进制转换
            # b:二进制; o: 八进制;x:十六进制)
            print('{:b}'.format(10))
            输出:1010
          • 千位分隔符
            print("{:,}".format(1234536789))
             输出:1,234,536,789
      • f"{}"

        name='老王'
        age=20
        print(f"my name is {name} age:{age}")
        输出:my name is 老王 age 20



作者:haili
链接:http://testingpai.com/article/1617353212847
来源:测试派
协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

posted @ 2021-12-27 16:10  晨起的太阳  阅读(187)  评论(0编辑  收藏  举报