Python(5)赋值、表达式、打印语句


赋值语句

绝大多数的赋值语句都很简单,但有些特性要专门记住:

<1>赋值语句建立对象引用值

Python赋值语句会把对象引用值存储在变量名或者数据结构的元素内。赋值语句总是建立对象的引用值,而不是

复制对象,因此Python变量更像是指针,而不是数据存储区域。

<2>变量名会在首次赋值时被创建

一旦赋值了,每当这个变量名出现在表达式时就会被其所引用的值取代。

<3>变量名在引用前必须先赋值

否则可能发生异常

<4>执行隐式赋值时的一些操作

所有的赋值环境都是运行时把变量名和对象的引用值绑定起来。

常用赋值语句

<1>spam = 'Spam' #基本形式

<2>spam,ham = 'yum','YUM' #元组赋值

<3>[spam,ham] = 'yum','YUM' #列表赋值

<4>a,b,c,d = 'spam' #序列赋值

<5>spam = ham = 'spam' #多目标赋值

<6>spam = spam + N #增强型赋值

常用表达式语句

foo(x,y) #函数调用

foo.f(x) #方法调用

var #直接打印变量值

表达式语句通常用于执行可于原处修改的方法

若使用L=L.append(1) 则L为None

打印操作

打印操作在2.x和3.x的python版本差异很大,导致不修改就没法使用。

在2.x中 打印是语句拥有自己特定的语法

在3.x中 打印是个内置函数,用关键字参数来表示特定模式

3.0的print函数

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

其中方括号里的项是可选的,并且'='后面的值都有默认值。这个内置函数把字符串sep所分开的一个或多个

对象的文本表示,后面都跟着end,打印到file流中。其中,

sep是在每个对象的文本之间插入的一个字符串,如果没有传递的话,默认是一个空格。

x=1 y=2 z=3

print(x,y,z) -> 1 2 3 #sep间隔默认为一个空格

print(x,y,z,sep='') -> 123 #sep用空字符串替代 对象之间没空格

end是打印文本末尾的一个字符串,默认是一个\n。

print(x,y,z,end='') ->1 2 3 #打印完之后end为空字符串 不会到下一行

print(x,y,z,end='');print(x,y,z) -> 1 2 31 2 3 #于是紧接着上一次打印完的下一个继续打印

file指定文本将要发送到的文件,默认是sys.stdout,会显示在屏幕上。

print(x,y,z,file=open('test.txt','w')) #写入test.txt

print(open('test.txt').read())

1 2 3

也可以修改sys.stdout的值赋值文件流进行重定向

import sys

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

重设之后程序中任何地方的print语句都会写到log.txt的末尾。默认的print语句只是传送文本给sys.stdout.write

方法。

参考<>

评论关闭