python学习笔记(一)
来源:互联网 发布:2016网络在逃犯名单 编辑:程序博客网 时间:2024/05/29 04:01
基础语法
1. 标识符以下划线开头和结尾有特殊意义
2. 严格缩进
3. 通过 \ 换行,同C的宏,[], {} 或 () 括号和三引号( ''' 或 """ ) 就不需要使用多行连接符
4. print默认换行,逗号(,)可以取消换行
5. Python有五个标准的数据类型:
Numbers(数字)String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
其中数字,字符串,元组和None为不可变对象。不变对象一旦创建,对象内部的数据就不能修改,这样就减少了由于修改数据导致的错误。
此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。
6. 数字数据类型:
int, long, float, complex. 改变数字数据类型会分配一个新的对象.
使用del删除引用
7. 字符串
可以从左到右(0)或者从右到左(-1)索引[start:end]可以取字串,包括下边界,不包括上边界
加号(+)是字符串连接运算符,星号(*)是重复操作
原始字符串:在字符串的引号前加 r 或者 R,关闭\的转义功能
字符串格式化:print "My name is %s and weight is %d kg!" % ('Zara', 21)
各种字符串内置函数:split() find() count() replace()
8. 列表
list = ['runoob',786 , 2.23,'john',70.2]
同样可以取子列表,+ 和 * 也适用二维列表:
list_2d = [[0 for col in range(cols)] for row in range(rows)] # 把cols和rows替换成列数和行数
例如:
list_2d = [ [0 for i in range(3)] for i in range(4)] # 4行3列
对list实现类似于java的下标循环: for i, value in enumerate(list)
列表生成式:
生成1-10的序列:
list = range(1, 11)
生成列表 [4, 16, 36, 64, 100]:
list = [x * x for x in range(1, 11) if x % 2 == 0]
利用两个变量生成列表:
dict = {'1':'hello', '2':'world'}list = [k + '=' + v for k, v in dict.iteritems()]print list
结果是:
['1=hello', '2=world']
通过if语句来保证列表生成式能正确地执行,如下面的语句执行时会报错:
origin = ["Hello", 18]list = [s.lower() for s in origin]
origin = ["Hello", 18]list = [s.lower() for s in origin if isinstance(s, str)]print list
9. 元组
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表
10. 字典
字典用"{ }"标识。字典数据类型通过key-value来进行存储,相当于C++的Map。
dict['one'] = "This is one"
dict[2] = "This is two"tinydict = {'name':'john','code':6734,'dept':'sales'}
通过keys()/values()方法取出所有的键/值dict默认情况下迭代的是key
如果要迭代value,可以用 for value in d.itervalues()
如果要同时迭代key和value,可以用 for k, v in d.iteritems()
插入:
生成器(Generator):
假设列表有100万个元素,而我们前期只需要用到列表的前几个元素,把列表的所有元素一次性全部计算出来是很浪费内存的,因此我们可以考虑在需要的时候再把元素的值计算出来,从而节省大量的空间。在python中这种一边循环一边计算的机制,称为生成器。
① 创建生成器最简单的方法是:把列表生成式的[]改成()
在列表生成式中可以通过next()方法获得列表的下一个值,也可以通过for循环遍历列表。
g = (x * x for x in range(5))print g print g.next()print g.next()for i in g: print i
运行的结果是:
<generator object <genexpr> at 0x025AE508>014916
② 创建生成器的第二个方法:yield关键字
def fibs(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a+b n = n + 1g = fibs(5)print g.next(), g.next(), g.next()print fibs(5).next(), fibs(5).next(), fibs(5).next()for i in fibs(5): print i,
输出的结果为:
1 1 21 1 11 1 2 3 5
不是生成器的时候,yield的位置可能是print。函数式顺序执行的,直到遇到return或者最后一条语句。而generator的函数,在每次next()的时候执行,遇到yield语句返回,再次执行时从上一次返回的yield语句处继续执行。
11. 数据类型转换
各种数据类型的转换函数,数据类型名称即为函数名。int(x, [,base]),str() chr(), ord(), hex()
12. 运算符
** 幂// 整除(返回商的整数部分,9//2 = 4, 9.0//2.0 = 4.0
13. 逻辑运算符
and or not14. 成员运算符
in/ not in
15. 身份运算符
is / is not
16. 条件语句
if 判断条件1:执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
17. 循环语句
循环控制:break continue passwhile 判断条件:
执行语句……
for iterating_var in sequence:
statements(s)
while 和 for循环都支持搭配else使用,可以在循环正常执行完的时候执行指定代码。
大部分时候跟没有else是一样的,区别在于当通过break退出循环的时候,else中的语句不会被执行。
使用range(len())获取元组/列表下标
使用enumerate()遍历元组/列表,同时返回下标和值
·异常处理
try: passexcept: passfinally: pass
except后可以接一个或多个类型的异常(用圆括号围起来),默认处理所有异常
finally的语句无论有无发生异常,最后一定会被执行
·主动抛出异常
raise exception_name
阅读全文
0 0
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记:(一)
- Python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- maven项目驱动报错
- JSP中文乱码问题终极解决方案
- Spring的属性注入到bean实例的细节
- C#的类型转换
- ios开发 数字转汉字
- python学习笔记(一)
- 到底什么才是自动化巡检?
- Vue.js总体梳理
- 利用伪元素:before实现的快递单查询垂直列表的demo
- javscript 七牛上传图片
- 网络端口的调研
- mybatis入门
- (69)TreeSet练习:按照长度为主关键字,自然顺序为次关键字排序
- Eclipse Gradle使用