推荐使用Jupter-notebook, 所见即所得。 区别于Spyder的编译窗口(类似于 R Stuido, 有代码文件和输出窗口)
def sum(n):
ret=0
for i in range(n):
ret += i
return ret
print(sum(100))
4950 结果直接返回在代码下方。
List 容器实际上是数组,但是数组里的元素可以是任意类型的,因为Python 是一个弱类型的语言。索引以0开始,负数索引是最后一个元素可以用-1. 左闭右开。
Append 可以整体添加一个数组作为一个元素到列表中。
Extend 可以分别把数组中的每一个元素添加到列表中。
Pop 删除最后一个元素。
li=[1,2,3,4,5]
#判断立标是否为空(或者根据长度为0 来判断)
If not li:
Print(‘Empty’)
字符串也可以当作数组而用索引来访问,但字符串是不可写的。
修改字符串的值需要先转换成列表。修改值以后用join函数转换成字符串。
s= 'abcdefg'
li=list(s)
li[4]='E'
S=’’.join(li)
数组是方括号初始化,元组是小括号。元组只能读不能写,不能删除。
#字典遍历
d = {'a':1, 2:'b', 'c':3, 4:'d'}
for k in d.keys():
print(str(k) + ': ' + str(d[k]))
for k, v in d.items():
print(str(k) + ': ' +str(v))
集合没有重复的元素。
集合的对称差
s_a= set([1,2,3,4,5])
s_b= set([4,5,6,7,8])
print(s_a ^ s_b)
print((s_a | s_b)- (s_a &s_b))
print(s_a.symmetric_difference(s_b))
{1, 2, 3, 6, 7, 8}
#负数索引
li= [0, 1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10]
print(li[::-1])
有效机制:异常处理
import traceback
try:
print('try...')
r = 10 / 0
except ZeroDivisionError as e:
#2.7: except ZeroDivisionError,e:
print('ZeroDivisionError:',e)
print(traceback.print_exc())
finally:
print('finally...')
#二进制文件读写,编码处理
import struct
#pack 于 unpack
# '>' 代表big-endian的编码
# ‘>' 代表4 个字节的整数
# ’H'代表2字节无符号整数
print(struct.pack('>I',1050624))
print(struct.pack('>I',10240064))
print(struct.unpack('>IH', b'\x00\x9c\x40\x40\x7c\x80'))
json文本和字典之间的转换
成员变量序列化
Numpy 提供高维度的数组,核心结构np.array
Tile 函数复制每一行
可以二维数组的切片。
Pandas数据结构 series, dataFrame & index
指定索引数列,可以按照k的顺序去索引。
Pandas每一行每一列取名字
用字典生成,key为列的名字
Index指定每一行的名字
add=pd.read_excel(‘salary.xlsx’,sheetname=0)
Out=pd.ExcelWriter(‘salary_tax.xlsx’)
df.to_csv(‘pf_gd.csv’)
df=pd.read_csv(‘pf_gd.csv’)