1. Python的数据类型

  1. Numbers  数字类型
    包括 int(整型);bool(布尔类型);float(浮点型);complex(复数)

 

  2.  String  字符串类型

    1. 用单引号或者双引号标识

    2. 转义\ 或 r 可以使转义字符失去转义效果

    3. 联级字符串,如 “this ” “is ” “string” 会被自动转换为 this is string

    4. 字符串拼接, + 将字符串拼接起来,* 重复字符串

    5. 字符串索引:从左往右从0开始,从右往左从-1开始

    6. 字符串的截取语法格式:变量 [ 头下标 : 尾下标 : 步长 ]

 

  3. tuple  元组类型
    元组用()标识,内容不可改变  

  

  4. list  列表类型
    列表用[]标识,内容可以更新修改  

 

  5. dict  字典
    字典用{}标识,以键值对的形式表示 {‘key’ : ‘value’ }

 

  6. set  集合
    集合用 {}标识,内部的数据是不重复的

 

2. 数据类型转换

  1. 隐式转换,可以兼容的不同类型相加,转换为同一类型   

 

  2. 显式转换,使用关键字将不同类型强制转换

    1. 转换为int类型——int()

    

    2. 转换为float类型——float()  

    

    3. 转换为字符串类型 

    

    4. 转换为元组类型——tuple() 

    

    5. 转换为列表类型——list() 

    

    6. 转换为字典类型——dict()

    

    7. 转换为集合类型——set()

 

3. Python推导式

  1. 推导式是一种独特的数据处理方式,可以将数据序列构建另一个数据序列的结构体

  2. 语法:表达式  for  迭代变量  in  可迭代对象  [ if  条件表达式 ]

  3. 列表推导式:list = [ i for i in 可迭代对象 if 条件语句 ]

# 常规循环
lis = []
for i in range(5): lis.append(i)
# 使用列表推导式
j = [j for j in range(5) if j > 2]  # [3, 4]
# 嵌套列表推导式
l1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
l1 = [l1[i][i] for i in range(len(l1))]  # [1, 5, 9]
# 通过循环列表得到新的符合条件的列表
list1 = [1, 2, 4, 5, 7, 4, 5, 7, 8, 4, 3, 5, 6, 5, 6, 6]
list2 = [list2 + 2 for list2 in list1 if (list2 % 3 == 0)]
# 可以进行多个for循环
list3 = [(x, y, z) for x in range(5) for y in range(4) for z in range(3)]

 

  4. 字典推导式: dict  =  { key :value  for  i , j in  可迭代对象  if 条件语句 }

# 字典推导式
dict0 = {x: y for x in ('a', 'b', 'c') for y in (1, 2, 3,)}  # {'a': 3, 'b': 3, 'c': 3}
# 通过循环修改原来的字典
dict1 = {"a": 10, "B": 20, "D": "hello world", "e": "python教程"}
# 筛选出key是小写字母的值 
dict2 = {key: value for key, value in dict1.items() if (key.islower())}  # {'a': 10, 'e': 'python教程'}
# 将key的值全部变成小写字母
dict3 = {key.lower(): value for key, value in dict1.items()}  # {'a': 10, 'b': 20,'d': 'hello world', 'e': 'python教程'}

 

  5. 集合推导式: set = { i for i in 可迭代对象 if 条件语句 }

# 集合推导式: 集合推导式和字典推导式都是用{}表示,字典是键值对形式,反之是集合
set1 = {x * 2 for x in (1, 2, 2, 3, 4) if x >= 2}   # {8, 4, 6} 集合自动去重
# 推到对象为字典,keys(),values(),items()
set2 = {x for x in {'1': 1, '2': 2}.items()}  # {'2', '1'}

  

  6. 元组推导式: tuple = ( i for i in 可迭代对象 if 条件语句 )

# 元组推导式,元组推导式和列表相同,但是元组推导式返回的是一个生成器对象
tup = (x for x in range(10))  # <generator object <genexpr> at 0x0000024884365E40>
# 用类型转换tuple()将对象转换为元组
tup1 = tuple(tup)  # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

 

4. Python运算符

  1. 算术运算符
    +  加法      -  减法      *  乘法      /  除法
     %   取余      **    幂       //  向下取整

  2. 比较运算符
    >  大于号    <  小于号    =  等于号
    >=   大于等于号  <=  小于等于号  !=    不等于号

  3. 赋值运算符
     +=  加法赋值运算符       -=  减法赋值运算符
    *=  乘法赋值运算符        /=  除法赋值运算符
    %=   取余赋值运算符       **=    幂赋值运算符
    //=  取整赋值运算符      :=    海象赋值运算符

  4. 位运算符

      &  位与运算符,对应的两个二进制都为1时,结果位为1
    |    位或运算符,对应的两个二进制有一个为1时,结果位为1
    ^   位异或运算符,对应的两个二进制相异时,结果位为1
    ~  位取反运算符,对每个二进制位取反,是负数,~x 类似于-x-1
    <<   左移动运算符,二进制的位数向左移动,高位丢弃,低位补零
    >>   右移动运算符,二进制的位数向右移动,高位丢弃,低位补零

# 位运算符
a = 60              # 即    0011 1100
b = 13              # 即    0000 1101
a & b               # 12    0000 1100
a | b          # 61    0011 1101
a ^ b                # 49    0011 0001
~a                   # -61     1100 0011
a  <<  2             # 240     1111 0000
a  >>  2             # 15      0000 1111

   

  5. 逻辑运算符

    and  与,即满足所有条件则为真
    or   或,即满足其中之一都为真
    not    非,如果x为true,返回false,x为false,返回true
  

  6. 成员运算符

    in     如果在指定的序列中找到值返回true,否则返回false
    not in    如果在指定的序列中没有找到值返回true,否则返回false

 

  7. 身份运算符
    is      判断两个标识符是不是引用自一个对象
     is not     判断两个标识符是不是引用自不同对象

 

  8. 海象运算符

    1. 海象运算符本质上是一个赋值表达式,具有返回值,不能单独使用,和其他运算符一起使用
# 海象运算符类似于赋值运算符,本质上是一个赋值表达式,具有返回值,不能单独使用,他可以将赋值掺杂在表达式之中,简化代码,没有区分优先级
# 主要应用场景
# 在if后面使用
# if传统用法
  a = 1
  if a > 0: a += 1    # 2
# 使用海象运算符
  if b := 1 > 0: b += 1   # 2

# 在while后面使用,传统
  numbers = [1, 2, 3, 4, 0, 5, 6]; i = 0; j = numbers[i]
  while j != 0:
      print("我是", j, "循环继续!")
      i += 1
      j = numbers[i]
# 使用海象运算符
  numbers1 = [2, 3, 5, 7, 5, 0, 2, 3]
  k = 0
  while x := numbers1[k] != 0:
      print("我是", x, "循环继续!")     # 我是 True 循环继续!
      k += 1

# 在列表中使用
  n = [(m := 1) + 1, m - 1, m * 1, m / 1]  # [2, 0, 1, 1.0]

 

 5. 常用的内置数学函数 

python常用的内置数学函数
  1.abs(x)      返回数字的绝对值                    abs(-2) = 2
  2.max(...)    返回最大值                         max(1,2,3,4,2,1) = 4
  3.min(...)    返回最小值                         min(1,2,3,4,3,2,1) = 1
  4.pow(x,y,z)  x的y次方运算取余z后的值,z为可选参数        pow(3,3) = 27
  5.random.choice(x)    在给定序列中挑选一个随机数         random.choice([1, 2, 3, 4])
  6.random.random()     随机生成一个实数,范围(0,1]之间   random.random()
  7.random.randint(x,y) 随机选取x-y范围内的实数           random.randint(1,10)
  8.random.shuffle(x)  将序列的所有元素随机排序            print(random.shuffle([1,2,3,4,5])) = None 不能直接输入
  9.uniform(x,y) 随机生成一个浮点数,范围在[x,y]之间        random.uniform(1,3) = 1.630618864424037(随机改变)
  10.ramdom.sample(序列, x) 在序列中随机选取x个数          random.sample([1,2,3,4,5,6],3)   随机获取三个数

 

 6. 常用的math函数

python常用的math函数
  9.math.modf(x)     返回x的带符号小数和整数部分   math.modf(-23.45) = (-0.4499999999999993, -23.0)
  10.math.fmod(x,y)   返回x%y的值可带符号,对比正常的x%y取余时当x为负数时,取值会有出入  math.fmod(-22,3) = -1.0 比较 22 % 3 = 2
  11.math.ceil(x)     向上取整                math.ceil(3/2) = 2
  12.math.floor(x)    向下取整                math.floor(10/3) = 3
  13.math.prod(iterable,start)   求iterable中所有值的积,start可选初始值     math.prod((1, 2, 3, 2), start=2) = 24
  14.math.copysign(x,y)    返回x的浮点值取y的正负符号     math.copysign(2,-22) = -2.0
  15.math.fabs(x)     返会x的绝对值                    math.fabs(-22.22) = 22.22
  16.math.lcm(...)    返回输入参数的最小公倍数            math.lcm(2,3,4,6) = 12
  17.math.gcd(...)    返回输入参数的最大公约数            math.gcd(3,6,9,12) = 3
  18.math.sqrt(x)     返回非负x的平方根                 math.sqrt(26) = 5.0990195135927845
  19.math.isqrt(x)    返回非负x的最大整数平方根           math.isqrt(20) = 4
  20.math.perm(n,k)   返回不重复且有顺序的组合,正整数,n>=k,结果为 n! / (n-k)!             math.perm(4.2) = 20
  21.math.comb(n,k)   返回不重复且无顺序的组合,正整数,n>=k,结果为 n! / (k! * (n-k)!)      math.comb(5,2) = 10

 

7. 字符串及其常用函数
  1. 字符串中访问指定的值 
字符串中访问指定的值
  1.用[i]下标表示,从左到右顺序从0开始,从右到左顺序从-1开始
  2.变量[头下标:尾下标],截取字符串区间

 

  2. 字符串改变值

字符串改变值
  1.切片发:拼接 +,截取不需要改变的内容+需要改变的内容
  2.replace函数:newSstr=str.replace(oldstr,newstr)

 

  3. 转义字符

转义字符
  1.\(在行尾时) 表示续行,即可以从下一行继续编辑
  2.\\  反斜杠  即取消\的转义作用
  3.\'  单引号
  4.\"  双引号
  5.\000 空     即执行后显示空行
  6.\n  换行
  7.\r  回车    后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。
  8.r'字符串'   原始字符串,即字符串按照原来的内容输出,没有转义作用

 

   4. 字符串格式化

字符串格式化(format % value)
  %s  格式化字符串
  %d  格式化整数
  %nd 设置输入数字长度,不够则在前面空格补齐,n为0时用0补齐
  %.nf n表示保留几位小数

  例:print("我是%s,今年0%d,我会%.2f!" % ('小明', 22, 22.22222))  # 我是小明,今年022,我会22.22!

  

  5. 字符串format函数

字符串format函数(字符串.format(value))
  1.如果{}中没有具体的下标,会依次进行替换value值
      例:print('我叫{},今年{}岁!'.format('小红', 23))  # 我叫小红,今年23岁!
  2.如果{}中设置了具体下标,则会按要求进行替换
      例:print('我叫{1},今年{0}岁!'.format(12, '小红', 23))  # 我叫小红,今年12岁!
  3.可以设置具体关键字进行替换value值
      例:print('我是{name},{sex},今年{age}岁!'.format(sex='男', name='强子', age=27))  # 我是强子,男,今年27岁!
  4.使用**传递字典作为关键字传递
      例:dict0 = {'name': '修勾', 'sex': '女', 'age': 24}
         print('我叫{name:s},{sex:s},今年{age:d}'.format(**dict0))  # 我叫修勾,女,今年24
  5.模板字符串 %
      例:print(Template('我叫$name,今年$age').substitute({'name':'python','age':22}))   # 我叫python,今年22
  6.f 万金油用法:f"{变量}",可以面向对象,字典等
      例:dict1 = {'name': '小脑斧', 'sex': '女', 'age': 21}
         print(f"我叫{dict1['name']},{dict1['sex']},今年{dict1['age']}")  # 我叫小脑斧,女,今年21

  

  6. 三引号

# 三引号,允许字符串跨行,包含特殊字符,单引号和双引号都可以
para_str = '''这是一个多行字符串的实例
            多行字符串可以使用制表符
            TAB ( \t )。
            也可以使用换行符 [ \n ]。
         '''

 

   7. 常用的字符串函数

字符串常用函数
  1.capitalize()    将字符串第一个字母换为大写
  2.center(width,fillchar)  返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
  3.count(str,初始范围值,结束范围值) 返回 str 在指定字符串里面出现的次数
  4.endswith(str,初始范围值,结束范围值)  检查字符串是否以 obj 结束,是返回true,否则false
  5.find(str,初始范围值,结束范围值)   检查str是否在指定的字符串范围内,如果包含返回开始的索引值,否则返回-1
  6.index(str,初始范围值,结束范围值)  语法跟find一样,但是它会在不匹配的时候返回一个错误信息
  7.isalnum()   用来筛选都是字母或者数字的字符串
  8.isalpha()   用来筛选都是字母或者中文的字符串
  9.isdigit()   用来筛选只包含数字的字符串
  10.islower()  用来筛选都是小写字母的字符串
  11.isupper()  用来筛选都是大写字母的字符串
  12.join(seq)  以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
  13.len(str)   返回字符串长度
  14.lower()    转换字符串中所有的大写字母为小写字母
  15.upper()    转换字符串中所有的小写字母为大写字母
  16.lstrip()   截掉字符串左边的空格或者指定字符串(有参数时)
  17.max(str)   返回字符串中最大的字符
  18.min(str)   返回字符串中最小的字符
  20.replace(old,new) 字符串替换
  21.rfind(str) 类似于find,但是是从右边开始查找
  22.rindex(str)类似于index,但是是从右边开始查找
  23.ljust(width,fillchar)  左填充,没有指定参数用空格填充
  24.rjust(width,fillchar)  右填充,没有指定参数默认用空格填充
  25.rstrip(char) 删除字符串末尾的空格或指定字符
  26.split()    将字符串以参数为分隔符进行截取
  27.strip()    lstrip和rstrip的和写,移除字符串首尾的空格或指定字符串
  28.swapcase() 将字符串的大写转为小写,小写转为大写
  29.titl()     返回标题化字符串,即所有单词首字母为大写,其余为小写

 

版权声明:本文为无敌小豆包原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chf333/p/16820875.html