最近将之前的博客逐渐搬运过来,因为可怜的服务器要到期了hhh
为了能够完成各色python脚本的编写,迫不得已入门python大法! 以下为简易的py语法:
Python string
对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符;
eg: ord(‘A’) ->65 chr(66) ->B
对bytes类型的数据用带b前缀的单引号或双引号表示: x=b’abc’;
可以通过encode() 将Unicode表示的str编码为指定的 bytes;
格式化输出字符串:
c语言格式;
format 方法’aaaa{0}bbbb{1}cccccc……’.format(para1,para2…)参数会依次取代占位符{0} {1}{…};
python list and tuple
- list(列表) :classmates = [‘elementl’, ‘element2’, [‘element31’,’element32’],’element4’]
len()得到元素个数;
classmates[-n]可以得到倒数第n个元素;
classmates.append(‘element’)追加元素到末尾;
insert(n,’element’)插入到指定位置;
pop()删除末尾元素;pop(i)删除指定位置元素;
classmates[n]=’element’直接替换为别的元素;
list元素可以是另一个list。
- tuple(元组): classmates = (‘elementl’, ‘element2’, (‘element31’,’element32’),’element4’)
一旦初始化就不能修改(每个元素指向不变),一定程度上相当于const;
获取元素方法与list相同;
当只有一个元素时 t=(1,) 需要使用’,’来消除歧义;
tuple中包含list元素时,list中的元素可以变,因为对tuple来说其指向并没有改变。
python dic
(同c++map)
d = {‘key1’: value1, ‘key2’: value2, ‘key3’: value3} => d[‘key1’] ->value1
为避免key不存在:
- ‘key’ in d 不存在则返回False;
- d.get(‘key’,value) 不存在则返回value;
- pop(key)可以删除key即对应的value。
python set
set也是一组key的集合但不储存value;key不能重复。
创建set需要提供一个list作为输入集合 s = set([1,2,3]);
add(key)添加key ;remove(key)删除key。
1 | 和list比较,dict有以下几个特点: |
python loop
for i in list/tuple: 把list或tuple中的每个元素带入i,执行之后缩进块的语句;
range()函数可以生成一个整数序列,list(range(n))可以将其转化为list;
while xxx:
break / continue 同c。
python func
空函数:pass用来做占位符,让代码格式正确。
可以返回多个值,实质上是返回的tuple;
None 为不变对象,需要时可以将函数的参数定义为不变对象,这样在每次调用时都是从初始定义的变量开始。(即python函数参数变量默认等于c语言的static,加上none可以去掉static)
1 | #Python2.7在一行输入多个数字的方法: |
可变参数: 函数 def funcname(‘*’args):定义一个参数数量不定的list/tuple L, 调用funcname(L)即可;
关键字参数:函数def funcname(a,b,’‘’‘kw):c为关键字参数(例如用户注册 ab为必填项 c为选填项);调用时funcname(A,B,e=E,f=F);
命名关键字参数:函数def funcname(a,b,’‘,c,d):’‘后面为命名关键字参数,即选填项只能是定义的key;也可以是 def funcname(a,b,’‘,c,d,e):可变参数c后面的命名关键字参数不必再加’*’;对于前者,调用时funcname(A,B,c=C,d=D);
python slice
用于取一个list或tuple的部分元素:L = [‘element1’, ‘element2’, ‘element3’, ‘element4’, ‘element5’]
slice操作符使用:
eg:取前三个元素 L[0:3] /L[:3];取后两个元素L[-2:];取倒数第二个元素L[-2:-1];
L[:10:2]前十个数里每两个取一个;L[::5]所有数每五个取一个;
python iteration
即循环遍历;
d = {‘a’: 1, ‘b’: 2, ‘c’: 3}
eg:
- 循环迭代dict: for key in d://默认dict 迭代的是key ;
迭代value : for value in d.values();
同时迭代 :for k,v ind.items()
- 判断是否可迭代:通过collections模块的Iterable类型判断
1 | from collections import Iterable |
- 下标循环的实现:通过内置的enumerate函数判断
1 | for i, value in enumerate(['A', 'B', 'C']): |
python list generation
eg:
生成L=[1,4,9,….100]:
[x*x for x in range(1,100)]
;筛选出仅偶数的平方:
[x*x for x in range(1,100) if x%2 ==0]
;两层循环生成全排列:
[m+n for m in 'ABC' for n in 'DEF' ]
;列出当前目录下所有文件即目录名:
import os | [d for d in os.listdir('.')]
;把一个list L 中所有字符串变为小写:
[s.lower() for s in L]
;
python genarator
不必创建完整的list,节省大量空间;边循环边计算,称为生成器generator;
方法:将列表生成式的[]改为()即可;