【python知识点总结】第一章 基础知识点

第一节 python基础

一 基础

1、注释

​ 三类注释方法

# 注释1

'''
   注释2
'''

"""
   注释3
"""

二 数据类型和变量

1、运算符

1.1 算术运算符

​ *+ 加 - 减 * 乘 / 除 //整除 %取余 *指数 ()小括号

​ 优先级:()高于** 高于* / // %高于+ -

​ 除有两种:/和//

print(10/3)     # 结果为浮点数3.3333333333333335
print(10//3)    # //结果为整数3
print(10%3)     # /结果为整数1

​ 加减乘则无差别

print(200+100)
print('1024 * 768 =',1024 * 768)

​ 求平方/立方

a=2
answer1=a**2	# 4
answer2=a**3	# 8
1.2 赋值运算符

= 赋值

# 单个变量赋值
num=1
print(num)

# 多个变量赋值
num1,float1,str1=10,0.5,'hello'
print(num1)							# 10
print(float1)						# 0.5
print(str1)							# hello

# 多变量赋相同的值
a=b=10
print(a)							# 10
1.3 复合赋值运算符

先计算算术运算符,再将结果赋值到等号左边

​ += ——>加法赋值运算符

​ -= ——>减法赋值运算符

​ *= ——>乘法赋值运算符

​ /= ——>除法赋值运算符

​ //= ——>整除赋值运算符

​ %= ——>取余赋值运算符

​ **= ——>幂赋值运算符

a=10
a+=1			#a=a+1
print(a)		# 11

b=10
b+=2*3			# b+=6 先算右边的表达式,再算复合赋值
print(b)		# 16
1.4 比较运算符

​ == 判断相等

​ != 不等于

​ > 左大于右,则条件为真

​ < 左小于右,则条件为真

​ >= 左大于等于右,则条件为真

​ <= 左小于等于右,则条件为真

1.5 逻辑运算符

​ and 与,都真则真

​ or 或,都假则假

​ not 非,相反

a=0
b=1
c=2
print((a<b) and (c>b))		# True
print((a<b) or (c>b))		# True
print(not (c>b))			# False
print(a and b)				# 0
print(b and c)				# 2 —— and只要有一个值为0,结果都为0,否则为最后一个非0数字
print(a or b)				# 1
print(a or c)				# 2 —— or只有所有结果为0才为0,否则返回第一个非0数字

2、常量和变量

​ 约定俗成,变量小写,常量大写,直接赋值

​ __xxx__在python中是特殊变量,__xxx或者_xxx变量和函数是非公开的,只有xxx才是公开的,可以直接引用,如abc, PI

​ **命名规范:**①由数字、字母、下划线组成 ②不能数字开头 ③不能使用内置关键字 ④严格区分大小写

​ **命名习惯:**①大驼峰:即每个单词首字母都大写,例如: MyName ②小驼峰:第二个(含)以后的单词首字母大写,例如: myName ③下划

线:例如:my_ name

PI=3.12234
AI=23

a=110_0		# _不影响,方便自己看几位数
b=1.123
my_name='chen'
hisName='Tom'

3、输出换行

​ print表示输出

# 直接输出变量
a=1
b='chloris'
print(a)
print('hello',b)

# 直接输出数字
print(123)

# 直接输出字符串
print('chen')
print("abc")
print('I\'m ok')   			 # \为转义字符
# \n为换行;\t为制表符,4个空格距离
print('hello\nworld')
print('hello\tworld')		# hello	world

# '''  '''表示多行内容,可直接在内部换行,不用加连接符
print('''ds
        sds
        sd''')
print(r'\\\t\\')    		# r' ' 表示中间的字符不转义,直接输出

4、格式化输出

​ %d——>有符号的十进制整数

​ %f——>浮点数

​ %s——>字符串

​ %o——>八进制整数

​ %x——>十六进制整数(小写ox)

​ %c——>字符

​ %u——>无符号十进制整数

​ %e——>科学计数法

print('%.2f' % 3.1415)					# 3.14 —— 小数点后保留两位小数
print('%0.2f',93.45323)					# %0.2f 93.45323
print('%06d' % 23)						# 000023 —— 表示输出的整数显示位数,不足的以0补全,超出的原样输出
print('hello,%s' % 'ww')				# hello,ww
print('hello,%s','ww')					# hello,%s ww
print('age:%d,gender:%d' % (20,True))	# age:20,gender:1

#f'{表达式}' —— f格式化,%s也可以式化
age=18
name='chen'
print('我的名字是%s,今年%d岁了' % (name,age))
print(f'我的名字是{name},今年{age}岁了')
print('我的名字是%s,今年%S岁了' % (name,age))

a='abc'
b=123
print('%c',a)			# %c abc
print('%d' % b)			# 123

python和 C的输出不太一样,不能用 , 一定要用 %,否则是输出全部内容

5、输入

​ input()表示输入,接收到用户输入后,存储到变量中,且将数据当作字符串

a=input('请输入:')
print(a)

6、数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EsB4waec-1673962650093)(E:\Temp\1673093353881.png)]

num=1
num1=1.1
num2='abc'
print(type(num))			# <class 'int'>
print(type(num1))			# <class 'float'>
print(type(num2))			# <class 'str'>

a1=[10,20,30]
print(type(a1))				# <class 'list'>列表
a2=(10,20,30)
print(type(a2))				# <class 'tuple'>元组
a3={10,20,30}
print(type(a3))				# <class 'set'>集合
a4={'name':'Tom','age':19}
print(type(a4))				# <class 'dict'>字典——键值对

7、布尔类型

print(9>8)
print(False)
print(True and False)	# 所有都为true
print(True or False)	# 只要一个为true
print(not False)

8、转换数据类型

​ int(x,[,base])——>将x转换为一个这个数

​ float(x)——>将x抓为一个浮点数

​ str(x)——>将对象x转为字符串

​ eval(str)——>用来计算在字符串中的有效Python表达式,并返回一个对象(该什么就什么)

​ tuple(s)——>将序列s转为一个元组

​ list(s)——>将序列s转为一个列表

a=input('请输入:')				 # 请输入:123
print(a)						# 123
print(type(a))					# <class 'str'>
b=int(a)
print(type(int(a)))				# <class 'int'>
print(type(b))					# <class 'int'>
age=int(input('请输入年龄:'))	# age转为int

str3='1'
str5='(1000,2000,30000)'	
print(type(eval(str3)))			# <class 'int'>
print(type(eval(str5)))			# <class 'tuple'>

三 字符串和编码

1、字符串四种形式

str1='abc'				# 单引号
str2="def"				# 双引号
str3='''I'\m Tom''		# 三引号 —— \为转义符
str4="""k				# 三双引号 —— 和三引号一样,内部换行输出时格式也会换行
lm"""
print(str2)
print(str4)
print(str1[2])			# c —— 用下标精确输出

2、字符串操作方法

2.1 查找

​ 即查找子串在字符串中的位置或者出现的次数

find():检测某个子串是否包含在这个字符串中,如果在则返回子串开始位置下标,不在返回-1;rfind()查找方向为从右侧开始

​ 语法:字符串序列.find(子串,开始位置下标,结束位置下标),开始和结束位置下标省略表示整个字符串序列中查找

index():检测某个子串是否包含在这个字符串中,如果在则返回子串开始位置下标,否则报异常;rindex()查找方向为从右侧开始

​ 语法:字符串序列.index(子串,开始位置下标,结束位置下标)

count():返回某个子串在字符串中出现的次数

​ 语法:字符串序列.count(子串,开始位置下标,结束位置下标)

str='hello world and my name is Tom'
print(str.find('my'))						# 16
print(str.index('an',0,9))					# ValueError: substring not found
print(str.count('a'))						# 2
2.2 修改

​ 通过函数修改字符串中的数据

replace():替换;有返回值,是修改后的新字符串,不会改变原有字符串

​ 语法:字符串序列.replace(旧子串,新子串,替换次数),替换次数不写表示全部替换

split():分割;返回一个列表

​ 语法:字符串序列.split(分割字符,num),num表示分割字符出现的次数,将来返回数据个数为num+1个

join():将列表中的字符串合并为一个大字符串

​ 语法:字符或子串.join(多字符串组成的序列)

​ capitalize():将字符串第一个字符转换成大写,其他字符全部变为小写;字符串序列.capitalize()

​ title():将字符串每个单词首字母转换成大写;字符串序列.title()

​ lower():将字符串中大写转小写;字符串序列.lower()

​ upper():将字符串中小写转大写;字符串序列.upper()

str='hello world and my name is Tom and my home is China'
str1=str.replace('and','but')
print(str)				# hello world and my name is Tom and my home is China
print(str1)				# hello world but my name is Tom but my home is China

list1=str.split('and')
print(list1)			# ['hello world ', ' my name is Tom ', ' my home is China'] —— 会丢失分割字符

list2=['aa','bb','cc','dd','ee']
str2='...'.join(list2)
print(str2)				# aa...bb...cc...dd...ee

​ lstrip():删除字符串左侧空白字符

​ rstrip():删除字符串右侧空白字符

​ strip():删除字符串两侧空白字符

str='   my name is Tom   '
print(str.rstrip())				#    my name is Tom

​ ljust():左对齐,并使用指定字符填充对应长度的新字符串,字符串序列.ljust(长度,填充字符),填充字符默认空格

​ rjust():右对齐,并使用指定字符填充对应长度的新字符串

​ center():居中对齐,并使用指定字符填充对应长度的新字符串

str='nihao'
print(str.center(11,'.'))
2.3 判断

​ 判断真假,返回布尔类型

startswith():检查字符串是否以指定子串开头

​ 语法:字符串序列.startswith(子串,开始位置下标,结束位置下标),不指定下标则表示查找整个字符串

endswith():检查字符串是否以指定子串结尾

​ 语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)

​ isalpha():字符串中至少有一个字符且所有字符都是字母则True

​ isdigit():字符串中只包含数字则True

​ isalnum():字符串中至少有一个字符且所有字符都是字母或数字则True

​ isspace():字符串中只包含空白则True

str='nihao'
print(str.startswith('ni'))			# True

str='nihao123'
print(str.isalpha())				# False

2、ASCII—>Unicode—>UTF-8

​ ASCII码一字节,Unicode两个字节,UTF-8一至六个可变长字节

print(ord('A'))     # 获取字符的整数表示ord()——65
print(chr(66))      # 将编码转为对应的字符chr()——B
print(len('acf'))  	# 计算str中包含多少字符用len()——3

四 使用list和tuple

1、列表list——[ ]

list是列表,可随时添加与删除,一次性存储多个数据且可以为不同类型,列表中的数据允许更改

1.1 定义列表
name=['mack','joy','amy']

输出列表

print(name)

计算列表长度

print(len(name))	# 3
1.2 查找列表元素(下标)
print(name[2])		# 提取第三个元素——amy
print(name[-1])		# 提取倒数第一个元素——amy
print(name[0])		# 提取第一个元素——mack
print(name[-3])		# 提取倒数第三个元素——mack
1.3 查找列表元素(函数) —— 见字符串板块讲解

index():返回指定数据所在位置下标

​ count():统计指定数据在当前列表出现的次数

len():访问列表长度,即列表中数据的个数

list=['Tom','Lili','Lucu','Jack']
print(list.index('Tom'))			# 0
print(list.count('Jack'))			# 1
print(len(list))					# 4
1.4 插入列表元素

append():列表序列.append(数据)

​ extend():列表序列.extend(数据)

insert():列表序列.insert(位置下标,数据)

name.append('bob')		# 插入到表尾——append不用指定位置,直接表尾
print(name)				# ['mack', 'joy', 'amy', 'bob']
name.append([1,2])		# append插入序列
print(name)				# ['mack', 'joy', 'amy', [1, 2]]

name.extend('Ali')		# extend插入序列——将数据拆开追加到列表
print(name)				# ['mack', 'joy', 'amy', 'A', 'l', 'i']
name.extend([1,2])
print(name)				# ['mack', 'joy', 'amy', 1, 2]

name.insert(1,'davi')	# 插入到第一个元素后——insert需要指定位置
print(name)				# ['mack', 'davi', 'joy', 'amy', 'bob']
1.5 删除列表元素

​ del():del 目标

pop():删除指定下标,默认最后一个;可以返回删除的数据;列表序列.pop(下标)

remove():删除列表这第一个匹配项;列表序列.remove(数据)

​ clear():清空列表

del name
print(name)				# name 'name' is not defined
del name[1]
print(name)				# ['mack', 'joy', 'amy']

name.pop()				# 不指定下标删除末尾元素
print(name)				# ['mack', 'davi', 'joy', 'amy']
name1=name.pop(2)		# 删除第3个位置的元素,同时可以返回被删除的元素
print(name)				# ['mack', 'davi', 'amy']
print(name1)			# joy

name.remove('joy')
print(name)				# ['mack', 'davi', 'amy']

name.clear()
print(name)				# []
1.6 修改列表元素

修改指定下标的数据

name[0]='michel'	# 替换第一个元素
print(name)			# ['michel', 'davi', 'amy']
name[1]=20			# 可以替换不同类型
print(name)			# ['michel', 20, 'amy']

列表排序 sort()

​ 列表序列.sort(key=None,reverse=False)

L=[2,5,1,3,7]
L.sort()				# 默认reverse=False升序排序
print(L)				# [1, 2, 3, 5, 7]
L.sort(reverse=True)	# reverse=True降序排序
print(L)				# [7, 5, 3, 2, 1]

列表逆序 reverse()

L=[2,5,1,3,7]
L.reverse()
print(L)		# [7, 3, 1, 5, 2]

1.7 列表复制copy()
name=['mack','joy','amy']
name1=name.copy()
print(name1)

1.8 列表嵌套

​ 即一个列表里包含了其他的子列表

student=['a',['b'],['boy','girl'],'c']
print(student)				# ['a', ['b'], ['boy', 'girl'], 'c']
print(len(student))			# 输出列表长度——4
print(student[2][0])		# 按照二元数组位置进行输出——boy
student[1].append('h')		# 插入元素,要指定第几个列表
print(student)				# ['a', ['b', 'h'], ['boy', 'girl'], 'c']

1.9 判断数据是否存在

in:判断指定数据是否在某个列表序列中,在则True

​ not in:是否不在序列中

list=['Tom','Lili','Lucu','Jack']
print('Tom' in list)					# True
print('Sum' not in list)				# True

1.10 列表遍历
# while循环
name=['mack','joy','amy']
i=0
while i<len(name):
    print(name[i])
    i+=1

# for循环
name=['mack','joy','amy']
for i in name:
    print(i)

2、元组tuple——( )

tuple是元组,可以存储多个数据,一旦初始化后不能修改

2.1 定义元组
# 多个元组数据
hobby=('basketball','tennis','football')
# 单个元组数据
sex=(1,)			# 元组中只有一个元素时必须加,与小括号进行区别
print(sex)			# 输出也会区别——(1,)

2.2 查找元组元素(下标)
t1=('aa','bb','cc','dd')
print(t1[2])

2.3 查找元组元素(函数)

index():查找某个数据,若存在则返回对应的下标,否则报错

​ count():统计某个数据在元组中出现的个数

len():统计元组中数据个数

t1=('aa','bb','cc','dd')
print(t1.index('bb'))
print(t1.count('cc'))
print(len(t1))

​2.4 元组嵌套
t=('a','b',['A','B'])
t[2][0]='X'		# 内嵌列表可以更改值,因为元组指向的列表不变
print(t)		# ('a', 'b', ['X', 'B'])

五 条件判断

1、if…elif…else

s=input('age=')			# input输入是字符串
age=int(s)				# 转换为整数
if 0<=age<=6:
    print('kid')
elif age>=18:
    print('adult')
else:
    print('teenager')

2、三目运算符

条件成立执行的表达式 if 条件 else 条件不成立执行的表达式

a=2
b=2
c=a if a>b else b
print(c)				# 2

六 循环

1、for … in …

for (临时变量) in (序列):

​ 代码1

直接作用于for循环的数据类型:

​ (一)集合数据类型:list、tuple、dict、set、str

​ (二)generator:生成器和带yield的generator function

迭代输出列表的元素

name=['mack','joy','amy']
for a in name:
    print(a)		# mack joy amy

迭代计算范围内的值

sum=0
for x in [1,2,3,4,5,6]:		# 直接写成数组形式表示x在1-6之间
    sum+=x
print(sum)		# 21

sum=0
for y in range(101):		# 数值太多时用range生成整数序列
    sum+=y
print(sum)		# 5050

number=list(range(10))		# 转为列表输出
for numbers in number:
    print(numbers)

2、while

​ 表示方法与c一样

sum=0
n=99
while n>0:
    sum+=n
    n=n-2
print(sum)		# 2500

# 九九乘法表,while嵌套
i=1
while i<10:
    j=1
    while j<=i:
        print(f'{i}*{j}={i*j}',end='\t')	# print结束符可以更改
        j+=1
    print()									# 空的print只换行
    i+=1

3、break

n=1
while n<=100:
    if n>10:
        break		# 退出循环
    print(n)		# 1 2 3 4 5 6 7 8 9 10
    n+=1
print('END')

4、continue

n=0
while n<10:
    n=n+1
    if n%2==0:
        continue	# 跳过本次循环
    print(n)		# 1 3 5 7 9
print('END')

continue表示跳过本次循环,即它下面的代码都不执行,若没有改变变量值的代码很容易造成死循环,

必须在continue之前修改计数器

5、else

​ 当循环正常结束后要执行的代码放else中,非正常情况不执行

5.1 while…else:
# 循环正常结束时
i=1
while i<5:
    print("你好")
    i+=1
else:
    print("早上好")		# 你好	你好	你好	你好	你好	早上好

# break 结束
i=1
while i<5:
    print("你好")
    if 3==i:
        break
    i+=1
else:
    print("早上好")		# 你好	你好	你好 —— 不会执行else
    
# continue 结束 
i=1
while i<5:
    print("你好")
    if 3==i:
        i+=1
        continue
    i+=1
else:
    print("早上好")		# 你好	你好	你好	你好	早上好 —— 会执行else

5.2 for…else:
# 循环正常结束
str1='itheima'
for i in str1:
    print(i)
else:
    print('正常结束')		# i t h e i m a 正常结束

# break 结束
str1='itheima'
for i in str1:
    if 'e'==i:
        break
    print(i)
else:
    print('正常结束')		# i t h 
    
# continue 结束 
str1='itheima'
for i in str1:
    if 'e'==i:
        continue
    print(i)
else:
    print('正常结束')		# i t h i m a 正常结束

七 使用dict和set

1、字典dict——{ }

​ dict即dictionary或map,用键—值存储,是可变类型

​ dict的key是不可变对象,即可以用字符串、整数作为key,但是不能用list,不支持下标查找,按键名查找

1.1 创建字典
d={'Mich':95,'Bob':75,'Tracy':85}
print(d)		# {'Mich': 95, 'Bob': 75, 'Tracy': 85}

# 创建空字典
dict={}			# 直接创建
dict1=dict()	# 利用dict函数创建

打印对应值

print(d['Mich'])	# 95

1.2 增

字典序列[key]=值,若key存在则修改值,若不存在则新增

d={'Mich':95,'Bob':75,'Tracy':85}
d['Tom']=56
print(d)			# {'Mich': 95, 'Bob': 75, 'Tracy': 85, 'Tom': 56}
d['Bob']=100
print(d)			# {'Mich': 95, 'Bob': 100, 'Tracy': 85}

1.3 删

​ del:删除字典或者字典中指定的键值对

​ pop():清除指定键值对

​ clear():清空字典

d={'Mich':95,'Bob':75,'Tracy':85}
d.pop('Bob')
print(d)			# {'Mich': 95, 'Tracy': 85}
del d['Bob']
print(d)			# {'Mich': 95, 'Tracy': 85}

d.clear()
print(d)			# {}

del(d)

1.4 改

字典序列[key]=值,与增的操作一样

d={'Mich':95,'Bob':75,'Tracy':85}      
d['Bob']=100
print(d)         	# {'Mich': 95, 'Bob': 100, 'Tracy': 85}

1.5 查

key值查找,若存在则返回对应的值,否则报错

get():字典序列.get(key,默认值),key不存在则返回默认值,默认None

keys():查找字典中所有的key,返回可迭代对象(可for遍历)

values():查找字典中所有的value,返回可迭代对象(可for遍历)

items():查找字典中所有键值对,返回可迭代对象(可for遍历),里面的数据是元组

​ in:判断key是否在字典中,返回布尔类型

d={'Mich':95,'Bob':75,'Tracy':85}
print(d['Mich'])			# 95

print('Boo' in d)			# 通过in直接判断——False

print(d.get('boo'))			# 通过get方法判断——默认返回None
print(d.get('boo',-1))		# 设置不存在时返回值-1

print(d.keys())				# dict_keys(['Mich', 'Bob', 'Tracy'])

print(d.values())			# dict_values([95, 75, 85])

1.6 字典遍历
1.6.1 遍历所有Key
d={'Mich':95,'Bob':75,'Tracy':85}
for i in d.keys():
    print(i)			# Mich	Bob		Tracy	

1.6.2 遍历所有value
d={'Mich':95,'Bob':75,'Tracy':85}
for i in d.values():
    print(i)			# 95	75	85

1.6.3 遍历字典的元素
d={'Mich':95,'Bob':75,'Tracy':85}
for i in d.items():
    print(i)						# ('Mich', 95)	('Bob', 75)		('Tracy', 85)

#将key和value拆包
d={'Mich':95,'Bob':75,'Tracy':85}
for key,value in d.items():
    print(f'{key}={value}')			# Mich=95	Bob=75	Tracy=85

2、集合set——( )

​ set只有key,没有value,key不能重复

​ 集合中数据没有顺序,不支持下标操作,是可变类型

2.1 创建集合

​ 用{}或者set(),空集合创建只能set()

s=set([4,2,3])
print(s)				# {2, 3, 4}
s2={10,20,30}
print(s2)				# {10,20,30}
s2={10,20,30,40,50}
print(s2)				# {40, 10, 50, 20, 30} —— 没有顺序

s1=set([1,1,2,2,2,3])
print(s1)				# 有重复的key不会多显示 —— {1, 2, 3}
s2={10,20,30,10,30}
print(s2)				# {10,20,30}

s2=set('abcde')
print(s2)				# {'a', 'e', 'd', 'b', 'c'} —— 会分割成单独字符

#创建空集合
s2=set()
print(s2)				# set()

2.2 增

​ add():增加单个数据

​ update():追加的数据是序列

s=set([4,2,3])
s.add(5)		# 若key重复,则添加不成功
print(s)		# {2, 3, 4, 5}

s2={10,20,30,10,30}
s2.update([100,200])
print(s2)		# {100, 200, 10, 20, 30}

2.3 删

​ remove():删除集合中指定的数据,如果数据不存在报错

​ discard():删除集合中指定的数据,如果数据不存在不报错

​ pop():随机删除集合中某个数据,并返回这个数据

s={4,2,3,5}
s.remove(2)
print(s)		# {3, 4, 5}

s.discard(4)
print(s)		# {2, 3, 5}

del_num=s.pop()
print(del_num)	# 2
print(s)		# {3, 4, 5}

2.4 查

​ in/not in

s=set([4,2,3,5])
print(10 in s)	# False

2.5 集合的交集和并集
s=set([4,2,3])
s1=set([1,1,2,2,2,3])
print(s&s1)		# {3}
print(s|s1)		# {1, 2, 3, 4, 5}

八 公共操作

1、运算符

运算符描述支持的容器类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典
str1='aa'
str2='bb'
list1=[1,2,3]
list2=[10,20,30]
t1=(1,2)
t2=(10,20)
dict1={'name':'python'}
dict2={'age':20}

# 合并+
print(str1+str2)		# aabb
print(list1+list2)		# [1, 2, 3, 10, 20, 30]
print(t1+t2)			# (1, 2, 10, 20)	

# 复制*
print(str1*2)			# aaaa
print(list1*1)			# [1, 2, 3]
print(t1*4)				# (1, 2, 1, 2, 1, 2, 1, 2)
print('-'*10)			# ----------

# 存在
print('10' in str1)		# False
print(1 in list1)		# True
print(20 not in t1)		# True
print('name' not in dict1)			# False
print('name' in dict1.keys())		# True
print('name' in dict1.values())		# False

2、公共方法

​ len():计算容器中元素个数

​ del/del():删除

​ max():返回容器中最大值

​ min():返回容器中最小值

​ range(start,end,step):生成从start到end的数字,步长为step,供for循环使用;不包含end位,step默认1,默认从0开始

​ enumerate():将一个可遍历的数据对象(列表、元组、字符串)组合为一个索引序列,同时列出数据和数据下标,用于for循环;

​ enumerate(可遍历对象,start=0),start设置遍历数据下标的起始值,默认0

str1='abcdefg'
list1=[1,2,3,4]
t1=(1,2)
s1={10,20,30,40,50,60}
dict1={'name':'python','age':20}

# len
print(len(str1))		# 7
print(len(list1))		# 4
print(len(t1))			# 2
print(len(s1))			# 6
print(len(dict1))		# 2

# del
del str1
del list1
del(list1[2])		
print(list1)			# [1, 2, 4]
del dict1
del(dict1['name'])
print(dict1)			# {'age': 20}

# max/min
print(max(str1))		# g
print(min(list1))		# 1

# range
for i in range(1,10,2):
    print(i)			# 1 3 5 7 9
for j in range(4):
    print(j)			# 0 1 2 3

# enumerate
list1=['a','b','c','d']
for i in enumerate(list1):
    print(i)			# (0, 'a')	(1, 'b')	(2, 'c')	(3, 'd')
for i in enumerate(list1,start=2):
    print(i)			# (2, 'a')	(3, 'b')	(4, 'c')	(5, 'd')

3、容器类型转换

​ tuple():将某个序列转为元组

​ list():将某个序列转为列表

​ set():将某个序列转为集合

list1=['a','b','c','d']
s1={10,20,30,40,50}
t1=(1,2,3)
print(tuple(list1))

九 推导式(生成式)

​ 即化简代码量

1、列表推导式

​ 作用:用一个表达式创建一个有规律的列表或控制一个有规律的列表;[xx for xx in range()]

# 创建1-10的列表——for方法
list=[]
for i in range(1,11):
    list.append(i)
print(list)				# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# while方法
list1=[]
i=1
while i<11:
    list1.append(i)
    i+=1
print(list1)			# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 列表推导式
list2=[i for i in range(1,11)]		# for左边的i为返回值,[]表示接收数据为列表,推导式中for循环代码相同
print(list2)			# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 在列表推导式中加条件判断if
list3=[i for i in range(1,11) if i%2==0]	# if也是直接抄进去
print(list3)			# [2, 4, 6, 8, 10]

# 多个for循环列表推导式
list4=[(i,j) for i in range(1,3) for j in range(3)]
print(list4)			# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

2、字典推导式

​ 作用:快速合并列表为字典或提取字典中目标数据;{xx1:xx2 for … in …}

# 创建一个字典,key为1-5数字,values为key的平方
# for方法
dict1={}
for i in range(1,6):
    dict1[i]=i**2
print(dict1)			# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 字典推导式
dict2={i:i**2 for i in range(1,6)}	# 字典即{},返回值为k:v
print(dict2)			# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 将两个列表合并为一个字典
list1=['name','age','gender']
list2=['Tom',20,'man']
dict1={list1[i]:list2[i] for i in range(len(list1))}	# 两个列表数据个数相同,len(都可以),但若不同,则统计个数少的
print(dict1)			# {'name': 'Tom', 'age': 20, 'gender': 'man'}

# 提取字典中目标数据
dict1={'Mich':95,'Bob':75,'Tracy':85}
count1={key:value for key,value in dict1.items() if value>=80}	# items获取所有数据并判断数据
print(count1)			# {'Mich': 95, 'Tracy': 85}

3、集合推导式

{xx for xx in …}

# 创建集合为列表的2次方
list1=[1,1,2]
set1={i**2 for i in list1}
print(set1)			# {1, 4} —— 集合去重功能

本文根据廖雪峰老师python课程和黑马程序员python课程进行记录

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值