1.赋值
这边主要介绍python与c语言不同的地方。
pyhon支持tuple方式或list方式赋值。下面是tuple方式赋值的例子。
>>> y, g = 'yes', 'good'
>>> y
'yes'
>>> g
'good'
下面是list赋值的例子。
>>> a = 1
>>> b = 2
>>> [e, f] = [a, b]
>>> e
1
>>> f
2
当然,tuple,list也可以交换赋值。
>>> [a, b] = (1, 2)
>>> a
1
>>> b
2
string也可以参与进来。
>>> str = 'hello'
>>> a, b, c, d, e = str
>>> a
'h'
>>> b
'e'
>>> c
'l'
其实,你怎么想,就是什么结果:)python的赋值功能非常自由,非常好用。
>>> ((a, b), c) = ('sp', 'am')
>>> a
's'
>>> b
'p'
>>> c
'am'
好吧,把它用到循环里吧:
>>> for(a, b, c) in [(1, 2, 3), (8, 4, 3)]:
print(a)
1
8
在3.0里。可以使用 *var 的方式使赋值更自由!
下面表明不对称地赋值是不可以的。
>>> a = [1, 2, 3, 4]
>>> c, d = a
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
c, d = a
ValueError: too many values to unpack
下面表明*var的方式在2.x中还没有添加.
>>> c, *d = a
SyntaxError: invalid syntax
下面表明*var可以在3.0中使用:
>>> a, *b = seq
>>> a
1
>>> b
[2, 3, 4]
下面表明,指向同一对象带来的麻烦。所以要尽量避免:
>>> a = b = []
>>> b.append(42)
>>> a, b
([42], [42])
2.表达式
注意一个非常大的陷阱!!
对于新手而言,要注意函数赋值的陷阱:
>>> L = [1, 2]
>>> L.append(3)
>>> L
[1, 2, 3]
>>> L = L.append(4)
>>> L
>>>
其实,append(4)返回的是NULL。L = L.append(4) 导致将L.append(4)这个表达式返回值None赋值给了L。结果也就不在期望之中了。
3.print
下面是print的语法:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
通过逗号,可以同时打印多个变量:
>>> a
[1, 2, 3, 4]
>>> b = (2, 3)
>>> c = 'hello'
>>> print(a, b, c)
([1, 2, 3, 4], (2, 3), 'hello')
如果你是用了3.0。还有很多新加特性:(如果你使用的是2.x(x>=6)版本的,也可以使用3.0版本的print功能。但是,之前要导入它)
from __future__ import print_function>>> print(x, y, z, sep='') # Suppress separator
spam99['eggs']
>>>
>>> print(x, y, z, sep=', ') # Custom separator
spam, 99, ['eggs']>>> print(x, y, z, end='') # Suppress line break
spam 99 ['eggs']>>>
>>>
>>> print(x, y, z, end=''); print(x, y, z) # Two prints, same output line
spam 99 ['eggs']spam 99 ['eggs']
>>> print(x, y, z, end='...\n') # Custom line end
spam 99 ['eggs']...
>>>>>> print(x, y, z, sep='...', file=open('data.txt', 'w')) # Print to a file
>>> print(x, y, z) # Back to stdout
spam 99 ['eggs']
>>> print(open('data.txt').read()) # Display file text
spam...99...['eggs']>>> text = '%s: %-.4f, %05d' % ('Result', 3.14159, 42)
>>> print(text)
Result: 3.1416, 00042
>>> print('%s: %-.4f, %05d' % ('Result', 3.14159, 42))
Result: 3.1416, 00042
在2.6中,打印到file里可以这么使用:
print >> afile, x, y, z
表示将x, y, z变量重定向到afile指向的文件中。
用write也可以打印:
>>> import sys # Printing the hard way
>>> sys.stdout.write('hello world\n')
hello worldimport sys
sys.stdout.write(str(X) + ' ' + str(Y) + '\n')
end.
本文介绍了Python中灵活的赋值方法,包括元组、列表和字符串参与的赋值,并展示了如何利用这些特性进行循环赋值及不对称赋值。此外,还探讨了函数赋值的常见陷阱以及print语句的多种用法。
261

被折叠的 条评论
为什么被折叠?



