python从入门到实践读书笔记_《Python编程:从入门到实践》学习笔记1

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.类名采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。

实例名和模块名都采用小写格式,并在单词之间加上下划线。

每个类和模块都应包含一个文档字符串进行功能描述。==>

你可能感兴趣的:(python从入门到实践读书笔记_《Python编程:从入门到实践》学习笔记1)