1.变量的命名和使用:慎用小写字母l和大写字母O,因为容易被看成数字1和0
2.方法是Python可对数据执行的操作,方法后面跟括号
3.全部大/小/首字母大写:name.upper()/name.lower()/name.title()
4.使用“+”拼接字符串
5.在编程中,空白泛指任何非打印字符,如空格、制表符和换行符
6.暂时删除字符串中的空白(末尾/开头/两端):
favorite_language.rstrip()/lstrip()/strip()
7.浮点数运算结果包含的小数位数可能是不确定的:>>>0.2+0.1 0.300000000000000004
8.python2中,整数除法的结果只包含整数部分,小数部分被删除,
要避免,需确保至少一个浮点数。
9.在列表结尾添加/插入元素:motorcycles.append('suzuki')/insert(0,'ducati')
删除:del motorcycles[0]
10.pop()可删除列表末尾的元素,并让你能够接着使用它:
popped_motorcycles = motorcycles.pop() (pop()的返回值为删掉的项)
也可以使用pop()来删除列表中任何位置的元素,只需指定索引:motorcycles.pop(0)
11.若只知道要删除的元素的值,使用remove(): motorcyles.remove('ducati')
12.使用方法sort()对列表进行永久性排序。
反序排列:car.sort(reverse=Ture)
函数sorted()能够按特定顺序显示列表元素,同时不影响它们在列表中的原始顺序:
print(sorted(cars))
13.要反转列表元素的排列顺序,使用方法reverse():cars.reverse()
这里注意方法reverse()永久性地修改元素的排列顺序,可通过再次调用恢复原列表。
14.len()可快速获悉列表的长度:len(cars)
15.索引-1总是返回最后一个列表元素,仅当列表为空时,这种方式才会导致错误。
16.遍历整个列表:for magician in magicians: print(magician)
对于用于存储列表中每个值的临时变量,可指定任何名称。
使用单数和复数式名称,可方便判断代码段处理的是单个元素还是整个列表。
17.函数range()从指定的第一个值开始,到达第二个值后停止,输出不包括第二个值。
如果将range()作为list()的参数,输出将是一个数字列表。
18.列表解析:将for循环和创建新元素的代码合成一行,并自动添加新元素:
squares = [value**2 for value in range(1,11)]
注意这里的for语句末尾没有冒号。
19.列表赋值不能得到两个列表,要复制列表,可创建一个包含整个列表的切片\
方法是同时省略起始索引和终止索引([:]):friend_foods = my_foods[:]
20.不能给元组的元素赋值。虽然不能修改元组的元素,但可以给元组的变量赋值。
21.建议每行的字符数不超过80,注释的行长不超过72字符
22.要判断特定的值是否已包含/不包含在列表中,可使用关键字in/not in
for user not in banned_users: print(user.title())
23.python并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用\
而在其他一些情况下,使用一条elif语句处理特定的情形会更清晰。
24.只执行一个代码块,就是用if-elif-else结构,
若要运行多个代码块,就使用一系列独立的if。
25.字典中,与键相关联的值可以是数字、字符串、列表乃至字典。
Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。
删除键-值对,需指定字典名和要删除的键。del alien_0['points']
一种不错的做法是在最后一个键-值对后面加上逗号,为后续添加做好准备。
遍历键-值对:
for key,value in user_0.items():
for name,language in favorite_languages.items():
在不需要使用字典中的值时,方法keys()很有用。也可省略(也不包含items),输出相同。
for name in favorite_languages.keys(): <==> for name in favorite_languages:
26.屏幕坐标系的原点通常为左上角。
27.要想按顺序遍历字典中的所有键,一种方法是在for循环中对返回的键进行排序(如:sorted())
28.集合类似于列表,但每个元素都必须是独一无二的
通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素。
29.使用Python2.7,应使用函数raw_input()来提示用户输入。
Python2.7也包含函数input(),但它将用户输入解读为Python代码,并尝试运行他们。
30.for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将难以追踪其中的元素。
要在遍历列表的同时对其进行修改,可使用while循环。
31.函数pop()以每次一个的方式从列表末尾删除元素,返回值为删除的元素。
32.传递实参:位置实参,关键字实参。
要让实参变成可选的,可指定一个默认值给实参---空字符串。
33.将列表传递给函数后,函数就可对其进行修改,这种修改是永久性的。
34.形参名*toppings中的星号让Python创建一个名为toppings的空元组,
并将收到的所有值都封装在这个元组中。
必须在函数定义中将接纳任意数量实参的形参放在最后。
形参**user_info中的两个星号让Python创建一个名为user_info的空字典,
并将收到的所有名称-值对都封装到这个字典中。
35.import语句允许在当前运行的程序文件中使用模块中的代码。
模块是扩展名为.py的文件,包含要导入到程序中的代码。
导入模块中的特定函数:
from module_name import function_0,function_1
关键字as将函数重命名为你提供的别名:
from pizza import make_pizza as mp
使用as给模块指定别名:import pizza as p
使用*运算符可以导入模块中的所有函数:from pizza import *
建议:要么只导入你需要的函数,要么导入整个模块并使用句点表示法。
36.函数编写指南:应给函数指定描述性名称,且只在其中使用小写字母和下滑线。
给形参指定默认值时,等号两边不要有空格。
37.根据类来创建对象被称为实例化。
根据Python,首字母大写的名称指类。
注意“__init__”方法,开头和末尾各有两个下划线,这个约定旨在避免Python默认方法与普通方法发生名称冲突。
形参self必不可少,还必须位于其它参数的前面。
以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。
这样可通过实例访问的变量称为属性。
在Python2.7中创建类时,需要在括号内包含“object”:
class Dog(object):
class Dog():
'''一次模拟小狗的简单尝试'''
def __init__(self,name,age):
'''初始化name和age'''
self.name = name
sele.age = age
def sit(self):
'''模拟小狗被命令时蹲下'''
print(self.name.title() + ' is now sitting.')
38.类中的每个属性都必须有初始值,哪怕这个值时0或空字符。
在有些情况下,如设置默认值时,在方法__init__()内指定这种初始值是可行的;
如果你对某个属性这样做了,就无需包含为它提供初始值的形参
class car():
def __init__(self,make,model,year):
'''初始化描述汽车的属性'''
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0 #注意这里
...
39.可以以三种不同的方式修改属性的值:
直接修改属性的值,如:my_new_car.odometer_reading = 23
通过方法进行设置,如:def update_odometer(self,mileage)
self.odometer_reading = mileage
my_new_car.update_odometer(23)
通过方法对属性的值进行递增:def update_odometer(self,mileage)
#将里程表增加指定的量
self.odometer_reading += mileage
40.一个类继承另一个类时,它将自动获得另一个类的所有属性和方法
原有的类称为父类,而新类称为子类。
子类继承了父类的所有属性和方法,同时还可以定义自己的属性和方法。
例:父类为car
class ElectricCar(Car):
#电动汽车的独特之处
def __init__(self,make,model,year):
#初始化父类的属性
super().__inti__(make,model,year)
创建子类时,父类必须包含在当前文件中,且位于子类前面;
定义子类时,必须在括号内指定父类的名称。
super()是一个特殊函数,帮助Python将父类和子类关联起来,父类也称为超类。
在Python2中,函数super()需要两个实参:子类名和对象self。
super(ElectricCar,self).__inti__(make,model,year)
41.重写父类:使用继承时,可让子类保留从父类那里继承而来的精华,并剔除不需要的糟粕。
通过重新定义方法覆盖掉父类的方法。
将实例用作属性:self.battery = Battery()
42.导入类:from car import Car,ElectricCar (导入所有类用*)
43.类名采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。
实例名和模块名都采用小写格式,并在单词之间加上下划线。
每个类和模块都应包含一个文档字符串进行功能描述。==>