Python笔记:第三部分 语句与语法 第十一章 赋值、表达式与打印

文章目录

  • 赋值语句
    • 特性
    • 赋值语句的形式
    • 序列赋值语句
    • 扩展的序列解包
  • 变量命名惯例
  • 表达式语句
    • 常见表达式语句
    • 表达式语句和原处修改—错误示例
  • 打印操作
    • Python3.X的Print函数
      • 调用格式

赋值语句

特性

  • 赋值语句建立对象引用值
  • 变量名在首次赋值时会创建
  • 变量名在引用前必须先赋值
  • 执行隐式赋值的一些操作

赋值语句的形式

Python笔记:第三部分 语句与语法 第十一章 赋值、表达式与打印_第1张图片

序列赋值语句

任何变量名的序列都可以赋值给任何值的序列,而Python会按照位置一次赋值一个元素

  • 元组赋值语句
    在语句执行时,Python会建立临时的元组,来存储右侧变量的原始值,分解赋值语句也是一种交换两个变量的值,却不需要自行创建临时变量的方式

扩展的序列解包

  1. 扩展的解包的实际应用
  • 一个带单个星号的名称 *X,可以用于赋值目标中,来指定对序列的一个更通用的的匹配方式;带星号的名称会被赋值给一个列表,该列表收集了序列中剩下的没被赋值给其他名称的所有项。
  • 该方法将一个序列划分为“前面”和“剩余”
>>>seq = [1,2,3,4,5]
>>>a, *b = seq
>>>a
1
>>>b
[2,3,4,5]
>>>seq = [1,2,3,4,5]
>>>a, *b, c = seq
>>>a
1
>>>c
5
>>>b
[2,3,4]
  • 无论带星号的名称出现在哪里,这个名称都会被赋值一个列表,而这个列表会收集起所有在这个位置上没有被分配给其他名称的待分配对象
  • 与正常的序列赋值一样,扩展的序列解包语法对任何序列类型(可以是任意可迭代对象)都有效,而不仅限于列表。
  1. 边界情况
  • 带星号的名称有可能只匹配到单个的项,但总会向其赋值给一个列表。如果剩下的内容不能匹配带星号的名称,那么它将赋值给一个空列表,不论该名称出现在哪里。
  • 如果使用多个带星号的名称或是名称数目少于值序列长度,同时没有带星号的名称,亦或是带星号的名称自身没有被编写到一个列表中,都会引发错误。

变量命名惯例

  • 以单一下划线开头的变量名(_X)不会被from module import *语句导入
  • 前后有下划线的变量名(X)是系统定义的变量名,对解释器具有特殊意义。
  • 以两下划线开头,但结尾没有两个下划线的变量名(__X)是类的本地变量
  • 通过交互模式运行,只有单个下划线的变量名会保存最后表达式的结果

表达式语句

常见表达式语句

通常在两种情况下,表达式用作语句

  • 调用函数和方法
  • 在交互模式提示符下打印值
    Python笔记:第三部分 语句与语法 第十一章 赋值、表达式与打印_第2张图片

表达式语句和原处修改—错误示例

>>>L = [1, 2]
>>>L = L.append(3)
>>>print(L)
None

对列表调用append、sort或reverse这类原处修改运算,一定是对列表在原处的修改
这些方法在列表修改后并不会把列表返回,事实上他们返回的是None对象

打印操作

  • 在Python2.X中,打印是语句,拥有自己特定的语法
  • 在Python3.X中,打印是一个内置函数,用关键词来表示特定模式

Python3.X的Print函数

调用格式

从语法上讲,调用Python3.X的print函数,通常有如下形式:
print([object,...][,sep=' '][.end='\n'][.file=sys.stdout])
方括号中的项是可选的,并且可能会在一个给定的调用中省略,并且 = = = 后面的值都给出了参数的默认值。这个内置的函数把字符串sep所分隔开的一个或多个对象的文本表示,后面跟着的字符串end,都打印到流file中。

  • sep,endfile部分如果给出的话,必须作为关键字参数给定——也就是说, 必须使用一种特殊的name=value语法来根据名称而不是位置来传递参数
  • sep是在每个对象的文本之间插入的一个字符串,如果没有传递的话,它默认地是一个单个的空格;传递一个空字符串将会抑制分隔符。
  • end是添加在打印文本末尾的一一个字符串,如果没有传递的话,它默认的是一个
    \n换行字符。传递一个空字符串将会避免在打印的文本的末尾移动到下一个输入
    行一下一个print将会保持添加到当前输出行的末尾。
  • file指定了文本将要发送到的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys.stdout。

你可能感兴趣的:(Python,笔记)