从C#到Python,基础语法注意点(一)
1、函数多返回值问题
可以认为(或者就是)函数的返回值是一个tuple类型变量,而tuple有如下性质
x,y = (1,2) print x z = (1,2) print z #结果 #1 #(1,2)
所以对于多返回值的函数来说,其实是将tuple的数据逐个赋值给变量
2、切片可以对字符和数组使用
'ABCDEFG'[:3] #结果 #'ABC'
3、Python中的for循环
3.1 Python中for循环抽象程度更高,类似于JS可以对dist对象进行遍历(d = {'a': 1, 'b': 2, 'c': 3}),但与JS中的for又不同,具体如下
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
print key
#结果,这里与JS相同,但注意由于dist中顺序与实际的差别
#a
#c
#b
3.2 多变量for循环
for i, value in enumerate(['A', 'B', 'C']): print i, value #结果 #0 A #1 B #2 C
for x, y in [(1, 1), (2, 4), (3, 9)]: print x, y #结果 #1 1 #2 4 #3 9
进阶版
for i,(x, y) in enumerate([(1, 1), (2, 4), (3, 9)]): print i,x, y #结果 #0 1 1 #1 2 4 #2 3 9
4、yield和generator生成器
yield返回的值是动态生成的,即用到的时候再计算出对应位置的值。由于这里没有使用一次生成,可以很大程度上节约内存空间
>>> def odd(): ... print 'step 1' ... yield 1 ... print 'step 2' ... yield 3 ... print 'step 3' ... yield 5 ... >>> o = odd() >>> o.next() step 1 1 >>> o.next() step 2 3 >>> o.next() step 3 5

浙公网安备 33010602011771号