教程python
一、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解析,因此会报错。编码
三、python 有序集合(list)spa
若是要取最后一个元素,除了计算索引位置外,还能够用-1作索引,直接获取最后一个元素指针
>>> classmates[-1] 'Tracy
*另外一种有序列表叫元组:tuple。tuple和list很是相似,可是tuple一旦初始化就不能修改code
循环是让计算机作重复任务的有效的方法,有些时候,若是代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时能够用Ctrl+C退出程序,或者强制结束Python进程。对象
四、空函数
若是想定义一个什么事也不作的空函数,能够用pass语句:blog
def nop(): pass
空函数能够做为占位符,此时不定义,能够在之后定义。好比咱们能够这样使用它:教程
if a>12: pass
五、定义一个函数
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。
定义默认参数要牢记一点:默认参数必须指向不变对象!
四、尾递归
调用函数自己,可是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)