Python教程

Python基础知识盲点(根据廖雪峰老师的教程网站学习)

本文主要是介绍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]))
这篇关于Python基础知识盲点(根据廖雪峰老师的教程网站学习)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!