1、python大小写敏感
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义
>>> print '\\\t\\'
\ \
>>> print r'\\\t\\'
\\\t\\
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容
>>> print '''line1
... line2
... line3'''
line1
line2
line3
注意:.py文件里输入中文,然后在解析器执行文件,发现报错。
解决办法:在文件头部加上#coding:utf-8
如果设置为gbk则不行,原因很简单,我用的编辑器的编码为utf-8,所以我保存的文件自动为utf-8,如果文件的头部设置为gbk编码的话,那么解析器去解析时用gbk解析,所以会报错。
3、python 有序集合(list)
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素
>>> classmates[-1]
'Tracy
*另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。
4、空函数
如果想定义一个什么事也不做的空函数,可以用pass语句:
def nop():
pass
空函数可以作为占位符,此时不定义,可以在以后定义。比如我们可以这样使用它:
if a>12:
pass
5、定义一个函数
import math
def move(x,y,step,radius):
x1 = x + step * math.cos(radius)
y1 = y - step * math.sin(radius)
return x1,y1
print move(2,3,4,20)
总结:定义函数时,需要确定函数名和参数个数;
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用return随时返回函数结果;
函数执行完毕也没有return语句时,自动return None。
函数可以同时返回多个值,但其实就是一个tuple。
定义默认参数要牢记一点:默认参数必须指向不变对象!
4、尾递归
调用函数本身,但是return的返回值不包含表达式。这么做可以防止递归层数过多,出现堆栈溢出的情况。因为常规递归会逐层添加栈帧,直到最后一个栈帧释放后才开始释放。而尾指针相当于把常规的递归反过来,增加一层递归的同时释放前一个递归指针,所以能够始终保持只有一个栈帧在使用中。
常规递归
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
尾递归
def fact(n):
return fact_iter(1, 1, n)
def fact_iter(product, count, max):
if count > max:
return product
return fact_iter(product * count, count + 1, max)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。