概述
1、计算机只能处理数字,如果需要处理文本,那么需要将文本转换为数字,最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。
2、Ascall码:A:65 Z:90 a:97 z:122
3、UTF-8编码可以解决乱码问题,并且比unicode省空间。ord()函数将字符转换为整数编码,chr()相反。Python对bytes类型的数据用带b前缀的单引号或双引号表示。
4、格式化输出时,若遇到%输出,可以用%%来表示一个%。同样的//可以表示/等。
5、在python中列表来表示矩阵,其中array[-n]表示列表中倒数第n个元素。追加元素用array.append(),插入元素用array.insert(1,num),用pop(n)删除指定位置元素;
tuple是元组,一旦初始化,就不能修改。
6、python中缩进属于语法,因此要注意。并且记住判断语句等后面有一个冒号。
7、input返回的值是str类型的。
8、python的循环很人性化,非常的方便,有两种:
>>for … in
for i in range() [range不包含上界]
9、whie 循环语法基本类似,只是break和continue不用加封号。break是直接跳出循环,而continue是跳出本次循环进入下一次循环。
10、字典是python的一个特色,非常好用。使用key-value存储,查找速度很快,快的原因是类似于我们的字典,先去索引页找到页码,然后直接翻到相对应的页码去查找就可以。list是从头到尾去匹配的,因此list越大,查找速度越慢。
[dict填充] dict[0]=1
[dict索引] dict[0] or dict.get(0)
[dict删除] dict.pop(0)
字典是用时间换取空间的一种方法。
set和dict类似,但是不存储value,
[创建set] s=set([1,2,3]) 返回 {1,2,3}
[添加元素] s.add(4)
[移除元素] s.remove(4)
set可以看成是无序的无重复的元素的集合,因此可以做并集交集。交集&,并集| 。
11、函数
[创建]def fun():
return
[调用] fun()
实现Hex()函数:
s=[]
f=[]
def hex(n):
(s1,s2)=divmod(n,16)
l=len(str(s1))
for k in range(l):
s.append(s1//(10**(l-k-1))%10)
s.append(s2)
for m in s:
if m == 10:
f.append('A')
elif m == 11:
f.append('B')
elif m == 12:
f.append('C')
elif m == 13:
f.append('D')
elif m == 14:
f.append('E')
elif m == 15:
f.append('F')
elif m < 9:
f.append(m)
return f,s,l,s1,s2
hex(255)
for h in f:
print(h,end='')
空函数:
def nop():
pass
函数可以返回多个值,返回值其实是一个tuple,用逗号隔开就可以,可以用isinstance函数检查函数输入的类型
函数的参数可以设置默认值,但是默认参数一定要在必选参数之后,否则报错。例如fun(x,y=1),这样fun(x)相当于fun(x,1),需要注意的是默认参数必须指向不变对象(如None)。
当参数为一个可变参数时,可以用*,和C中的指针功能类似。
关键字参数,相当于参数为字典,用**传入。
命名关键字参数,可以限制关键字参数的名字。形式: *, city, job
参数组合:在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用.但是顺序是必选参数->默认参数->可变参数->关键字参数->命名关键字参数( 【】【=】【】【**】 【,】)
12、在用len函数时要注意,int/float等不可以直接用len,要用str转换之后再用
13、导入:
from __(文件) import __(函数)
import math 导入数学库
14.递归函数在实际中用处很大。形式:
def fun(n):
…
return fun(n-1)
尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式;这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。
15、切片:
L[:3]((0-2元素) L[-2:-1](倒数第二个到倒数第一个)
L[:10:2] (前十个,每隔两个取数) L[::5] (所有数每隔五个取一次数)
L[:](所有数,相当于复制列表)
字符串也可以看成是一个列表,可以进行切片操作。
16、迭代:
注意:字典key迭代产生的顺序可能和在字典中的排序不一样,因为不是按照list存储的。
迭代key
for key in dict:
print(key)
迭代value
for value in dict.values():
print(value)
迭代key和value
for k,v in dict.items():
print(k,v)
17、通过collection的Iterable可以实现检查是否可以循环迭代
from collections import Iterable #引入模块
isinstance(“abcdefg”,Iterable)
enumerate函数可以将list配成元素对比如:
list=[‘A’,‘B’,‘C’,‘D’]
enumerate(list)=0 A 1 B 2 C 3 D
18、列表生成式:
list(range(1,11))
[x*x for x in range(1,11) if x%2==0]
[m+n for m in “ABC” for n in “DEF”]
19、OS模块可以列出文件和目录
import os
[d for d in os.listdir(’/home’)]
20、生成器:一边循环,一边计算的机制。(generator)保存的是算法,不是元素。没运行一次,计算一次。可以用next(g)计算
l=x*x for x in range(1,11)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]g=(x*x for x in range(1,11))(生成器)
generator和函数执行的流程不一样,函数是顺序执行,遇到return语句或者最后一行语句就返回;而变成generator的函数,在每次调用next函数的时候,遇到yeild语句返回,再次执行从上次返回的yield语句处继续执行。
21、迭代器:
直接可以作用于for循环的成为可迭代对象:Iterable
isinstance((x for x in range(10)),Iterable)
Iterable有:list str tuple dict set generator
可以被next()一直返回下一个值的对象称为迭代器Iterator
iter()函数可以实现将list等变为Iterator
22、高阶函数:把函数作为参数传入
23、map()函数有两个参数:fun,list,将函数作用在每一个元素
list(map(abs,[1,-1,2,-3]))
输出:[1,1,2,3]
reduce()函数也有两个参数:fun,list,将函数的结果继续和下一个元素进行计算
def f(x,y):
return x*y
reduce(f,[1,2,3,4])
输出:24
filter()函数用于过滤序列:
def fun(s):
return s if s>5 else None
print(list(filter(fun,[1,2,3,5,6,7])))
输出:[6,7]
s=[1,2,3,4,5,6,7]
print(list(filter(lambda x:x>5,s)))
注意:reduce不需要list转换输出,而map和filter需要list转换输出
sorted()函数用于排序:
sorted([1,2,-3,4,-5],key=abs,revers=True)
key为排序准则,reverse为逆序排序
最后
以上就是飘逸高跟鞋为你收集整理的python廖雪峰老师教程学习笔记一的全部内容,希望文章能够帮你解决python廖雪峰老师教程学习笔记一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复