第十一章、表达式和打印

赋值语句

①、赋值语句建立对象引用值。

②、变量名在首次赋值时被创建。

③、变量名在引用前必须先赋值。

④、执行隐式赋值的一些操作。

1、赋值语句的形式:

①、元组和列表分解赋值。

②、序列赋值语句。

③、扩展的序列解包。

④、多重目标赋值。

⑤、增强赋值语句。

2、赋值序列:

高级序列赋值语句模式:赋值目标中的项数和主体的数目必须一致。

3、Python3.0中的扩展序列解包:

①、扩展的解包的实际应用:

在Python3.0中,我们可以在目标中使用带单个星号的名称来更更通用地匹配。

②、边界情况:

首先,带星号的名称可能只匹配单个的项,但是,总是会项其赋值一个列表。

其次,如果没有剩下的内容可以匹配带星号的名称,它会赋值一个空的列表,不管该名称出现在哪里。

最后,如果由多个带星号的名称,或者如果值少了而没有带星号的名称,以及如果带星号的名称自身没有编写到一个列表中,都将会引发错误。

③、一个有用的便利形式:

扩展的序列解包赋值只是一种便利形式。

④、应用于for循环:

由于for循环语句中的循环变量可能是任何赋值目标,扩展的序列赋值在这里也由效。

4、多目标赋值语句:

多目标赋值语句就是直接把所有提供的变量名都赋值给右侧的对象。

多目标赋值以及共享引用:

5、增强赋值语句:

增强赋值语句适用于任何支持隐式二元表达式的类型。

增强赋值语句有三个优点:

①、程序员输入减少。

②、左侧只需一次计算。

③、优化技术会自动选择。

增强赋值以及共享引用:隐含了“+=”对列表是做原处修改的意思。

6、变量命名规则:

①、程序中的事物选择变量名时,要遵循如下规则:

语法:(下划线或字母)+(任意数目的字母、数字或下划线)

区分大小写:SPAM和spam并不同

禁止使用保留字(Python2.6中,print和exec是保留字,nonlocal不是保留字)

②、命名惯例:

以单一下划线开头的变量名(_X)不会被from module import *语句导入。

前后有下划线的变量名(_X_)是系统定义的变量名,对解释器有特殊意义。

以两个下划线开头、但结尾没有两个下划线的变量名(__X)是类的本地变量。

通过交互模式运行时,只有单个下划线的变量名(_)会保存最后表达式的结果。

③、变量名没有类型,但对象有:

表达式语句

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

①、调用函数和方法。

②、在交互模式提示符下打印值。

1、表达式语句和在原处的修改:

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

打印操作

①、文件对象方法:

打印print默认地把对象打印到stdout流,添加了一些自动的格式化。

②、标准输出流:

标准输出流(通常叫做stdout)只是发送一个程序的文本输出的默认的地方。

1、Python3.0的print函数:

①、调用格式:

从语法上讲,调用Python3.0的print函数有如下的形状:

print([object,...][,sep=' '][,end='\n'][,file=sys.stdout])

sep是在每个对象的文本之间插入的一个字符串,如果没有传递的话,它默认地是一个单个的空格;传递一个空字符串将会抑制分隔符。

end是添加在打印文本末尾的一个字符串,如果没有传递的话,它默认的是一个\n换行字符。

file指定了文本将要发送到的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys.stdout。

②、Python3.0的print函数的应用:

Python3.0中不需要把对象转换成字符串,而在文件写入方法中则需要这么做。

默认情况下,print调用在打印的对象之间添加一个空格。要取消这个空格,给sep关键字参数发送一个空字符串,或者发送一个自己所选择的替代分隔符。

默认情况下,print添加一个行末字符来结束输出行。你可以通过向end关键字参数传递一个空字符串来抑制这一点并避免换行,或者可以传递一个自己的不同的终止符。

也可以组合关键字参数来指定分隔符和行末字符串——它们可以在任何顺序出现,但是必须出现在所有要打印的对象的后面。

file关键字——它在单个打印的过程中,直接把文本打印到一个输出文件或者其他的可兼容对象。

如果你需要显示更具体的格式,不要以这种方式打印,相反,提前构建一个更复杂的字符串或者在print自身之中使用字符串工具,并一次性打印该字符串。

2、Python2.6print语句:

①、语句形式:

②、Python2.6print语句应用:

3、打印流重定向:

①、Python的“hello world”程序:

>>>import sys

>>>sys.stdout.write('hello world')

'hello world'

print语句隐藏大多数细节,提供了简单工具从而进行简单的打印任务。

②、重定向输出流:

import sys

sys.stdout = open('log.txt','a')

....

print(x,y,z)

在这里,我们把sys.stdout重设成已打开的文件对象(采用附加模式)。重设之后,程序中任何地方的print语句都会将文字写至文件log.txt的末尾,而不是原始的输出流。

③、自动化流重定向:

在Python3.0中,file关键字运行一个单个的print调用将其文本发送给一个文件的write方法,而不是真正地重设sys.stdout。因为这种重定向是暂时的,普通的print语句还是会继续打印到原始的输出流的。

4、版本独立的打印:

本章小结

在这一章,我们开始探索赋值语句、表达式以及打印,从而深入研究Python语句。虽然这些一般都是很容易使用的语法,但都有些可选的替代形式,在实际应用中通常都有用。例如,增强赋值语句以及print语句的重定向形式,可以让我们避免一些手动的编写代码的工作。在此过程中,我们也研究了变量名的语法、流重定向技术以及各种要避免的常见错误,诸如把append方法调用的结果指回给变量等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容