python学习手册笔记——11.赋值、表达式和打印
00.赋值语句的形式
spam = 'Spam' 基本形式
spam, ham = 'yum', 'YUM' 元组赋值运算(位置性)
[spam, ham] = ['yum', 'YUM'] 列表赋值运算(位置性)
a,b,c,d = 'spam' 序列赋值运算、通用性
a, *b = 'spam' 扩展的序列解包
spam = ham = 'lunch' 多目标赋值运算
spams += 42 增强赋值运算
01.Python把赋值运算符右侧元组内的值和左侧元组内的变量互相匹配,然后每一次赋一个值。
02.当使用一个带星号的名称的时候,左边的目标中详述不需要宇主题序列的长度匹配。实际上,带星号的名称可以出现在目标中的任何地方。
03.保留字:
False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise
04.Python的废弃协议:注意保留字在一种语言的各个阶段是如何变化的,这是意见有趣的事情。当一种新的功能可能回影响到已有的代码的时候,Python通常回使其称为可选的,并且讲器发布为“废弃的”, 以便在正式使用该功能之前的一个或多个发布中提出警告。这种思路使你又足够的时间注意到警告并且在迁移到新的发布之前更新资金的代码。
05.因为变量名前后有下划线时(例如,__name__),通常对Python解释器都有特殊意义,你应该避免让变量名使用这种样式。
*以单一下划线开头的变量名(_X)不会被from module import *语句导入
*前后又下划线的变量名(__X__)是系统定义的变量名,对解释器又特殊意义
*以两下划线开头,但解未没有两个下划线的变量名(__X)是类的本地变量
*通过交互模式运行时,只有单个下划线的变量名(_)会保存最后表达式的结果。
06.Python表达式语句
spam(eggs, ham) 函数调用
spam.ham(eggs) 方法调用
spam 在交互模式解析器内打印变量
yield x ** 2 产生表达式的语句
07.调用格式
从语法上讲,调用python3.0的Print函数又如下的形式:
print([object, ...] [, sep=' '][, end='\n'][, file = sys.stdout])
*seq是在每个对象的文本之间插入的一个字符串,如果没有传递的话,它默认地是一个单个的空格;传递一个空字符串将会抑制分割符。
*end是添加在打印文本末尾的一个字符串,如果没有传递的话,它默认的是\n换行符。传递一个空字符将会避免在打印的文本的末尾移动到下一个输入行——下一个print将会保持添加到当前输出行的末尾
*file指定了文本将要发送到的文件、标准流或者其他类似文件的对象,如果没有传递的话,它默认的是sys.stdout.带有一个类似文件的write(string)方法的任何对象都可以传递,但真正的文件应该已经位输出而打开。
08.通用格式
if <test1>:
<statements1>
elif <test2>:
<statements2>
else
<statements3>
09.Python语法规则
*语句是逐个运行的,除非你不这样编写。
*块和语句的边界会自动检测。
*复合语句=首行":" + 缩进语句。
*空白行、空格以及注释通常都会忽略。
*文档字符串(docstirng)会忽略,但会保存并由工具显示。Python支持的另一种注释,叫做文档字符串(简称docstring)。和#注释不同的是,文档字符串会在运行是保留下来以便查看。
10.嵌套块代码:一个嵌套块以再往右缩进的语句开始,碰到缩进量较少的语句或文件末尾时就结束。
11.缩进时再自然不过的事情,并且它使得你的代码反映出其逻辑结构。一致性的缩进代码总是可以满足Python的规则。
12.一条首要的规则是:尽管可以使用空格或制表符来缩进,再一段代码中混合使用者两者通常不是好主意,请使用其中的一种。从技术上讲,制表符考虑到保留足够的空间以便把当前的烂熟按照8的倍数来移动,并且,如果持续混合制表符和空格的话,代码也可以工作。然而,这样的代码可能很难修改。更糟糕的是,混合制表符和空格会使得代码难以阅读——制表符再另一个程序猿的编辑器中看上去宇再你的编辑器中的样子有很大不同。
13.语句的分隔符:
*如果使用语法括号对,语句就可横跨数行
*如果语句反斜线结尾,机可横跨数行
*字符串常量有特殊规则
*其他规则
14.括号可以存放表达式、函数参数、函数的首行、元组和生成器表达式,以及可以放到花括号的任何内容等内容。
15.真值测试
*任何非零数字或非空对象都为真
*数字零、空对象以及特殊对象None都被认作是假
*比如和相等测试会递归地应用再数据结构中
*比较和相等测试会返回True或False
*布尔and和or运算符会返回真
16.if/else三元表达式(Y ? X : Z )