Python入门读物摘要--How to think like a csor

本文介绍了Python编程的基础知识,包括变量、表达式、语句、函数、条件、字符串、列表、字典等内容,并探讨了递归、异常处理及类与对象的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

How to Think Like a Computer Scientist 英文第二版原文

原文通俗易懂,不需要做过多解释,列出一些需要注意的地方。

 

1 编程之路

程序中出错:语法错误、运行时错误和语义错误

2 变量、表达式和语句

2.1 类型与值

不同的值属于不同的类型,类型是一个集合,定义了其值取值的范围。

python中以逗号‘,’间隔的一行矢量,被解释为Tuple。

print(1,000,000) 其输出为 1 0 0,Print函数将逗号解释为分隔符。

t=1,000,000  print(t)  其输出为(1,0,0)

2.3 关键字

变量不能是关键字,可以使用print(keyword.kwlist)查看python当前定义的关键字。

2.4 语句

语句是解释器可以执行的指令,如赋值语句

2.5 表达式

表达式是变量、值以及运行符的组合,如 1+1

2.6 操作符和操作数

操作符是表示特定计算的符号如+,-

注:在python3以后,raw_input()函数被删除,input()函数替代了raw_input(),曾经的input()的功能可以由eval(input())来实现

3 函数

4 条件

5 带返回值的函数

pthon中函数类型为function

6 遍历

6.1 多次赋值

a=5

b=a   //id(a)==id(b)

b=3   //id(a!=id(b)

6.9 封装与泛化

封装指将代码块放在函数中,泛化指抽取特殊使得函数更能应对一般情况。

6.13 函数的优点

良好的函数名,让其中的代码更易读。将长代码划分为函数,方便调试。良好定义的通用函数可以复用。

7 字符串

字符串比较可以用== 来进行。

string模块中定义了字符串的一些常量,如string.printable,string.ascii_lowcase等。可以用help(string)来查看。

字符串格式化:"<FORMAT>" % (<VALUES>)

9 List

9.8 List元素删除

del list1[slice]

9.10 对象与值

在例子中,str1和str2引用了对象'12345',称stri为标识符。表面上看两个string对象的值是相等的,通过id ()可以看到,两个对象其实是一个对象。但lst1和lst2标识却不同,它们引用了两个不同的lst对象,两个对象只是拥有相同的值。从这里可以看到python对可变对象和不可变对象的使用方式。

在使用赋值操作后,我们使用了别名,lst1和lst2指向同一个对象,改变任何一个都可以通过另一个反映出来。如果我们希望复制一个list,我们可以使用下面的方法:lst3 = lst1[:]

9.13 list遍历

可以用in的方法,或者enumerate()返回一个(index,value)对来遍历。

9.14 list作为参数

list作为函数参数时是作为引用传入的,如果在函数内部修改了list,则调用者可以看到这些改变。同时如果返回一个list,则返回也是一个引用,也就是说在函数内部创建的list在外面可以被使用。实际上python中函数传入参数和返回参数都是引用,函数返回后,其中的变量虽然不可用了,但此变量所引用的对象仍然保留了。

11 递归和异常

11.1 元组

以逗号分隔的序列,可以用()括起来。因此单个元素的Tuple需要这样(5,),否则解释器认为这是个整数。

多元赋值 a,b,c = c,b,a

11.4 纯函数与修改器

11.5 递归数据结构

如list,tuple中的元素仍可以为list和tuple,内置的sum()不能处理嵌套序列,需要自己实现。

11.7 异常

异常的使用可以见11.4中的代码

11.8 尾递归

如果函数最后返回的是自己的调用,称之谓尾递归,Python不建议使用尾递归。

12 字典

12.2 字典的成员方法

keys() 返回字典中所有关键字的列表,values()返回所有值的列表,items()返回所有条目的列表,has_key()判键是否在字典中。

12.3 字典的复制

使用成员方法copy()可以得到当字典的一个复本。

12.4 稀疏矩阵的表示

对于稀疏矩阵而言,列表的方法导致多数位置为0,空间浪费,因而只需要记录非0点的位置和值即可。可以使用字典来模拟稀疏矩阵的存储。由于访问不存在的key时,字典会抛出KeyError的异常,因此字典提供了get(key,[val])的成员方法,若key不存在,其返回val或者None

12.6 大整数

 Python提供了Long类型的整数支持任意大的整数,创建一个大整数只需要在用long()转换,或者在数字后加后缀L。

13 类与对象

13.1 属性

Python中,类和对象都可以有属性,对象可以实例化类之后动态的新添加属性。当然也可以在每个类中事先就添加好这些属性。在类的定义体中如果一个数据属性不是由self提引,

13.6 相似性

相同=》相等,但反之不成立。==用来比较两个引用是否相同。如果希望仅看值是否相等,必须使用深度比较,比较对象各个属性是否相等。

13.10 copy模块

其中copy()提供了复制简单对象的方法,而deepcopy()提供复制包含其他对象的对象的方法。

15 类和方法

15.8 运算符重载

python提供的运算符重载的方式是用户可以声明形以__add__(),__sub__(),__mul__()之类的函数,当调用+ - *时,这些运算符会调用类上的__x__()相应的操作。

16 类Set对象

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值