1.代码顶格写,注意每个层次语块间的缩进,非常容易由缩进错误引起bug,强烈建议用空格而不用Tab制表符。
2.输出函数运算结果,前面要加 print , 比如 print Counter(序列名) 用来打印出序列中每个元素出现的次数 或者 print Counter(序列名).most_common(数字) 用来打印出序列中出现次数最多的前几个元素。
3.通过函数raw_input() 可以从键盘读入一个字符串赋值给自己定义的一个变量,还能给通过给raw_input()一个字符串型的参数来在屏幕上输出一段提示性文字。比如:age = raw_input("Input your age:")
4.在下面的计算中要用到上面输入的变量时,要将字符串转换成数量,如转化为整形并与2015相减:
2015 - int(age)
5.双除号 // 是将除法运算结果取整数,但是float型;双乘号 ** 是幂运算,结果是int型整数。
6.print 后面两组内容拼接,用逗号“,”可以拼接数字和字符串,但是中间有空格隔开;用“+”号只能拼接字符串,两串字符串中间无空格。
7.在print语句的结尾使用了一个逗号来消除每个print语句自动打印的换行符。
8.在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,不是开始一个新的行。例如:"This is the first sentence.\ This is the second sentence."等价于"This is the first sentence. This is the second sentence."
9.Python的数组中可以包含任何类型的变量,甚至是list本身如果要取列表中的元素我们依然可以用索引的方式。
10.list的切片产生的是个list,元组的切片依然是不可变的元组。
11.要解决一个变量在不在一组变量里这个问题,就新定义个操作就叫"在"吧,这就是我们的in操作。
比如,print 1 in [1, 2, 3] ;print 4 not in [1, 2, 3]。
12.Python以缩进来区分代码块,if 后面我们并没有像其他语言那样用大括号将if要执行的语句包围起来,而是用统一的缩进来表示下面的代码是属于 if 要执行的。另外,Python提供了一种简化的语法,即elif,他是else和if的联合使用。
13.if 和 elif 语句 以及 while ,for 语句等后面要加“:”,表示下面的语句是相应的语句块。
14.Python提供了一种优雅的遍历list的方法for…in…
15.continue可以跳过当前循环的剩余部分,重新回到循环的开始。
16.模块和函数方法下标是两个下划线“__”。
17.import一个模块默认情况下会将这个模块执行,通常我们可以用这种方式来测试一个模块。
18.对象之间的赋值,并不是把一个对象的值复制一份给另一个值,而是把这两个对象绑定到相同的一块内存空间上。
19.Python中某些函数是并行计算的?
20.类是对象的定义,我们上一节看到的list a和list b相当于是list 这个类的实例化,类就像一个模板,告诉每个由他实例化出来的对象应该长什么样子。类似C中的结构。
21.由于Python语法要求在构成缩进的语法成立时必须有一行语句,但我们这里其实不需要任何操作,于是我们就可以用pass。
22.类的初始化函数如下所示
class Myclass:
def __init__(self):
在Python中类中的__init__函数会在类实例化的时候自动运行,可以在其中申明对象的变量。你可能会注意到self的存在,这个参数代表了被实例化的对象本身,如果使用过C++或Java的人可以把它想象成this。
23.方法是在类中定义的用来对该类的对象进行操作的函数,在所有的方法定义中,都要显式的把self参数列出来并放在第一参数的位置,但是当我们调用它的时候则不需要显式的写出这个参数。比如一个方法定义需要两个参数,在调用的时候你只需要显式提供后两个参数即可,因为Python的解释器会自动帮我们绑定self这个参数。
24.Python中定义的所有类都默认的继承自object这个类,将要继承的类加括号写在类名称后面就可以完成继承。
25.print语句中,我们使用一个定制,后面跟着%符号后的单个项目——没有圆括号。这只在字符串中只有一个定制的时候有效。
26.key必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。注意,你只能使用不可变的对象(比如字符串)来作为字典的key,但是你可以不可变或可变的对象作为字典的value。基本说来就是,你应该只使用简单的对象作为key。
27.我们使用字典的items方法,来使用字典中的每个键/值对。这会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。我们抓取这个对,然后分别赋给for..in循环中的变量name和address然后在for-块中打印这些值。我们可以使用in操作符来检验一个键/值对是否存在,或者使用dict类的has_key。
28.如果想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都参考 同一个对象。
29.startwith方法是用来测试字符串是否以给定字符串开始。in操作符用来检验一个给定字符串是否为另一个字符串的一部分。find方法用来找出给定字符串在另一个字符串中的位置,或者返回-1以表示找不到子字符串。str类也有以一个作为分隔符的字符串join序列的项目的整洁的方法,它返回一个生成的大字符串。
30.交换两个值,在Python的世界里是这样的:a, b = b, a可以用这种方式对变量进行赋值:a, b, c = 1, 2, 3
31.for...else...语句中,如果循环不是因为break结束而是完成了整个循环的话就会执行else里面的语句
32.os.sep变量会根据你的操作系统给出目录分隔符,即在Linux、Unix下它是'/',在Windows下它是'\\',而在Mac OS下它是':'。使用os.sep而非直接使用字符,会使我们的程序具有移植性,可以在上述这些系统下工作。
33.一个逻辑行被分成了两个物理行,记住我们可以使用物理行尾的反斜杠来表示逻辑行在下一物理行继续。
34.对象可以使用普通的 属于 对象的变量存储数据。属于一个对象或类的变量被称为域。对象也可以使用 属于 类的函数来具有功能。这样的函数被称为类的方法。这些术语帮助我们把它们与孤立的函数和变量区分开来。域和方法可以合称为类的属性。
35.__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。注意,这个名称的开始和结尾都是双下划线。我们没有专门调用__init__方法,只是在创建一个类的新实例的时候,把参数包括在圆括号内跟在类名后面,从而传递给__init__方法。这是这种方法的重要之处。