Note Of Python

来源:互联网 发布:嘉兴菜鸟网络招聘岗位 编辑:程序博客网 时间:2024/06/05 18:44

记录下学习Python的过程。

第一本书:《Python基础教程第二版》
时间:2017-07-31至
第一章 2017-07-31至2017-08-02
第二章 2017-08-03至2017-08-08 擦,隔了个周末,然而我并没有学习啊,罪过罪过
第三章 2017-08-08至2017-08-08字符串看的倒是挺快,反正我也记不住,唯有实际工作的多操练才能有所
提高吧~
第四章 2017-08-13至2017-08-13 工作一直用R,这python学多少忘多少吧~
第五章 2017-08-13至2017-08-13 条件、循环和其他语句
第六章 2017-08-21至2017-08-21 抽象、一周没看咯~
第七章 2017-09-11至2017-09-12 更加抽象 【看不懂都。。。】
第八章 2017-09-12至2017-09-12 异常 【看不懂都。。。】

1、Spyder恢复默认页面的方式

#版本型号Anaconda2-4.0.0-Windows-x86_641、View-Panes,勾选相应袁术2、Reset window layout即可

2、python中的除法

# 针对2.X版本# 整数之间的除法只保留整数部分print 3/2 # 0# 希望执行普通的除法from __future__  import divisionprint 3/2 #1.5# 此时整除的实现print 3//2

3、其他运算

# 乘方运算2**3 #8pow(2,3)# 取余运算5 % 2 #1# 保留小数位数round(5.0/3,2) #1.67# 拼接字符串"Hello,"+"World"

4、获取输入数据:input语句

#在页面输入即可赋值给xx = input("x: ")# raw_input函数,把输入作为原始数据# 输入的内容以字符串形式保存raw_input("What's your name")

5、导入模块

# 导入模块import math# 调用模块的函数math.floor(32.9) #32.0# 确定不会导入多个函数时,调用函数# 此时可以直接调用函数,不用加上模块的名字from math import floorfloor(32.9) #32.0# 类似R里的package::function和library(package)# 别名## 函数别名from module import function as f1## 模块别名import module as mk

6、索引&分片&序列

# 索引# 0表示第一个元素的位置,-1表示最后一个元素的位置'Hello'[1] # 'e''Hello'[0] # 'H'# 分片# 类似于R中取得向量的某些元素# []内指元素的索引,左闭右开,即下例中取的是第2和3位置的个元素numbers=[1,2,3,4,5]numbers[2:4] # [3,4]# 需要获取最后三个元素numbers[2:]# 获取整个序列numbers[:]# 获取第2至倒数第二的所有元素numbers[1:-1] # [2,3,4]# 上面的方法就不用考虑中间的元素个数,更加方便处理数据# 间隔取数numbers[0:4:2]#[1,3]numbers[::2]#[1,3,5]# 序列相加,类似与R里向量追加元素??[1,2]+[3,4] #[1,2,3,4]# 序列乘法## 产生虚的序列,原来的序列将被重复n次[1,2]*3 # [1,2,1,2,1,2]# 序列长度、最大最小值numbers=[100,34,678]print[len(numbers),max(numbers),min(numbers)] #[3 ,678 ,34]print[len('abc'),max('abc'),min('abc')] # [3, 'c' ,'a']

7、列表相关

# 元素赋值x=[1,2,3]x[1]=10;x # [1,10,3]# 删除元素del x[1];x # [1,3]# 分片赋值x=[1,2,3];x[1:]=[3,4,5];x # [1,3,4,5]# 追加元素,被追加的列表改变## 追加单个元素appendx=[1,2,3];x.append(4);x # [1,2,3,4]## 追加多个元素extendx=[1,2,3];x.extend([4,5,6]);x # [1,2,3,4,5,6]# 计数count## 类似R里的table,但是不灵活x=[1,2,1];x.count(1) # 2# 索引index## 类似R里的which,但是只返回第一个匹配项索引x=[1,2,3,4];x.index(2) # 1# 插入元素insertx=[1,2,3];x.insert(1,'second') # [1,'second',2,3]# 移除pop## 默认移除最后一个元素x=[1,2,3];x.pop(1);x # [1,3]# 移除满足某条件的元素## 只针对第一个匹配项x=[1,2,3,2,1];x.remove(2);x # [1,3,2,1]# 反向储存## 类似R里的rev()x=[1,2,3];x.reverse();x # [3,2,1]# 排序sortx=[5,4,3];x.sort();x # [3,4,5]注意此时x的值也改变## 不改变列表本身元素x=[3,2,1];y=sorted(x)x # [3,2,1]y # [1,2,3]

8、元组相关

# 创建元组1,2,3 # (1,2,3)# tuple函数## 把序列转换成元组tuple('Hello') # ('H', 'e', 'l', 'l', 'o')## 访问元素类似列表## 不能改变列表的值

9、字符串相关

## 字符串不可变# 拼接字符串'Hello'+',World'# 复制字符串,类似R的rep函数'H'*5 # 'HHHHH'['H'*5] # ['H','H','H','H','H']# 查找子字符串find'ABCBA'.find('B') # 1# 分割'L-O-V-E'.split('-') # ['L', 'O', 'V', 'E']''.join('L-O-V-E'.split('-')) # 'LOVE'# 拼接,类似R中paste0'-'.join('LOVE') # 'L-O-V-E'# 返回小写'HELLO'.lower() # 'hello'# 查找并且替换'Helloe'.replace('e',"-note-") # 'H-note-llo'# 去除两侧的空格' hell o '.strip() # 'hell o'

10、字典相关

# 创建字典phonebook={'Alice':'110','Ben':'120'}## 或者dicts函数items=[('Alice','110'),('Ben','120')]phonebook1=dict(items)## 用fromkeys## 只有键名,没有值,不知道怎么方便的赋值dict.fromkeys(['Alice','Ben'],'unkonow') #  {'Alice': 'unkonow', 'Ben': 'unkonow'}# 取出对应键的值## get 可以提供默认值phonebook['Alice'] # '110'phonebook.get('Alice','not exist') # '110'# 新增字典元素phonebook['Cindy']='119'# 清除字典clear## 比较奇葩,清空x时y也会删掉啊,同时如果复制,y改变x也改变x={'A':'1','B':'2'}y=x;x.clear();y # {}# 复制copy## 和clear类似,copy之后的数据修改之后,原来的数据也会发生变化## 需要使用copy模块中deepcopy函数x={'A':'1','B':'2'}y=x;y['A']=111;x # {'A':'111','B':'2'} x也发生改变from copy import deepcopy;x={'A':'1','B':'2'}y=deepcopy(x);y['A']=111;x # {'A':'1','B':'2'}# 删除元素 popx={'A':'1','B':'2'};x.pop('A');x # {'B': '2'}

11、判断&循环

# 缩进还是有点恶心的,还好有编辑器的帮助k=1if k==1: print 'equal'else: print 'not equal'# 多个条件判断 k=raw_input() if k=='1': print 'is 1'elif k=='2': print 'is 2'else: print 'not 1 or 2'# 判断运算符## 等于大于之类的和R类似,不赘## 比较运算符可以拼接使用0<age<100# 循环## whilex=1while x<=10: print x x +=1 # 累加1## forn=1for n in range(1,5): print n n +=1 # 1 2 3 4## 跳出循环break # 跳出所有循环continute # 跳出本次循环,进入下次循环## 循环中的else语句,可以关注下# 列表推导式x=[1,2,3];[x1*x1 for x1 in x] # 1 4 9

12、抽象

# 给函数写文档## 1、注释(#开头)## 2、在函数开头写下字符串def square(x):    'Calculates the square of the number x.'    return x*x## 3、查看文档square.__doc__ # 参数改变## 比较奇葩传进去的参数被改变了,替代方案是复制列表的副本## 即在n[0]之前加上n=names[:]def change(n):    n[0]='A'names=['B','C']change(names);names # ['A', 'C']# 函数内部读取全局变量## 1、可以直接访问全局变量,不需要向R一样,用<<-定义全局变量## 2、重名问题,即内部变量和全局变量重复globals()['全局变量名']
原创粉丝点击