学习来源

优点:

代码量少,简单易学
缺点:
运行速度相对计算机能直接识别的语言慢
使用文本编辑器不要用word和txt
建议使用Notepad++
python 大小写敏感
cmd      python hello.py
print可用逗号来输出,逗号会被替换成空格输出,如
print '100+200','=',100+200
结果:100+200 = 300
print "plesase input your name"
name=raw_input()
print 'hello,',name
#print absolute value of an integer //注释用#,编译器会忽略改行代码
a = 100
if a >=0:                                             //冒号后可直接跟语句
    print a                                            //如果冒号后不跟语句必须缩进(建议4空格)
else:
    print -a
print 'I\'m \"OK\"'    //转义结果为:I‘m "OK"
print '''line1              //打印结果line1
line2                                           line2
line3'''                                        line3
True 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')    //结果为:ABC
u'ABC'                              //结果为:u'ABC'
u'中'.encode('utf-8')        //结果为:'\xe4\xb8\xad',u'xxx'转换为UTF-8编码用encode('utf-8')
len(u'ABC')=len('ABC')    //结果为:3
len(u'中文')                        //结果为:2
len('\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%',%%表示百分号
可变数组list
classmates = ['chen','ling','xiu']    //往list内存3个元素,索引分别为012
classmates                                     //结果为:['chen','ling','xiu']
len(classmates)                             //结果为:3
classmates[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]                                           //结果为:333
t=(1,)                                        //定义一个元素的变量时为了区分最好在元素后面加上逗号
r=('a','b',['x'])
r[2][0]=2                                  //r的第三个元素指向的是单一元素的数组地址,内容可变
条件判断和循环
age=3
if age >=18:
    print 'you age is',age
    print 'adult'
elif age >= 6:                            //else if 
    print 'teenger'
else:
    print 'kid'
for...in 循环,依次把list或tuple中的每个元素迭代出来
sum=0
for x in [1,2,3,4]:
    sum =sum+x
print sum                                //结果为:10
range(5)                                  //结果为:[0,1,2,3,4],小于5的整数
sum = 0
n =99
while n>0:
    sum += n
    n -=2
print sum                                 //结果为:2500
birth = int(raw_input())           //将字符串类型转为int类型,否则比较的时候会出错
进入死循环时,可用Ctrl+C退出程序
使用dict和set

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

d = {'A':60,'B':70,'C':80}             //大括号,冒号

d['A']                                         //结果为60
d['D']=90                                   //此时d的结果就为 {'A':60,'B':70,'C':80,'D':90}
d['E']                                           //报错,不存在该键值
'E' in d                                        //结果为:False
d.get('D')                                    //结果为:90
d.get('E')                                    //结果为:,返回None的时候Python的交互式命令行不显示结果。
d.get('E',-1)                                //结果为:-1,查不到E时返回给定的值
d.pop('D')                                   //结果为:90,删除后d的结果为{'A':60,'B':70,'C':80}

和list比较,dict有以下几个特点:

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

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,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的值没有改变

Python学习笔记 for windows的更多相关文章

  1. Python学习笔记 for windows 三

    多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 哺乳类:能跑的哺乳类,能飞的哺乳类: 鸟类:能跑的鸟类,能飞的鸟类. class Animal(object): ...

  2. Python学习笔记 for windows 二

    函数 abs(-20)                                        //结果为:20,绝对值函数 def 函数名称([参数1,参数2,参数3]): 执行语句 retu ...

  3. Python学习笔记(1)--Windows基本环境搭建

    1.安装Python 官网下载地址:https://www.python.org/downloads/ 下载完成后安装选择自定义安装,并勾选自动填写环境变量,如果是默认安装,还需要自己手动配置环境变量 ...

  4. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  5. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  6. Python学习笔记九

    Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...

  7. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  8. 近期Python学习笔记

    近期Python 学习笔记--一篇文入门python 作者:Pleiades_Antares(www.cnblogs.com/irischen) 写在前面的话 想学Python已经许久,一年多以前(应 ...

  9. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

随机推荐

  1. AngularJS的JSONP服务

    有些页面的response中,包含了 Access-Control-Allow-Origin 这个header,说明可以进行跨域请求,如果没有包含这个header的页面可以利用JSONP进行跨域 sc ...

  2. NSURLSession总结

    NSURLSession(会话)(ios7新增加) //英译  Session:会议,讲话 configuration:结构,配置 expect:预期 resume:取得 suspend:推迟 pro ...

  3. SqlServer按时间自动生成生成单据编号

    SET @_tmpDateTime = GETDATE() EXEC dbo.Dtw_Common_GenerateProofCode @ProofType = 'SO',@WhsCode=@WhsC ...

  4. Yii2的urlManager URL美化

    Yii1.*与Yii2中配置路由规则rules是几乎是一样的,但还是有细微的差别. 在Yii1.*中开启path路由规则直接使用 'urlFormat' => 'path', 但在Yii2中已经 ...

  5. jquery简单开始

    老师讲好少,我也没办法. &(function(){ 执行完所有代码之后再执行这里的代码 }) 选择器: &('#id');      获取id &('.class');   ...

  6. Android-组件RadioButton使用技巧

    当初第一次接触Android组件的时候,我感觉微信底部的菜单,是用button这样的组件来做的. 可我想错了.却是用RadioButton来做的.那到底怎么做,接下来我就做一下分享!希望看了之后你也觉 ...

  7. LogPolar 对数极坐标

    LogPolar 对数极坐标 cvLogPolar 对数极坐标(logpolar)是仿真生物视网膜中央凹陷的特性,具有数据压缩的能力,可用于目标跟踪中快速尺度和旋转变换不变的模板匹配. 对数极坐标其实 ...

  8. [转]基于Starling移动项目开发准备工作

    最近自己趁业余时间做的flash小游戏已经开发得差不多了,准备再完善下ui及数值后,投放到国外flash游戏站.期间也萌生想法,想把游戏拓展到手机平台.这两天尝试了下,除去要接入ane接口的工作,小游 ...

  9. 反射-----学习Spring必学的Java基础知识之一

    Java允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数.属性 ...

  10. FP error code老是忘记的看这里:只给出最常用的几个。

    把常见的几个记牢,不要在比赛时纠结. 错误2:输入文件未找到. 错误106:数据读入的格式错误,往往是读入语句出错. 错误200:被零除. 错误201:范围检查错误,数组越界. 错误202:栈溢出. ...