zoukankan      html  css  js  c++  java
  • 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/

    学而不思则罔,思而不学则殆
  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/linyu51/p/15736672.html
Copyright © 2011-2022 走看看