入门容易熟练难,每一门语言都是这样。仗着c语言的基础觉得python语言特性掌握的差不多了,结果到真正敲代码的时候,不知从何下手,还得时不时补补课。我觉得应该再系统的看一遍,边自学边做笔记,发在博客上就是再把笔记整理一遍,再加深点印象。
自学主要是一本《python新手编程指南》和廖雪峰的官方网站,做的笔记也是主要摘录上面的。特别是廖老师的在线教程,讲的很好对我帮助很大,在此特别感谢。也推荐给大家 网站点这里
特么的,刚才要不是快完工了,结果火狐不给力重启了,木有保存啊呜呜呜
和写代码 没有ctrls直接把IDE关了一样,那是何等的卧槽啊
这次就只捡要点写了。
python3中字符串是以unicode编码的
1. 单个字符的编码 ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
>>> chr(66) 'B' >>> chr(25991) '文'
string=“123” //string是str类型 string=b“123” //string是bytes类型
string=“123” print(string。encode(“utf-8”)) 输出 b'123'
字符串在每个编程语言中都是重点处理的对象,看看python中的方法
None在python中为“无”的意思
quote="I'm runner" , quote.upper() 对应"I'M RUNNER", quote.lower() 对应"i'm runner" quote.title() 对应"I'm Runner" quote.replace("I'm","you're") 对应“you're runner”
还有另外的几种方法:
swapcase() 将字符串的大小写互换
captalize() 将字符串的首字母大写其余小写
join()
letter=['f','d','h','f']
spl="#"
print spl.join(letter)
输出,f#d#h#f
split函数与join相反
“f#d#h#f”.split(“#”)
strip()函数用于去除字符串的首位字符
无参数时去除空格符
startswith(values)与endswith(values)函数
以values开头或者结尾 ,返回值为True,或者False
find(substr[, start][, end])与rfind(substr[, start][, end])
replace(old, new[, count])
python3 只有input() 返回string类型
只有print([object, …][, sep=’ ‘][, end=’\n’][, file=sys.stdout])
print()
print(values,end=”“)
print(values,file=filename)
切片
上面四种操作是元组,列表,字典共有的,集合(set)没有索引属性,而字典是通过key索引
创建空元组 tuple=() 或者tuple=tuple()
tuple一旦初始化就不能修改 没有append(),insert()这样的方法。 可以正常地使
用索引,但不能赋值成另外的元素。不可变
创建空列表 list=list() 或者list=[]
创建空字典 dic={} 或者dic=dict()
创建空集合只能用set=set() 创建非空集合可以用花括号
set是一种无序的, 不包含重复元素的结构
from collections import deque
queue1=deque() 空队列
queue2=deque([values1,values2,values3]) 创建时初始化
queue3=deque(maxlen=10) 设置队列最大长度超过最大长度删队尾元素
queue.append(value)
queue.popleft() 删除队尾元素(就是最左边元素)
queue.pop() 删除最右边元素,不用 在队列
pass语句什么都不做 可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。
返回多个值其实是返回一个tuple,解包时注意一一对应
在函数中可以不用声明就可以就读取全局变量的值,但不能进行修改
global声明 global Value 就可以修改全局变量Value的值
当你在函数中重新命名一个与全局变量的同名的变量,会把全局变量屏蔽
func ( arg1=1, arg2=2 ) func ( *args ) 在函数内args是一个元组 tuple,不可变 func ( **args ) 在函数内args是一个字典 dic
def func(x,y,*a,**b): x=1 y=2 print(x,y,a,b) func(1,2,3,4,5,6,7,e=3,t=5,s=1) 输出: 1 2 (3, 4, 5, 6, 7) {'t': 5, 'e': 3, 's': 1} 常用的内置函数: abs(number):返回一个数的绝对值。 chr(number):ASCII码转换为字符,相反的函数order divmod(num1, num2):求出商和余数,返回一个tuple. divmod(10,3)=(3,1) eval(source[, globals[, locals]]):求表达式的值 excefile(object[, globals[, locals]]):exec语句用来执行储存在字符串或文件中的Python语句。 例:exec('print("abc")') 输出'abc' filter(function or None, list):将list的每项按照function进行筛选。function中,如果需要某个值继续存在,返回值为True,反之用False。 len(object):求一个对象的子项的个数 map(function, iterable_objects):接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。 max():求最大项 min():求最小项 ord(character):字符转换为ASCII码,相反的函数chr pow(x, y[, z]):求幂(z为取模的可选项) range():生产一个列表 repr(object):把对象转换为字符串,很多时候可以通过eval(repr(object))还原对象 sum(list):求序列所有值的和 type(object):查看数据对象类型 range([start,] stop[, step]) -> range object:左开右闭。 round(number[, ndigits]) -> number:把浮点数转变成指定小数位数的数 hex(number):转化为十六进制的字符串 oct(number):转化为八进制的字符串 int(str):字符转换为数字函数 float(object):将对象转化为浮点数。 str(object):将对象转换为字符串
map()函数:接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
def f (x): return x*x a=[1,2,3,4,5,6,7] print (list(map(f, a ))) 还可以把list换成tuple,set //输出[1,4,9,16,25,36,49] print (list(map(str, a ))) //输出['1', '2', '3', '4', '5', '6', '7']
常常需要用list()对map函数的返回值做进一步处理使其变为list对象。(python3)
map(function,sequence),map也常和lambda一起使用(提高逼格)。
fliter函数与map() 类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
sorted()
>>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] >>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 36] //abs函数作用于列表每个元素 ,产生一个映射 //注意abs与abs() 的区别 >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) ['Zoo', 'Credit', 'bob', 'about'] L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] def by_name (li): // li是列表的元素,是tuple return li[0] def by_score(li): return li[1] print (sorted(L,key=by_name)) print (sorted(L,key=by_score)) 输出: [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)] [('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
lambda()函数 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81] 匿名函数就是: def f(x): return x * x