python入门

前言:根据慕课网免费课程《python入门》记录的笔记

第一章  python介绍

1.1 python是解释性语言,不用编译;运行速度慢,代码量少;跨平台;

1.2 python源码不能加密

第二章  python安装

2.1 python版本包括2.7和3.3,该课程使用2.7,因为一些第三方库暂时不支持3.3

2.2 python安装:访问www.python.org-->下载windows环境下的2.7.xxx版本-->安装到E盘-->在环境变量里配置PATH,加入python的安装路径E:\python-->在cmd里输入python进入python环境,举例:输入200+100回车得到300,exit()退出环境。

2.3 第一个python程序:使用Notepad++,看一下设置-->首选项-->新建里的UTF-8,编写代码 print 'hello,world',注意:python代码的前面不能有空格,python对于缩进有严格要求,保存为hello.py,在cmd里进入保存的python文件的目录,dir可以看到文件,执行python hello.py,即可执行程序。

第三章  python变量和数据类型

3.1 python能够直接处理的数据类型:整数(十进制、十六进制都可以)、浮点数(可以使用科学计数法)、字符串(单引号和双引号都可以)、布尔值(有and、or、not运算,not就是取反)、空值None(区别于0,0有意义,None没意义)

3.2 print语句可以输出多个字符串,使用逗号隔开,打印时遇到逗号会打印一个空格,也可以使用加号连接字符串

    例:print "hello," + "world";(正确)    print "hello,","world";(正确)    print 12 + "str";(错误)  

3.3 注释使用#,注释一行代码

3.4 在python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头;python是动态语言,定义时不限定变量类型,类型取决于赋值

3.5 字符串可以使用单引号或双引号定义,如果字符串中有单引号,可以使用双引号定义;同理,如果字符串中有双引号,可以使用单引号定义;如果两种引号都有,就要使用转义字符 \ 来转义,字符串中的每一个引号都要转义。其他转义字符:\n换行, \t一个制表符, \\表示 \ 字符本身

3.6 在字符串前加r可以转为raw字符串,里面的引号就不需要一个一个转义了;r'...'只能表示一行字符串,使用'''...'''表示多行字符串,在多行字符串前面加r可以转义多行字符串

例:'''line1

         line2

         line3'''

等价于

'line1\nline2\nline3'

3.7 在有中文的字符串前面加u,表示Unicode,单行和多行都可以加u

3.8 整形和浮点型的运算:和java差不多

3.9 布尔类型:and运算:都True为True,有False为False;

                       or运算:都False为False,有True为True;

                       not运算:True变False,False变True;

                       注:python把0、空字符串' '、None看成False,其他数值和非空字符串都看成True;

                       短路运算(就近返回值):和java一样

第四章  List和Tuple类型

4.1 list是python的一种内置数据类型,直接使用[ ]就可以创建;list可以赋给变量;其中的元素可以是不同类型;没有元素就是空list

4.2 python使用索引访问list,list有序,和java一样,list[0]

4.3 倒序访问list,倒数第一索引是-1,倒数第二索引是-2,依次类推list[-1]

4.4 添加新元素:list.append('xiaoming')直接追加到list的尾部;list.insert(0,'xiaoming')表示在索引0的位置上加小明

4.5 删除元素:使用pop()删除list尾部的元素list.pop()并打印;使用pop(0)删除索引为0的元素list.pop(0)并打印

4.6 替换元素:直接赋值,就可以用新的元素替换旧的元素,总数保持不变

4.7 创建tuple,使用()创建;一旦创建,不能修改;没有insert(),pop(),append()方法;可以使用t[0],t[-1]等访问元素;但不能赋值别的新元素

4.8 创建单元素tuple:空tuple就是(),一个元素时,python会把括号看成数学运算中的优先级,所以需要在定义单元素tuple时,在这个元素后面加一个逗号,打印的时候也会有这个逗号,例:t = ('xiaoming',)  print t  打印结果:('xaioming',)

4.9 可变的“tuple”:例:t = ('a','b',['A','B'])  tuple里面有list,list里的元素是可以变的,因为所谓的不变是指向不变,tuple永远指向这个list,但这个list里的元素是可以变的

第五章  条件判断和循环

5.1 if语句:在if条件后面写冒号表示开始;python缩进规则:4个空格,不要使用tab,有相同缩进的代码被视为代码块,每一次写同一个代码块语句都要删除tab缩进再按4个空格

     例:age = 20

            if age >= 18:

                print 'qqq'

                print 'www'

            print 'end'

5.2 if...else...  在else后面也有一个冒号  if xxx: ...... else: ......

5.3 if...elif...else... 不写break,只要碰到第一个匹配的,就直接返回或打印,后面的直接忽略

5.4 for循环:

      例:L = ['qqq','www','eee']

             for x in L:

                 print x

5.5 while循环

5.6 break:使用while true配合break退出死循环

5.7 continue继续循环

5.8 多重循环

第六章  Dict和Set类型

6.1 dict存key-value,用大括号表示,d = {'a':12, 'b':34, 'c':34};可以计算长度 len(d) 打印结果3

6.2 访问dict:d['key']获取value;d.get('key')也是获取value,但当key不存在时不会报错,而是显示None

6.3 dict特点:查找速度快,占用较大内存(与list相反);key不能重复;无序;key必须不可变

6.4 更新dict:d[key] = value 如果key不存在,就添加一个新键值对;如果存在,就更新

6.5 遍历for...in...

6.6 set无序,不可重复;创建方式:把一个list传入set里;s = set(['a','b','c']); 长度len(s) 为3

6.7 访问set:使用in判断某个元素是否在set里

第七章

7.3 编写函数: def 函数名(参数名):  ......  return ...

7.4 python可以返回多个值

7.5 汉诺塔:

def move(n, a, b, c):
    if n ==1:
        print a, '-->', c
        return
    move(n-1, a, c, b)
    print a, '-->', c
    move(n-1, b, a, c)
move(4, 'A', 'B', 'C')

7.6 定义默认参数:int('123',8)说明123是八进制数;函数的默认参数的作用是简化调用;例:def fn(a, b = 2, c = 4);默认参数只能在必需参数的后面

第八章  切片

8.1 对list进行切片:L[0:3]表示取索引0到3的元素,不包括3;L[:3]如果第一个是0,可以省略;L[:]表示从头取到尾;L[ : : 2]第三个参数表示每隔x(例子里是2)个数取一次,例子中取索引为0、2、4、6...的元素;支持倒序切片

8.3 对字符串也可以进行切片

第九章  迭代

9.2 索引迭代:使用enumerate()函数,实际上是被每隔元素绑定了一个索引,把原来的单个元素变成了一个tuple,例:for index,name in enumerate(L)   print index, '-', name   zip函数可以把两个list变成一个list

9.3 迭代dict里的value:d.values()实质是把value取出来构造一个list;d.itervalues()实质是遍历value,节约内存;迭代是一个抽象的数据操作,他不对迭代对象的内部数据有任何要求

9.4 迭代dict的key和value:d.items()方法返回包含了tuple的list,对这个list迭代,可以同时获得key和value;iteritems()方法类似于itervalues()方法,节约内存

第十章

10.1 列表生成式:

[x * x for x in range(1,11)]

等价于

L = [] 

for x in range(1,11): 

    L.append(x * x)

10.2 复杂表达式:

tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
print '<table>'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'

等价于

<table border="1">
<tr><th>Name</th><th>Score</th><tr>
<tr><td>Lisa</td><td>85</td></tr>
<tr><td>Adam</td><td>95</td></tr>
<tr><td>Bart</td><td>59</td></tr>
</table>

10.3 条件过滤:

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

10.4 多层表达式

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值