欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 《Python基础教程》附录A笔记:简明教程

《Python基础教程》附录A笔记:简明教程

2025/3/15 10:13:53 来源:https://blog.csdn.net/holeer/article/details/146185954  浏览:    关键词:《Python基础教程》附录A笔记:简明教程

《Python基础教程》第1章笔记👉https://blog.csdn.net/holeer/article/details/143052930

附录A 简明教程

这是一个简明教程,根据本书作者在网上发表的教程“Instant Python”改编而成,针对的读者是:熟悉一两门语言,但想快速掌握Python的程序员。

A.1 基础知识

要想对Python语言有基本认识,可将其视为伪代码,因为它们很像。变量没有类型,因此不需要声明。变量在你给它赋值时出现,在你不再使用时消失。

(1)赋值是使用运算符=完成的,(相等性检查由运算符==执行)可同时给多个变量赋值。示例如下。

x = 42
x,y,z = 1,2,3
first, second = second, first
a = b = 123

(2)语句块通过且只能通过缩进来表示(不使用begin/end,也不使用花括号)。下面是一些常见的控制结构

if x < 5 or (x > 10 and x < 20):print("The value is OK.")if x < 5 or 10 < x < 20:print("The value is OK.")# 以#打头的行是注释,将被解释器忽略。
# 以上两个示例等价。for i in [1, 2, 3, 4, 5]:print("This is iteration number", i)x = 10
while x >= 0:print("x is still not negative.")x = x - 1# for循环中的索引变量遍历(使用方括号表示的)列表的元素。要编写普通的for循环(即计数循环),可使用内置函数range。
# 打印0~99(含)的值
for value in range(100):print(value)

(3)下面来介绍基本的用户交互。要提示用户输入并获取这些输入,可使用内置函数input。函数input
显示(可选的)提示语,并让用户输入一个字符串。

x = float(input("Please enter a number:"))
print("The square of that number is", x * x)

函数input显示(可选的)提示语,并让用户输入一个字符串。在这里,需要的是一个数,因此使用float将输入转换为浮点数。

(4)接着是一些华丽的数据结构,其中最重要的是列表和字典。

①列表

# 列表是使用方括号表示的,并且允许嵌套。
name = ["Cleese", "John"]
x = [[1, 2, 3], [y, z], [[[]]]]
# 列表的优点之一是,可通过索引和切片访问其单个元素或一系列元素。索引是通过在列表名后面加上用方括号括起的数字实现的。(第一个元素的索引为0)
print(name[1], name[0]) # 期望输出:"John Cleese"
name[0] = "Smith"
# 切片几乎与索引相同,但需要指定起始索引和结束索引,并用冒号(:)分隔它们。请注意,不包含结束索引对应的元素。如果省略了一个索引,将假定你要从列表开头开始或到列表末尾结束。比如,切片x[:3]意味着从列表开头到第4个元素(不含)之间的所有元素,切片x[3:]意味着从第4个元素(含)开始到最后一个元素(含)的所有元素。还可使用负数索引,如x[-3]就是从列表末尾往前数的第3个元素。
x = ["SPAM", "SPAM", "SPAM", "SPAM", "SPAM", "eggs", "and", "SPAM"]
print(x[5:7]) # 打印列表["eggs", "and"]

②字典

字典类似于列表,只是其内容是无序的。字典的每个元素都有键(名称)可用来查找元素,就像真正的字典一样。

# 创建字典的语法示例如下
phone = {"Alice" : 23452532, "Boris" : 252336,"Clarice" : 2352525, "Doris" : 23624643 }
person = {'first name': "Robin", 'last name': "Hood",'occupation': "Scoundrel" }
print(person["occupation"]) # 获得person的职业
person['last name'] = "of Locksley" # 修改person的姓

与列表一样,字典也可包含其他字典或列表。当然,列表也可包含字典。通过这样的嵌套,可轻松地创建非常复杂的数据结构。

A.2 函数

下一步是抽象。 你要给代码段指定名称,并使用一些参数来调用它。换而言之,你想定义函数(也叫过程)。

# 用关键字def定义函数
def square(x):return x * xprint(square(2)) # 期望输出:4
# return语句用于从函数返回值。

向函数传递参数时,就将值赋给了参数,即创建了一个新引用。这意味着可在函数中直接修改原始值,但如果让参数指向其他东西(重新绑定它),将不会影响原始值。这与Java类似。示例如下:

def nochange(x):x = 0y = 1
nochange(y)
print(y) # 将会打印1

然而,如果传入的是列表(或字典、对象),并在函数中修改了它,这些修改将反映到调用函数的地方。如果要创建列表a的副本,可使用b=a[:]

def change(x):x[1] = 4y = [1, 2, 3]
change(y)
print(y) # 将会打印[1,4,3]

在Python中,函数也可以作为值存储在变量中。因此,如果有函数square,可以这么做:

queeble = square
print(queeble(2)) # 打印4

在函数中,指定了默认值的参数是可选的,比如def spam(age=32): ...,调用它时如果不指定参数,参数age将为默认值32。

A.3 对象及相关内容

预备知识:面向对象编程的工作原理。(可参阅第7章)

在Python中,使用关键字class来定义类,如下所示:

class Basket:# 对象中定义的函数称为方法,所有方法必不可少的第一个参数是selfdef __init__(self, contents=None):    self.contents = contents or []    def add(self, element):    self.contents.append(element)    def print_me(self):    result = ""    for element in self.contents:    result = result + " " + repr(element)    print("Contains:", result)

可像这样来调用方法:object.method(arg1, arg2)

在Python类中,方法和成员变量(属性)都是不受保护的,即不能指定为私有的。封装不过是一种编程风格。(如果确实需要,可使用命名约定来实现一定程度的保护,如让名称以一个或两个下划线开头。)

在Python中,所有的值都可用作逻辑值,其中一些空值(如False、[]、0、"“和None)表示逻辑假,而其他值(如True、[0]、1和"Hello, world”)都表示逻辑真。

对于诸如a and b的逻辑表达式,像下面这样计算其值:检查a是否为真。如果不是,就直接返回它。如果是,就直接返回b。对于逻辑表达式a or b,则像下面这样计算其值:如果a为真,就返回它。否则,就返回b。以上机制称为短路逻辑

在Python中,开头和结尾都是两个下划线的方法称为魔法方法,比如上文的__init__。方法__str__定义了对象被视为字符串时是什么样的。在Basket类中,可使用下面的方法来替换print_me。替换之后,可以用print(b)打印Basket对象b。

def __str__(self):result = ""    for element in self.contents:result = result + " " + repr(element)return "Contains: " + result

要派生出子类,可像下面这样做:

class SpamBasket(Basket):# ...

Python支持多继承,因此可在括号内指定多个由逗号分隔的超类。构造函数是通过定义特殊成员函数__init__来提供的。假设SpamBasket包含构造函数__init__(self, type),则可像下面这样创建其实例:y =SpamBasket("apples")。在SpamBasket的构造函数中,如果需要调用一个或多个超类的构造函数,可像下面这样做:super().__init__()

A.4 补充知识

大多数函数和类都放在模块中,而模块其实就是文件扩展名为.py的文本文件,其中包含Python代码。你可在程序中通过导入来使用这些函数和类。示例如下。(标准库模块可参阅第10章)

# 要使用标准模块math中的函数sqrt,可以这么做:
import math
x = math.sqrt(y)
# 也可以这么做:
from math import sqrt
x = sqrt(y)

导入模块/脚本时,将运行其中的所有代码。要让你的程序既是可导入的模块又是可运行的程序,可在末尾添加类似于这样的代码:if __name__ == "__main__": main()。这种写法很奇妙,相当于说:如果这个模块是作为可执行的脚本运行的(即不是将其导入其他脚本),就调用函数main。当然,可以在上述语句的冒号后面加上代码块。

在UNIX中,要创建可执行的脚本,可将下面的代码作为第一行,让脚本能够独立地运行:#!/usr/bin/env python

有些操作(如除以零或读取不存在的文件)会导致错误,即异常。如果异常未得到处理,程序将终止并打印一条错误消息。要避免出现这种情况,可使用try/except语句,如下所示:

def safe_division(a, b):try:return a/bexcept ZeroDivisionError: pass

ZeroDivisionError是一种标准异常。在问题通常不会发生但有可能发生时,使用异常可避免执行代价高昂的测试等工作。你可以创建自定义异常,并在合适的时候引发它们。

就介绍到这里,但愿你有所收获。现在就去自行尝试吧,但别忘了Python学习箴言:利用源代码进行学习(这基本上意味着阅读能够获得的所有代码)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词