"这是一份关于Python 3.1版本的学习笔记,主要记录了与Python 2.x版本的不同之处,并且是从《简明Python》一书学习得来。笔记涵盖了基本语法、打印输出、字符串处理、操作符优先级、流程控制等方面的知识。"
在Python 3.1中,有一些关键的改变和特性值得我们关注。首先,Python 3.x系列取消了Python 2.x中的print语句,将其改为print()函数,这意味着在Python 3.1中,打印输出需要使用括号,如`print("Hello, World!")`。
字符串处理方面,Python 3.1区分了单引号和双引号字符串,但它们都可以用来定义字符串,且字符串默认采用Unicode编码。对于多行字符串,可以使用三引号(`'''`或`"""`),并且在源代码中换行不会被自动添加到字符串中,需要使用`\n`来表示换行。
操作符的使用在Python 3.1中也有所调整。例如,`*`用于字符串重复,`+`用于字符串连接。除法运算符`/`返回的是浮点数结果,如果想要得到整数除法,可以使用`//`。模运算 `%` 返回余数,而幂运算 `**` 用于计算指数。
在流程控制方面,Python 3.1引入了`input()`函数替代了Python 2.x中的`raw_input()`,`input()`会将用户输入的内容当作字符串处理。循环结构如`for`和`while`可以配合`else`子句,当循环正常结束(非break退出)时执行`else`块的代码。
条件表达式也有了变化,使用`if...elif...else`结构来实现条件判断,没有像其他语言那样的`switch`语句。逻辑运算符`not`, `and`, `or` 的优先级低于比较运算符,使得表达式更加直观。
此外,Python 3.1还支持列表推导式 `[expression for item in iterable]` 和字典推导式 `{key: value for (key, value) in iterable}`,以及元组的单元素表示 `(value,)` 和空元组 `()`。
函数的定义和调用也发生了变化,`lambda`关键字用于创建匿名函数,`function_name(args)`用于函数调用。成员访问如`object.attribute`,序列切片`sequence[start:end]`,以及函数调用`function(arguments)`等都是Python 3.1中的基本操作。
这份笔记详细记录了Python 3.1相对于2.x版本的一些关键差异,是初学者和进阶者了解这一版本Python的重要参考资料。