python学习笔记

1:在使用print打印的时候字符串和变量之间用逗号分割.把逗号替换成一个空格
1)数据类型:长整型的数字结尾用L来指定
2)raw_input("Press<enter>")与C#console.ReadKey()是一样的
3)字符串的拼接同样使用的是+
4)需要注意的是Python的print打印出来的都是字符串,因此有多种变量替换的方法,跟C#中的ReadLine()和WirteLine是

一样的,都需要将打印的内容转换成字符串,不同的是C#的WirteLine是自动调用toString方法,而Python中没有自动,故需

要手动来实现,因此打印的时候实现的方法有多种
5)字符串的一些总结

在输出字符串的时候,使用变量的三种方法

使用逗号来使用变量
tmp=42
print 'My age is',tmp

使用变量来填坑
print 'My age is %s'%tmp

使用str类型转换成字符串
print 'My age is '+str(tmp)

使用反斜线来让变量转换成字符串,跟str函数是一样的
print 'My age is '+`tmp`

使用repr函数来转换
print 'My age is '+repr(tmp)

这里需要注意的是repr是函数,str是类型,就想C#中string类的tostring方法是同样的,综上总结
str(tmp)和C#中的(string)tmp是同样的用法属于强制转换,而repr(tmp)和tmp.tostring()是同样的
6)列表的count()方法计算某个元素出现的个数,extend添加一个列表至该列表,index()方法查找某个元素的索引位置,此

方法只有列表有,insert()方法像某个元素插于元素第一个参数是从那个位置起第二个参数是插于的数据,pop(1)是移除

某个元素并返回该移除的元素下标进行访问和del strs[1]一样,remove('a')移除元素使用元素名进行访问没有返回值,
reverse()将列表反序没有返回值,sort()将列表排序默认是升序没有返回值,sorted()排序但有返回值得到是一个新的序

列一个新的对象,sorted(reverse=True)降序排列
7)元组的操作:tuple()将序列转换成元组只能是列表或元组不能是字典list()转换成列表


2:bool类型的True和False首字母都要大写

3:if,while,for 判断条件后面接的是:,python的循环里面没有++只有+=
1)python中的空字符串就是False,一个变量有值的话那么它就是真

4:row_input()和input()是输出并接收有返回值的函数跟consolo.ReadLine()是一样的
1)input和row_input区别:
input只识别数字,不识别字符串如果想让此函数识别字符串的话需要用''或""来指明
raw_input不管输入的是什么类型的数据都会自动转换成字符串,因此不需要担心数据类型转换的问题
2)在字符串的行尾接上\,也就是不换行下行的字符串紧跟其后,其实就是转义换行符的意思,让换行符不换行而已
3)在字符串的前面加上r表示任何字符串保留其本意,像C#中的@是一样的不需要使用转义符

5:range 递归的一个函数 有三个参数 第一个起始数,第二个终止数(相当于for循环中的第二个判断条件只会小于该数)
第三个是递归的间隔(相当于i++)
也就是这三个函数参数替换了传统for循环的三个条件

6:for循环和while循环可以接一个else从句 但是值得注意的是如果循环内部执行了break,else从句将不执行,这个很容

易理解因为else从句和循环是一体的..循环退出那么else从句也就不再执行

7:在Python中定义函数用def

8:函数定义参数不需要定义类型,可以给最后一个参数赋值为有一个默认值可以用=来给参数赋值,但是不能给第一个参数

进行赋值

9:Python中也有局部变量和全局变量

10:在函数调用的时候不用在外面定义变量,可以直接在函数的括号内给参数赋值,这样可以不用管参数的循序,但是注意

的是执行的结果还是按定义的参数循序那样

11:python中也有return关键字 也是用返回函数的值,但是函数不用定义返回值类型

12:pass语句在python中表示一个空的语句块,这相当于C#中的{}函数没有函数体一样,例如接口中的函数都没有实现

13:函数的注释在python中称为文档字符串,它的实现是在函数的内部来定义的只需要按照它的格式就可以实现函数的提

示,也就是文档注释用多行字符串来实现(''' ''') ,第二行是空行第三行才是详细的函数描述.

14:python中的类库叫做模块,这只是一个概念问题没有必要去纠结这个,在.py文件的开头使用Filename:using_sys.py
如果想在程序中调用它里面的函数就需要使用到处关键字来描述,使用import sys,就可以在程序中使用它里面的函数了

15:python中的类库可以单独运行也可以由程序调用来运行,就像main()函数一样,可以通过一个属性来判断该模块是否是

独立运行的_name_和'_main_'进行判断就可以了

16:python中的打印语句print可以自动换行

17:python中的列表直接使用变量名=[] 的形式来定义一个集合对象就像C#中的list泛型集合是一样的可以使用append来

追加del来删除

18:集合的sort()函数是从小到大来排序的(也就是升序)

19:python中的数组被称为元组即使用变量名=()来定义每个元素用逗号来分割然而数组的长度是不可变的元素的值也是

不可变的

20:需要注意的是列表中也可以使用列表,元组中也可以使用元组,列表中也可以元组,元组中也可以使用列表,一个空元组

用变量名=()来定义,在定义只有一个元素元组的时候后面要接一个逗号string类型的不需要int类型才需要

21:python中在输出语句中占位符的使用也是用填坑的方式不过用法就不同了,使用%s或%d来指示填充的数据类型后面接

的真实数据用%(name,age)来表示不需要用逗号来分割%s表示该位置填充字符串,%d表示该位置填充整数
如下例:
name='fuxu'
age=24
print "Iam %s,myage is %d"%(name,age)

22:需要注意的是列表(泛型集合),元组(数组),字典(dictionary)它们是使用[],(),{}来定义各自的实例的;字典也是可

变的,增加和删除字典里的键值对是如下这样操作的:
定义一个字典实例:dictionary={'a':'fuxu','b':'liming','c':'wangliang'}
在字典中添加一个键值对:dictionary['d']='xiaosan'
在字典中删除一个键值对:del dictionary['d']
如果想要遍历这个字典里面的数据的话 例下:
dictionary={"a":"fuxu","b":"liming","c":"wangliang","d":"huangzhaohui"}
for i,j in dictionary.items():
   print i,j
变量之间用逗号分割就可以,要想通过key来访问value就可以中括号的方式来访问 dictionary["a"]

23:字符串或列表(泛型集合)都可以通过索引来获取其中的某一个元素,而这种通过索引来访问的方式有两种索引操作符

和切片操作符  实例如下:
list=['apple','mango','banana','carrot']
list[0]是apple
list[1]是mango
list[-1]是carrot
list[-2]是banana
这个很容易理解正数就是从左到右来查找的,负数就是从右到左来查找的
list[1:3]是索引1到索引3之间的元素,包括起始的元素但不包括终止的元素取到的元素是1和2对应的元素
list[:]表示所有和list[0:]相同
list[-3:]表示最后三个
list[-3:0] 结果是个空列表[],因为该中访问方式违背了索引访问的原则从小到大来访问,不能从大往小来访问
list[0:4:2] 结果会是怎样呢..最后一个分片操作说明了访问从0开始按2增长,4结束来访问
初始化一个只有10个元素的列表num=[None]*10,列表是可变的定义它的元素个数是没有意义的,像元组不可变定义的话就

比较有意义


24:Python中对象的引用也输入引用类型变量名只引用对象在内存中的位置并不引用对象本身(跟C#中的引用类型是一样

的),所以操作的都是同一个对象,任何一个引用了该对象的变量都会直接影响该对象

25:注意的是:
list=['apple','mango','banana','carrot']
mylist=list[:]
list和list[:]不是同一个对象,所以要想在内存中对该对象进行拷贝则需要使用切片操作符来进行拷贝操作

26:字符串的操作
常见字符串的函数有
startswith("某个字符串的开头的几个字符或第一个字母") 返回bool类型
if 'a' in string: In关键字可以指定某个字符或字符串是否存在于该字符串对象,返回bool类型
find("abc")找出该字符串在字符串对象中的位置,返回该字符串的位置或返回-1表示找不到该字符串
join()合并字符串,一般用来给某某字符串来指定分隔符;实例如下
string='|'
strs=('a','b','c','d')
string.join(strs) 显示结果为a|b|c|d
这里需要注意的是join函数是字符串对象才有的不能用strs.join(),该数组没有此方法
也可以直接使用一个空字符串对象来调用此方法 ''.join()


27:xrange和range
range生成的一个列表,xrange生成的只是一个生成器,因此在做循环的时候用xrange比range节约内存空间

28:在类中定义函数的时候,要给函数赋一个默认参数self,其意思就像C#中的this表明此方法是该类所拥有的
定义函数的关键字是def谨记

29:_init_初始化对象跟C#中的构造函数一样,只是叫法不同而已

posted @ 2012-12-29 14:57  ..空白  阅读(345)  评论(0)    收藏  举报