python 学习笔记
来源:互联网 发布:马云对中国网络 编辑:程序博客网 时间:2024/05/06 04:06
数据类型: 整数、浮点数 、字符串、布尔值(and与运算 、or或运算、not非运算)、空值(用None表示)。
打印函数: print 可以直接进行运算,中间加,会有出现空格。
注释:在句首加#。
转义字符:\
\n 表示换行\t 表示一个制表符\\ 表示 \ 字符本身
还有就是对于字符串中的'、"符号的处理。
多行字符串:’‘’abc‘’‘可以采用这样的表示形式表示。
raw字符串:在之后的字符串首加r,表示之后的字符串不需要转义,但是只能表示一行,r’‘’abc‘’‘的形式可以表示多行。
Unicode字符串:用来表示中文
u'中文'
list:
Python内置的一种数据类型是列表:list
。list是一种有序的集合,可以随时添加和删除其中的元素。
>>> L = ['Michael', 100, True]
访问形式类似数组:
>>> print L[0]
可以倒序访问list:>>> print L[-1]
添加新元素:第一个办法是用 list 的 append()
方法,把新同学追加到 list 的末尾:
>>> L = ['Adam', 'Lisa', 'Bart']>>> L.append('Paul')>>> print L['Adam', 'Lisa', 'Bart', 'Paul']
第二个方法是用list的 insert()
方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:
>>> L = ['Adam', 'Lisa', 'Bart']>>> L.insert(0, 'Paul')>>> print L['Paul', 'Adam', 'Lisa', 'Bart']
替换元素:直接根据对应索引位置进行修改即可。tuple:
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
创建tuple和创建list唯一不同之处是用( )
替代了[ ]
。
创建单元素tuple:
>>> t = (1,)>>> print t
因为t = (1)会被表示成单个1。可变的”tuple“:
>>> t = ('a', 'b', ['A', 'B'])
if语句:
age = 20if age >= 18: print 'your age is', age print 'adult'print 'END'
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
if的表达形式:if、if not、if...else...if not age >= 18: print 'teenager'
if age >= 18: print 'adult'else: print 'teenager'
if-elif-else:if age >= 18: print 'adult'elif age >= 6: print 'teenager'elif age >= 3: print 'kid'else: print 'baby'
elif相当于else if。
for循环:
Python的 for 循环就可以依次把list或tuple的每个元素迭代出来:
L = ['Adam', 'Lisa', 'Bart']for name in L: print name
注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。
while循环:和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。
比如要从 0 开始打印不大于 N 的整数:
N = 10x = 0while x < N: print x x = x + 1
break退出循环。
continue结束当前循环。
dict:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59}
表达形式key:value可以通过key值找到对应的value。
访问dict:
if 'Paul' in d: print d['Paul']
如果对应判断的key值不存在,会输出None。>>> print d.get('Bart')59>>> print d.get('Paul')None
还可以利用get函数来判断。更新dict:
>>> d['Paul'] = 72
可以根据key直接赋值,如果原本存在这个key,那value会被替换。遍历dict:
直接使用for循环可以遍历 dict 的 key:
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }>>> for key in d:... print key... LisaAdamBart
set:>>> s = set(['A', 'B', 'C', 'C'])>>> print sset(['A', 'C', 'B'])>>> len(s)3
set中带入了一个list,然后set会自动去重,里面的元素是无序的。访问set:
set可以用来判断一个元素是否在set中。
>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
我们可以用 in 操作符判断:
Bart是该班的同学吗?
>>> 'Bart' in sTrue
遍历set:
直接使用 for 循环可以遍历 set 的元素:
>>> s = set(['Adam', 'Lisa', 'Bart'])>>> for name in s:... print name... LisaAdamBart
更新set:一是把新的元素添加到set中,二是把已有元素从set中删除。
添加元素时,用set的add()方法:
>>> s = set([1, 2, 3])>>> s.add(4)>>> print sset([1, 2, 3, 4])
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
>>> s = set([1, 2, 3])>>> s.add(3)>>> print sset([1, 2, 3])
删除set中的元素时,用set的remove()方法:
>>> s = set([1, 2, 3, 4])>>> s.remove(4)>>> print sset([1, 2, 3])
如果删除的元素不存在set中,remove()会报错:
>>> s = set([1, 2, 3])>>> s.remove(4)Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 4
所以用add()可以直接添加,而remove()前需要判断。
函数:
函数的定义:
我们以自定义一个求绝对值的 my_abs 函数为例:
def my_abs(x): if x >= 0: return x else: return -x
return None->return 函数返回值可以是tuple(即代表多个值)。
>>> r = move(100, 100, 60, math.pi / 6)>>> print r(151.96152422706632, 70.0)
或者:
>>> x, y = move(100, 100, 60, math.pi / 6)>>> print x, y151.961524227 70.0
定义默认参数:def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
在调用时,没有导入n的话,n默认为2。
定义可变参数:
如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:
def fn(*args): print args
可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:
>>> fn()()>>> fn('a')('a',)>>> fn('a', 'b')('a', 'b')>>> fn('a', 'b', 'c')('a', 'b', 'c')
对list切片(快速的取出一些数):
可以从索引1开始,取出2个元素出来:
>>> L[1:3]['Lisa', 'Bart']
>>> L[::2]['Adam', 'Bart']
第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
可以倒序切片,原理相同。同时字符串也可以使用切片。
迭代:
在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
在Python中,迭代是通过 for ... in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:
for (i=0; i<list.length; i++) { n = list[i];}
enumerate()函数的使用: enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):... print index, '-', name... 0 - Adam1 - Lisa2 - Bart3 - Paul
在迭代dict的时候,假使我们需要迭代dict的value,可以利用values()这个函数:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }print d.values()# [85, 95, 59]for v in d.values(): print v# 85# 95# 59
values() 方法实际上把一个 dict 转换成了包含 value 的list。在迭代dict的时候,假使我们需要同时迭代key和value的时候,我们可以利用items()函数:
>>> for key, value in d.items():... print key, ':', value... Lisa : 85Adam : 95Bart : 59
可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value。生成列表:
>>> [x * x for x in range(1, 11)][1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
可以快速的生成我们需要的序列,写法比较简洁。>>> [x * x for x in range(1, 11) if x % 2 == 0][4, 16, 36, 64, 100]
在后还可以加上条件进行筛选。- 【python】:python学习笔记
- Python学习笔记-Python起步
- Python学习笔记-Python基础
- Python学习笔记-Python对象
- Python基本概念--Python学习笔记
- Python学习笔记:Python函数
- python学习笔记-python安装
- Python学习笔记--Python基础
- 【Python】python基础学习笔记
- python学习笔记3
- Python学习笔记
- Boost.Python学习笔记
- python学习笔记1
- python学习笔记2
- python学习笔记(2)
- Python学习笔记 Module
- Python学习笔记.
- python学习笔记(1)
- pat 1068. Find More Coins (30)
- 【项目中】解析json数组对象
- PHP学习:循环语句
- SQLSERVER索引中的PAD_INDEX与FILLFACTOR
- Linux 时间
- python 学习笔记
- SQL Server 日期函数
- MySQL-5.6.13免安装版配置方法
- HDU1242
- hadoop在使用PathFilter时遇到的问题
- 查找练习 hash——出现过的数字
- NBUT 1639 大还是小?
- codeforces 707C Pythagorean Triples(数学)
- Android sendevent/getevent 用法