天天看点

Python基础框架总结1.数据类型2. 三大结构

文章目录

  • 1.数据类型
    • 1.1.不可变数据类型
        • 1. Bool类型
        • 2.数值类型
        • 3.字符串类型
        • 4.元组类型tuple
    • 1.2. 可变数据类型
        • 1. 列表类型list
        • 2.字典类型dict
        • 3.集合类型set
  • 2. 三大结构
    • 1.顺序结构
    • 2.分支结构
      • 2.1. if
      • 2.2. if ... else...
      • 2.3. if...elif...else...
      • 2.4. 其它注意事项
    • 3. 循环结构
      • 3.1. while循环
      • 3.2 .for循环
      • 3.3. 循环 + else
      • 3.4. 其它注意事项

1.数据类型

1.1.不可变数据类型

1. Bool类型

  1. 只有True和False两个值
  2. 可以进行算术运算,True的值为1,False的值为0

2.数值类型

  1. int类型: 整型没有最大位数限制,受限于内存的大小,和传统语言有一定区别

    1.1. bin(n)函数将n转换为二进制

    1.2. oct(n)函数将n转换为八进制

    1.3. hex(n)函数将n转换为十六进制

  2. float类型: 实数类型,默认17位精度,也就是16位小数
  3. complex类型: 复数类型,由实部和虚部构成,形式为real + (imag)j 组成,虚部以J或j结尾

    3.1. 使用变量名.real方式查看实部

    3.2. 使用变量名.imag方式查看虚部

    3.3. 使用变量名.conjudate()函数查看共轭复数,注意调用时函数

3.字符串类型

  1. str类型,由引号包裹的字母数字特殊字符等等,引号可以为单引号,双引号,三引号.
  2. 字符串支持索引方式获取子串,第一个元素的索引值为0,依次递增
  3. 字符串的切片: 字符串名[start : stop : sep] start代表开始索引,stop代表结束索引,sep代表步长
  4. 字符串拼接: 使用+拼接两个字符串
  5. 字符串重复: str*n 获得n个原字符串组成一个字符串
  6. 常用索引函数:

    6.1. 查找子串出现次数:str.count(sub[,start[,stop]]) sub指定查找值,start和stop分别代表开始和结束索引值,可省略不写

    6.2. 查找是否存在子串:

    6.2.1. str.find(sub[,start[,stop]]) 找到返回子串第一次出现的开始索引,找不到返回-1 rfind()函数返回最后一次子串出现的开始索引

    6.2.2. str.index(sub[,start[,stop]]) 找到查找值返回查找值第一次出现索引,找不到直接报错, rindex()函数返回最后一次子串出现的开始索引

  7. 字符串的分割函数:

    7.1. 普通分割str.split(sep,maxsplit) sep指定分隔符,maxsplit分割次数,以列表形式返回分割后的字符串

    7.2. 按行分割:str.splitlines(keepands) 只能按照\n或\r分割,keeppands只能是True或False,选择显不显示换行符

  8. 字符串替换函数:

    8.1. str.replace(old,new) old原值,new新值

  9. 字符串大小写转换函数

    9.1. str.lower() 全部转小写

    9.2. str.upper() 全部转大写

    9.3. str.swapcase() 反转大小写

    9.4. str.capitalize() 首字母大写,其余小写

  10. 去除两端特殊字符: str.strip(chars=) 默认去除空格,可以指定:\t制表符\n换行\r回车符 lstrip()和rstrip()可以分别去除左右端字符
  11. 字符串合并函数

    11.1. sep.join([str1,str2…]) 以sep作为分隔符, 将所有str合并

4.元组类型tuple

  1. 元组可以使用变量名 = (value1,value2…) 方式定义,当只有一个值的时候需要在值的后面加一个逗号,表示是元组
  2. 使用tuple()函数可以将其它数据类型转换为元组
  3. 元组不限制元素的数据类型’’
  4. 元组元素不支持修改
  5. 元组支持索引和切片: tuple[start:stop:sep]

1.2. 可变数据类型

1. 列表类型list

  1. 列表可以直接使用变量名 = [value1,value2…] 的方式定义.
  2. 使用list()函数可以将其它数据类型转换为列表类型
  3. 列表中的数据类型不限制
  4. 列表的索引和切片:

    4.1. list[start:stop:sep] 和字符串索引切片方式相同, 开始索引,结束索引,步长

    4.2. 由于列表内部可以存放列表,所以列表可以是多维列表, 支持多维列表切片,list[][][]…

  5. 列表添加元素函数:

    5.1. list.append(list2): 将括号中的内容作为一个整体,追加到列表的最后,作为一个元素

    5.2. list.extend(list2): 将括号中的内容拆解为单个字符,每个作为一个元素追加到列表的最后

    5.3. list.insert(index,list2): 将list2作为一个元素.插入在指定的index索引前面,注意是前面…

  6. 列表删除元素函数:

    6.1. del list[index] del可谓是万能删除,删除所有…

    6.2. list.chear() 清空列表,但列表存在

    6.3. list.pop(index) 参数列表中写入删除的索引,默认删除最后一个元素

    6.4. list.remove(value) 用于删除列表中第一个与参数匹配的项, 若删除元素重复,需要执行多次

  7. 列表查找元素函数:

    7.1. in 和 not in 函数,判断一个元素是否在列表中

    7.2. list.index(value) 判断元素在列表中第一次出现的位置,若元素不存在,则报错

    7.3. list.count(value) 判断元素出现次数

  8. 列表元素排序函数:

    8.1. list.sort(reverse) 一般用于数值排序,对其它类型可能错误, reverse为Bool类型,默认为False升序排列,指定为True则降序排序

    8.2. list.reverse() 列表元素排列反转

2.字典类型dict

  1. 字典使用一对大括号定义: dict = {keys1:value1,keys2:value2…},一个键对应一个值,若键重复,则保留最后一次赋值
  2. 字典添加函数

    2.1. dict[keys] = value 若键存在则修改原值,若不存在,则添加新键值对

    2.2. dict.setdefault(keys,values) 若键存在则不作为,若不存在则添加键值对

    2.3. dict.update(dict2) 将字典2的所有键值对添加到字典1中,若键存在则覆盖原值,类似于列表中extend函数

  3. 字典的删除函数

    3.1. del dict[keys]

    3.2. dict.pop(keys) 弹出键值对

    3.3. dict.clear() 请空字典,但空间还在

  4. 字典修改

    4.1. dict[keys] = values

  5. 字典查询:

    5.1. 字典不支持切片

    5.2. dict[keys] 返回对应值

    5.3. dict.get(keys,default) 由keys查找对应值,若果keys不存在,则返回default值

    5.4. dict.keys() 返回所有键组成的列表

    5.5. dict.values() 返回所有值组成的列表

    5.6. dict.items() 返回所有键值对构成的列表

3.集合类型set

  1. 集合中的元素不重复,并且无序
  2. 使用set()函数定义集合
  3. 集合添加元素函数

    3.1. set.add(value) 将value添加到集合中

    3.2. set.update(list) 将列表中的所有元素添加到集合中,添加过程中自动去重

  4. 集合删除元素函数:

    4.1. set.pop() 由于无序所以无法指定索引,随即删除一个元素,并返回这个元素

    4.2. set.remove(value) 删除value

    4.3. set.clear() 清空集合

2. 三大结构

1.顺序结构

程序执行自伤而下依次执行

2.分支结构

2.1. if

当满足if后条件,则执行if中的语句,否则不执行

a=1
b=1
c=2
if a==b and a<c:
	print('111')
           

2.2. if … else…

当满足if条件时,执行if中的语句,否则执行else中的语句

a=1
b=1
c=2
if a==b and a>c:
	print('111')
esle:
	print('222')
           

2.3. if…elif…else…

如果不满足if条件,则判断是否满足elif条件,否则执行else语句

a=1
b=1
c=2
if a!=b:
	print('111')
elif a!=c:
	print('222')
else:
	print('333')
           

2.4. 其它注意事项

2.4.1. 同级if elif else语句只会执行一条,分叉路,每次走只能走一条路

2.4.2. 分支语句可以多层嵌套,将复杂的逻辑结构化

3. 循环结构

3.1. while循环

a = 1
sum = 0
while a<=100:
	sum +=a
	a += 1
           

3.2 .for循环

sum=0
for a in range(1,101):
	sum += a
           

3.3. 循环 + else

当循环正常结束时, 执行else语句

for i in range(10):
    print(i, end=', ')
else:
    print('abc')
# 输出:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, abc
           

当循环被中断时, 不执行else

a = 0
b = 10
while a < b:
    print(a, end=', ')
    if a == 5:
        break
else:
    print("abc")
# 输出: 0, 1, 2, 3, 4, 5, 
           

3.4. 其它注意事项

3.4.1. python 不支持do…while…循环语句

3.4.2. while和for循环可以相互转换