目录
python基础知识点拾遗
将计算所得结果分别赋值给多个变量
两变量数值进行交换
多个变量同时进行赋值
取出三位数中的百位数十位数个位数(水仙花数)
序列
列表
复制与排序
赋值
排序
元组(tuple)
集合(set)
函数
形参与实参
return语句
变量作用域
可变长度参数
a,b=map(int,x.split())
上述代码将x分割所得到的结果分别赋值给了a和b
a,b=b,a
Pi,t,n=0.0,1.0,1
for i in range(100,1000):
i=n//100
j=n//10%10
k=n%10
if n==i**3+j**3+k**3:
print(n)
常用序列:列表、元组、字典、集合、字符串
序列 常用操作:索引、长度、组合(序列相加)、重复(乘法)、分片、检查成员、遍历、最小值和最大值、求和
排序a.sort()
翻转a.reverse()
from copy import *
a=[1,3,1,4,['i','love']] #原始对象
b=a #赋值,穿对象的引用(类似于起了一个代称)
c=copy(a) #对象拷贝,浅拷贝
d=deepcopy(a) #对象拷贝,深拷贝
a.append(520) #修改对象a
a[4].append('you') #修改对象a中的['a','b']数组对象
print('a=',a)
print('b=',b) #改变原始对象数值,b会跟着改变
print('c=',c)
print('d=',d)
#运行结果
a= [1, 3, 1, 4, ['i', 'love', 'you'], 520]
b= [1, 3, 1, 4, ['i', 'love', 'you'], 520]
c= [1, 3, 1, 4, ['i', 'love', 'you']]
d= [1, 3, 1, 4, ['i', 'love']]
针对赋值、浅拷贝、深拷贝,需要有充分的理解
赋值:顾名思义,就是单纯的起一个别名,其内容和原始数据完全相同;原始数据发生变动,赋值的新变量(别名)对应的内容也会跟着变动。
浅拷贝copy:浅拷贝的结果,允许对原始对象的修改(无新元素变更)同步到浅拷贝获得的变量中,但是新增的元素不会同步。
深拷贝deepcopy:深拷贝的结果,即生成一个完全相同的、独立的变量,内容与原始数据相同,但是原始数据的变动均不会同步到新的变量中。
from random import *
a=list(range(10))
print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
shuffle(a) #打乱顺序,原地
print(a) #[4, 5, 8, 0, 3, 7, 1, 2, 9, 6]
a.sort() #升序排序,原地
print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a.sort(reverse=True) #降序排序,原地
print(a) #[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
b=sorted(a) #产生一个新列表,升序排序
print(b) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
c=sorted(a,reverse=True) #产生新列表,降序排序
print(c) #[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
a.reverse() #原地排序
print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
一个易混知识点:
sort和sorted的区别
sort是对本身排序
sorted是生成一个新的变量
内置、有序、不可变序列;同一个元组中元素的类型可以不同。
tip:里面可以同时存在多种数据类型,如列表、整型等
a=(9,8,45,5.4,['as',45])
元组的创建
a=(78,8,8,88)
print(a)
b=45,4,5,455,4 #此处会默认将b定为元组
print(b)
c=()
print(c) #空元组
d=('i')
print(d)
元组和列表的区别:
1、tuple函数可以冻结列表,list函数可以融化元组。
2、元组的访问和处理速度比列表快。
3、元组可以用作字典的键,而列表不可。
4、列表可变,而元组不可变
5、如果元组中包含可变序列,此序列照样可变
x=([45,46],99)
x[0][0]=96
print(x)
x[0].append(95)
print(x)
([96, 46], 99)
([96, 46, 95], 99)
此外,列表和元组都是可以重复的
{}表示
内置、无序、可变序列每个元素类型可以不同
一个集合中的元素不能重复(此性质可以用于去重)
无序的性质导致python不一定会按照你输入数据的顺序进行输出
a_set={45,8,5,8,6}
print(a_set)
有关set的函数
a={45,122,3}
a.add(4)
a.pop()
a.clear()
del a
1、一般类型的数据作为参数相当于传值调用,可变类型的序列作为参数相当于传地址调用。
2、定义函数时不需要指定参数的类型和返回值的类型(不同于C语言)。
1、return语句用于函数体可以结束函数运行并返回return后的表达式。
2、没有return语句的函数或者return语句后没有表达式的函数,其返回值为None。
3、任何函数都可以作为表达式的一份子,也可以作为独立语句调用。
1、局部变量的引用速度比全局变量快,应考虑优先使用。
2、尽量避免使用全局变量。
3、一个变量已经在函数外定义,如果在函数内需要使用该变量,并将改变变量的结果反应到函数之外,可以在函数内用global声明这个变量。
4、在函数内部使用global关键字可以将一个变量声明为全局变量。
1个*解包
def demo(*p):
print(p)
demo(5,2,0)
(5, 2, 0)
Process finished with exit code 0
两个*解包:用于字典
def demo(**p): #**关键字参数-解包操作符
for item in p.items():
print(item)
demo(a=5,b=2,c=0)
('a', 5)
('b', 2)
('c', 0)
Process finished with exit code 0
lamda表达式
f=lambda x,y,z:x+y+z
print(f(1,2,3))
f=lambda x,y=2,z=3:x+y+z
print(f(4))
print(f(4,z=5,y=6))
f=[(lambda x:x**2),(lambda x:x**3),(lambda x:x**4)]
print(f[1](3))
6
9
15
27
Process finished with exit code 0
实例
a_list=[1,3,1,4]
print(a_list)
b=list(map((lambda x:x*100),a_list))
print(b)
a_dict={'i':99,'love':98,'you':97}
b_list=sorted(a_dict)
print(b_list)
c_list=sorted(a_dict.values())
print(c_list)
d_list=sorted(a_dict.items(),key=lambda x:x[1])
print(d_list)
[1, 3, 1, 4]
[100, 300, 100, 400]
['i', 'love', 'you']
[97, 98, 99]
[('you', 97), ('love', 98), ('i', 99)]
Process finished with exit code 0
今天是备战蓝桥杯第一天,正值寒假假期,首先先把Python基础知识掌握的不好的先复习一下,随后就进行算法以及数据结构的学习,具备一定基础知识后,再进行真题训练。加油鸭!!!