Python基础知识盲点(根据廖雪峰老师的教程网站学习)
作者:互联网
之前主要使用Java和C++作为自己的编程语言,最近想要全面的学习python,所以开始从基础学起,我是根据廖雪峰老师的[python网站学习](https://www.liaoxuefeng.com/wiki/1016959663602400)学习的,之前用python做项目的时候学习过一点,但是不系统,借此博客把不会的知识点放在这里用以之后的复习。
一、python基础
python用#表示注释
python字符串中如果想要使用一些特殊字符可以用转义字符 \ 来表示
空值用None表示
双除号//表示地板除,相除结果仍然是整数,比如
10//3
结果为3
三种编码:
ASCII编码:只有英文数字和一些特殊的符号,每一个字符占一个字节
Unicode编码:统一了所有语言到一个编码里面,其标准仍然在发展,每一个字符占两个字节
UTF-8编码:可变长编码,Unicode编码中不同的字符编译成不同的字节
列表:list
classmates = ['Michael', 'Bob', 'Tracy']
len(classmates) #,获得列表的长度,结果为3
# 其访问和数组类似,下表从0开始,如果下标是负数的话表示倒数第几个,如classmates[-2]表示倒数第二个
classmates.append('Adam')# 追加元素
classmates.insert(1, 'Jack') #插入元素
classmates.pop() #删除末尾元素
classmates.pop(1) #删除指定位置元素
classmates[1] = 'Sarah' #直接赋值
s = ['python', 'java', ['asp', 'php'], 'scheme'] #元素类型也不一样,甚至可以包含列表
元组:tuple
classmates = ('Michael', 'Bob', 'Tracy') #元组一旦初始化就不能更改,用以代码的安全性
条件判断
其格式为:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
循环
Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
字典:dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
字典因为有索引表,所以查找会很快
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
dict的key必须是不可变对象
二、高级特性
切片
切片是用来取出列表中某一个范围内的元素
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
L[0:3] # 取出['Michael', 'Sarah', 'Tracy']
# L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。如果第一个索引是0,还可以省略
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple
字符串’xxx’也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:
迭代
迭代就是循环遍历列表或者元组
列表生成器
列表生成器用来生成列表
list(range(1, 11)) #生成[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[x * x for x in range(1, 11)] # 生成[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[x * x for x in range(1, 11) if x % 2 == 0] #增加了判断,生成[4, 16, 36, 64, 100]
[m + n for m in 'ABC' for n in 'XYZ'] #使用两层循环生成全排列['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
# 接下来用来输出文件夹下的文件
import os # 导入os模块,模块的概念后面讲到
[d for d in os.listdir('.')] # os.listdir可以列出文件和目录
生成器
生成器generator相对于列表生成器来说她是在循环中生成的
三、函数式编程
map函数
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
def f(x):
... return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
list(r)
# 输出[1, 4, 9, 16, 25, 36, 49, 64, 81]
reduce函数
reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
filter
过滤
sorted
排序函数
sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
sorted([36, 5, -12, 9, -21], key=abs)
匿名函数
比如lambda表达式
list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
标签:classmates,函数,Python,元素,list,盲点,基础知识,python,列表 来源: https://blog.csdn.net/weixin_45963815/article/details/122635504