语句和语法

2018-04-01  本文已影响0人  szn好色仙人

语句简介

赋值、表达式和打印

>>> v = v1 = []
>>> v.append(1)
>>> v, v1
([1], [1])
运算 解释 结果
v = 1 基本形式 v = 1
v, v1 = 1, 2 元组赋值运算 v = 1, v1 = 2
[v, v1] = [1, 2] 列表赋值运算 v = 1, v1 = 2
v, v1 = '12' 序列赋值运算 v = '1', v1 = '2'
v, *v1 = 'abcd' 扩展的序列解包 v = 'a', v1 = ['b', 'c', 'd']
v = v1 = 1 多目标赋值运算 v = 1, v1 = 1
v = 1
v += 1
增强赋值运算 v = 2
>>> v, *v1 = 'a'
>>> v, v1
('a', [])
>>> v, *v1 = 'ab'
>>> v, v1
('a', ['b'])       #扩展的序列解包结果总是一个列表

>>> v = 1; v1 = 2
>>> v, v1 = v1, v  #右侧的组会自动记住原来的值
>>> v, v1
(2, 1)

>>> (v, v1), v2 = [(1, 2), 3]
>>> v, v1, v2
(1, 2, 3)

>>> v, *v1, v2 = "Hello Python"
>>> v, v1, v2
('H', ['e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o'], 'n')
>>> v = [1, 2, 3]
>>> while v:
    f, v = v[0], v[1:]
    print(f, ',', v)

1 , [2, 3]
2 , [3]
3 , []

>>> v = [1, 2, 3]
>>> while v:
    f, *v = v
    print(f, ',', v)

1 , [2, 3]
2 , [3]
3 , []
>>> v = []
>>> v1 = v
>>> v += [1]
>>> v, v1
([1], [1])

>>> v = []
>>> v1 = v
>>> v = v + [1]
>>> v, v1
([1], [])
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
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

if测试和语法规则

>>> if True:
    pass
elif True:
    pass
else:
    pass

#python实现类似三目运算还有以下无聊、烂的破语法
>>> [1, 2][bool(True)]
2
>>> [1, 2][bool(False)]
1

while和for循环

>>> v = [1, 2]
>>> while v:
    f, *v = v
    print(f, v)
else:
    print('done')  #只有当循环正常离开时才会执行(没遇到break)


1 [2]
2 []
done
>>> v = ...
>>> if v:
    print('Hello')


Hello
>>> while v = 1:
    
SyntaxError: invalid syntax
>>> v = [1, 2]
>>> for x in v:
    print(x)
else:
    print('没遇见break')#只有当循环正常离开时才会执行(没遇到break)

    
1
2
没遇见break
>>> v = {'a' : 1, 'b' : 2}
>>> for k in v:
    print(v[k])

    
2
1

>>> fp = open(r'D:\1.txt', 'w')
>>> fp.write('abc')
3
>>> fp.close()
>>> fp = open(r'D:\1.txt')
>>> for x in fp:
    print(x)

    
abc
>>> list(range(0, 5))
[0, 1, 2, 3, 4]
>>> list(range(3, 10, 2))
[3, 5, 7, 9]
>>> list(range(5, -5, -1))
[5, 4, 3, 2, 1, 0, -1, -2, -3, -4]
>>> list(zip('szn', '1234'))
[('s', '1'), ('z', '2'), ('n', '3')]
>>> list(zip('ABC', '1234', ('a', 'b', 'c')))
[('A', '1', 'a'), ('B', '2', 'b'), ('C', '3', 'c')]

>>> v = {}
>>> v0 = ['a', 'b']
>>> v1 = "szn"
>>> for x, y in zip(v0, v1):v[x] = y

>>> v
{'b': 'z', 'a': 's'}
>>> v = enumerate('szn')
>>> next(v)
(0, 's')
>>> next(v)
(1, 'z')
>>> next(v)
(2, 'n')
>>> next(v)
Traceback (most recent call last):
  File "<pyshell#522>", line 1, in <module>
    next(v)
StopIteration

>>> for x, y in enumerate('szn'):
    print(x, y)

    
0 s
1 z
2 n

迭代和解析第一部分

>>> v = "szn"
>>> it = iter(v)
>>> while True:   #手动迭代
    try:
        print(it.__next__())
    except StopIteration:
        print('done')
        break

    
s
z
n
done

>>> v = "szn"
>>> for x in v:    #自动迭代
    print(x)

    
s
z
n

>>> fp = open(r'D:\1.txt', 'rb')
>>> str = fp.read()
>>> str
b'abc\r\n123'
>>> fp = open(r'D:\1.txt')
>>> for line in fp:  #利用for每次自动调用__next__进行迭代
    print(line, end = '')

    
abc
123

>>> d = {'a' : 'b', 1 : 2}
>>> for k in d:
    print(k, d[k])

    
1 2
a b

文档

>>> def Fun():
    '''
    Print Hello World
    '''
    print('Hello World')

    
>>> Fun.__doc__
'\n\tPrint Hello World\n\t'


>>> class CTest:
    'CTest'
    pass

>>> CTest.__doc__
'CTest'


>>> import sys
>>> sys.path.append(r'D:')
>>> import Test
Hello
>>> Test.__doc__
'1.py'
>>> fp = open(r'D:\Test.py', 'rb')
>>> for line in fp:
    print(line)

    
b"'1.py'\r\n"
b'\r\n'
b"print('Hello')"
上一篇 下一篇

猜你喜欢

热点阅读