您的位置:首页 > 编程语言 > Python开发

Python学习笔记 for windows

2015-03-23 20:26 155 查看
学习来源http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747381369301852037f35874be2b85aa318aad57bda000优点:代码量少,简单易学缺点:运行速度相对计算机能直接识别的语言慢下载地址http://www.python.org/ftp/python/2.7.9/python-2.7.9.msi使用文本编辑器不要用word和txt建议使用Notepad++python 大小写敏感cmd python hello.py
print可用逗号来输出,逗号会被替换成空格输出,如print '100+200','=',100+200结果:100+200 = 300print "plesase input your name"name=raw_input()print 'hello,',name#print absolute value of an integer //注释用#,编译器会忽略改行代码a = 100if a >=0: //冒号后可直接跟语句 print a //如果冒号后不跟语句必须缩进(建议4空格)else: print -aprint 'I\'m \"OK\"' //转义结果为:I‘m "OK"print '''line1 //打印结果line1line2 line2line3''' line3True and False //结果为:False,布尔值可进行and,or,not进行运算3>2 //结果为:True,注意区分大小写if age>=18: //age如果是用row_input得到的,会判定为True,因为这里的得到的是字符不是数字 print 'adult'else: print 'teenager'在Python中,等号是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量ord('A') //结果为:65,ASSII编码chr(65) //结果为:'A'u('中') //结果为:'\u4e2d'print u'中文' //结果为:中文print u'\u4e2d' //结果为:中u'ABC'.encode('utf-8') //结果为:ABCu'ABC' //结果为:u'ABC'u'中'.encode('utf-8') //结果为:'\xe4\xb8\xad',u'xxx'转换为UTF-8编码用encode('utf-8')len(u'ABC')=len('ABC') //结果为:3len(u'中文') //结果为:2len('\xe4\xb8\xad\xe6\x96\x87') //结果为:6'abc'.decode('utf-8') //结果为:u'abc' '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') //结果为:u'\u4e2d\u6587' >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') //结果为:中文当Python解释器读取源代码时,为了让它按UTF-8编码读取源代码,我们通常在文件开头协商这两行:#!/usr/bin/env python //告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释# -*- coding:utf-8 -*- //告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码print 'hello,%s,your name is age %d' %(name,age) //结果为:hello,ling,your age is 24'%.2f' % 3.1415926 //结果为:'3.14'u'HI,%s' % u'Ling' //结果为:u'HI,Ling',Python3.X版本后默认为Unicode编码可不带u进行编写'rate is %d%%' %35 //结果为:'rate is 35%',%%表示百分号可变数组listclassmates = ['chen','ling','xiu'] //往list内存3个元素,索引分别为012classmates //结果为:['chen','ling','xiu']len(classmates) //结果为:3classmates[0] //结果为:'chen'classmates[2] //结果为:'xiu'classmates[-1] //结果为:'xiu',倒数第一个元素
classmates[-2] //结果为:'ling',倒数第二个元素
classmates.append('Admin') //往list内添加个元素classmates //结果为:['chen','ling','xiu','Admin']classmates.insert(1,'hello') //往索引号为1处插入条数据classmates //结果为:['chen','hello','ling','xiu','Admin']
classmates.pop() //结果为:'Admin'classmates //结果为:'['chen','hello','ling','xiu']classmates.pop(1) //结果为:'hello',pop(i)i为索引号
classmates //结果为:'['chen','ling','xiu']
classmates[1]='LING' //执行后'['chen','LING','xiu']
L=[True,132,'hello'] //list内可存放不同的数据类型不可变数组tuple,定义数组时就将所有元素确定下来,且不能进行重新赋值和追加元素c = (333,2,3) //注意小括号c[0] //结果为:333t=(1,) //定义一个元素的变量时为了区分最好在元素后面加上逗号r=('a','b',['x'])r[2][0]=2 //r的第三个元素指向的是单一元素的数组地址,内容可变

条件判断和循环age=3if age >=18: print 'you age is',age print 'adult'elif age >= 6: //else if print 'teenger'else: print 'kid'
for...in 循环,依次把list或tuple中的每个元素迭代出来sum=0for x in [1,2,3,4]: sum =sum+xprint sum //结果为:10range(5) //结果为:[0,1,2,3,4],小于5的整数
sum = 0n =99while n>0: sum += n n -=2print sum //结果为:2500birth = int(raw_input()) //将字符串类型转为int类型,否则比较的时候会出错进入死循环时,可用Ctrl+C退出程序
使用dict和setPython内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

d = {'A':60,'B':70,'C':80} //大括号,冒号d['A'] //结果为60d['D']=90 //此时d的结果就为 {'A':60,'B':70,'C':80,'D':90}d['E'] //报错,不存在该键值'E' in d //结果为:Falsed.get('D') //结果为:90d.get('E') //结果为:,返回None的时候Python的交互式命令行不显示结果。d.get('E',-1) //结果为:-1,查不到E时返回给定的值
d.pop('D') //结果为:90,删除后d的结果为{'A':60,'B':70,'C':80}和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而增加;
需要占用大量的内存,内存浪费多。
而list相反:

查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

s=set([1,2,3]) //注意,传入的参数
[1,2,3]
是一个list,而显示的
set([1,2,3])
只是告诉你这个set内部有1,2,3这3个元素,显示的[]不表示这是一个list。

s=set([1,1,2,1,1,3,2]) //s为set([1,2,3]),重复值自动被过滤

s.add(4) //增加元素,s为set([1,2,3,4])

s.remove(4) //删除元素,s为set([1,2,3])

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

s1 =set([1,2,3])

s2=set([2,3,4])

s1 & s2 //取交集,结果为:set([2,3])

s1|s2 //取并集,结果为:set([1,2,3,4])

不可变变量

a=['c','a','b']

a.sort() //a的结果为:['a','b','c'],a已经改变了

a='abc'

a.replace('a','A') //结果为:'Abc'

a //结果为:'abc',a的值没有改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: