Python的基础函数
来源:互联网 发布:淘宝流量钱包流量充值 编辑:程序博客网 时间:2024/06/04 23:19
python 开发文档镇楼。 https://docs.python.org/2/index.html
关于代码
python的合理布局
(1)起始行
(2) 模块文档
(3)模块导入
(4)变量定义
(5)类定义
(6)函数定义
(7)主程序
文档编码
#encoding: utf-8 # 设置系统编码 import codecs codecs.open("loc,txt","w","utf-8")
模块的测试
if __name__=="__main__": test()
系统参数
import syssys.argv #argv是一个数组#你在命令行输入 #>python thisfile.py#会得到一个元素的数组,数组里面的元素是thisfile.py
python的重定向
import sysprint>>sys.stderr,'error'logfile=open('a.txt','w')print>>logfile,'ssss'logfile.close()
在刚开始的时候命令行输出流重新定向
$ python code.py >>save.txt
时间的显示
import timetime.strftime("%X",time.localtime()) #显示当前时间import timet0=time.time()t1 = time.time()print(" %.2g sec" % (t1 - t0)) #显示运行时间
基础语法
变量名
python的下划线
XX 表示是系统自带的变量
_XX 表示是类中的私有变量
输入
user=raw_input('enter')print 'your enter',user
输出
pretty print 冲着这个名字也要用一下啊
https://docs.python.org/2/library/pprint.html
>>> import pprint>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']>>> stuff.insert(0, stuff[:])>>> pp = pprint.PrettyPrinter(indent=4)>>> pp.pprint(stuff)[ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni']>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',... ('parrot', ('fresh fruit',))))))))>>> pp = pprint.PrettyPrinter(depth=6)>>> pp.pprint(tup)('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))
indent代表打印的缩进,depth代表输出的深度,还有一个宽度 width代表打印出来的数据的项
位运算
异或 ^
循环
for循环,如果是递增的变量的话
for i in range(3): print i
range是生成一个list,当n很大的时候,那么占用内存会很大
xrange占用内存比起来range小,所以平时可以尽量选择xrange,用法是一样的。
for i in xrange(3): print i
以前我都是额外计数的,后来发现用enumerate好很多。 然后,它的效率比较低,所以循环比较多的时候还是建议自己算。
for i,ele in enumerate(open(ff)): print i,ele
迭代器
数据结构
list
https://docs.python.org/2/library/stdtypes.html#typesseq
list 中括号来表示
list=[]list.append("a")
list的查找和删除
in可以判读元素是否存在
onewords=[111,222,333]print 111 in onewordsprint onewords.remove(111)print 111 in onewords
list的扩充,la扩充lb
la.extend(lb)
list 排序
list.sort()
反序
list.sort(reverse=True)
删除某个元素
list.pop()#最后一个元素list.pop(0)#第一个元素list.pop(i)#序列为i的元素
http://www.jb51.net/article/52730.htm
dict
字典用{}来表示
dic={}if "a" in dic: dic["a"]+=1else: dic["a"]=1print dic
想要获取字典长度
len(dic)
字典的排序
字典本身是无序的,然而有时候要进行排序的时候,先生成set,然后再利用sorted进行排序
https://wiki.python.org/moin/HowTo/Sorting
d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}sorted(d.items(), key=lambda t: t[0])
元组
元组用()来表示,元组本身不可以更改
python实现两个变量交换,其实就是生成了元组
x,y=1,2x,y=y,x
字符串
python的编码问题,
一本书里面说python有三种字符串,(str),unicode,basestring三类。
编码本身分为三种方式,系统编码,文件编码,python编码,系统编码是代码的编码 a=”哈哈” ,python编码是运行的时候 输出的时候 print a ,文件编码是文件的编码
文件保存设置系统编码
字符串整个是一个地址,是常量,如果字符串进行改变,那么肯定是生成一个新的串,然后把旧的串删除。
字符串的切片 (切片的操作不要老放在循环里面)
str[0:-1]#从字符串开始到最后倒数第二个
字符串的连接
string.upper(a[0:3]+a[20])
虽然加号就能连接,但是python要为每个参加连接操作的字符串分配新的内存,所以推荐用%
、
'%s %s' %('spa','Inq')
' '.join(('ss','aa','bb'))#ss aa bb
如果是某个字符串自己和自己重复连接
'a'*10#aaaaaaaaaa
字符串的替代
string.replace(str1,str2,num=string count(str1)) #把str1替换成str2,如果num存在,则不超过num次
字符串转数字,
int(str)
字符串的查找
'bc' in 'abcd''n' not in 'abcd'#还有find 和index
python string模块自定义的字符串
import stringstring.uppercase #大写string.lowercase #小写string.letters#大小写string.digits #数字
字符串的替代,清理标点符号, unicode清理,
not_letters_or_digits = u'!"#%\'()*+,-./:;<=>?@[\]^_`{|}~'translate_table=dict((ord(char),u' ') for char in not_letters_or_digits) line=unicode(line).translate(translate_table)
面向对象
python 类,有时候有称为类对象。实例 Instance
class MyData(object): passmathObj=MyData()mathObj.x=3
文件读取
json文件
http://www.cnblogs.com/coser/archive/2011/12/14/2287739.html
python的json和js的json不一样。
文件读取
savefile=open("read.txt",'r')logfile=open('an.json','w')
fjson=open("s.json","w")f.write(json.dump(data))f.close()
这里建议读取文件指定读入流。为了防止乱码什么的,最好统一用utf-8编码。现在基本是用codecs读文件了。
import codecscodecs.open("filename.txt","r","utf-8")codecs.open("filename.txt","w",utf-8")
如果的是json格式的话,那么
数据的序列化和反序列化
pickle存储数据,也就是对象序列化,可以把运行中的对象存储在本地。
save_file = "save.pk"with open(save_file, 'w') as f: pickle.dump(WMD_D, f)#WMD_D是要存储的对象
读取数据,也就是反序列化。
import pickleload_file = "save.pk"with open(load_file) as f: objectA= pickle.load(f)
json
path="" #file pathfor line in open(path): rec=json.loads(line)
py数据库
http://blog.csdn.net/artemisrj/article/details/43371263
异常
现在的理解是异常能够让我的程序在不跳出的时候运行,而且记录相应的错误,可以存在文件里面当作日志。这个在执行数据量大的时候,可以用来忽略一些小的错误。
try: cur.execute('select words from '+review_bui[0]) #pdb.set_trace()except Exception,e: nots.write(str(e)+'\n')
python 模块
系统路径‘
sys.path.append(‘F:\code\yelp2\subpython’) 加进去就是系统的路径了
python库收集
http://blog.csdn.net/artemisrj/article/details/50813682
其他
调试工具
http://segmentfault.com/a/1190000000356018
python的一些问题以及处理思路
http://blog.csdn.net/artemisrj/article/details/49535433
关键字查看的函数 iskeyword()
python不支持重载
可以输入 import this ,是python 之禅
测试模块 unittest ,有时候被叫做 Pyunit
python核心编程 课后习题
2-5(b)
num=[ x for x in range(11)]for i in num: print i
2-6 条件判断,记得转化为int
x=int(raw_input('put the num:'))if x==0: print 'zero'elif x>0: print 'positive'else: print 'negative'
2-7 循环和字串
str=raw_input('put the string:')for c in str: print c
字符串,分为普通字符串和unicode字符串,后者要加u, ‘str’ , u’str’
2-10
print('Enter')v=[]i=0s=0while s==0: a=input('n%d=' % (i+1)) if 0<a<=100: break else: continueprint('end')
- Python的基础函数
- Python基础:那些怪异的函数
- 【Python&NLP】nltk的几个基础函数
- Python基础II---函数基础
- 【Python基础】Python的lambda函数与排序
- 【Python基础】函数
- Python基础07 函数
- python基础(3)-函数
- Python基础07 函数
- Python基础07 函数
- Python socket基础函数
- Python基础07 函数
- 【Python】读书笔记,基础函数
- Python<11>函数基础
- Python基础07 函数
- Python基础07 函数
- Python基础3--函数
- Python基础07 函数
- Github部署Hexo
- 关于启动Android Studio提示错误"adb not responding. "
- android仿qq空间、微信朋友圈图片展示
- SRAM、SDRAM、nor flash、nand flash理解以及uboot在nor flash和nand flash启动
- 微信支付的使用介绍
- Python的基础函数
- 基础练习 特殊回文数
- Codeforces 626B
- android studio运行编译速度慢的解决方法
- 基础控件
- ZooKeeper架构及简介
- BZOJ4170 极光(CDQ分治 或 树套树)
- 项目3:小试循环---(5)求m!
- Java类加载器