Success in life is a matter not so much of talent and opportunity as of concentration and perseverance.------C. W. Wendte
To us.
本文是学习Python 的笔记,只是记下来我认为重要的,易忘的notes,基于A byte of Python中文版Let it be!译。
-----------------------------------------
1. 操作符及其用法
操作符 | 英文 | 解释 | 例子 |
---|---|---|---|
** | power | 次方 | 如2**3=8 |
// | floor | 向下取整 | 如4//3=1 |
% | modulo | 取余 | 如8%3=2 |
<< | left shift | 向左移,2在二进制中表示为10,向左移两个bits为1000,转换为十进制为8. | 如2<<2=8 |
>> | right shift | 向右移,2在二进制中表示为10,向左移两个bits为1000,转换为十进制为8. | 如11>>1=5 |
& | 按位和 | 数字的位和,5的二进制为101,3的二进制为11,位或为1 | 如5&3=1 |
| | 按位或 | 数字的位或,5的二进制为101,3的二进制为11,位或为111,二进制为7 | 如5|3=7 |
2. while语句允许重复执行一块语句
只要在一个条件为真的情况下, while语句允许重复执行一块语句,有可选的else从句。
#!/usr/bin/python
number = 23
running = True
while running:
guess=int(input('Enter an integer:'))
if guess == number:
print('You guessed it.')
running=False
else:
print('You are wrong')
3. break、continue
break 语句用来终止循环语句,哪怕循环条件没有变为false或者还没迭代结束,也停止执行语句。如果从循环中终止,else块将不执行。
continue用来跳过忽略当前循环块中的剩余语句,继续下一轮循环。
4. 全局、非局部变量
- Global
如果要在函数内为一个定义在函数外的变量赋值,那么需要告诉python这个变量不是局部的,而是全局的,使用global语句可以清楚地表明变量是在外面的块定义的。
#!/usr/bin/python
x = 23
def func():
global x
print(x)
x=2
print('changed global x to', x)
func()
print('x is', x)
输出23,2,2。说明在函数内更改想后,函数外x的值也已经被更改。
- Nonlocal
非局部变量作用于局部和全局作用域之间,
#!/usr/bin/python
def func_outer():
x = 2
print(x)
def func_inner():
nonlocal x
x = 5
func_inner()
print('changed global x to', x)
当在函数func_inner内部时,在函数func_outer的第一行x相对来说既不是局部范围也不是全局的作用域,这样的x称为非局部x。
5. 参数
- 默认参数
用途:def say(message, times = 1)中times默认参数为1,只有在形参表末尾的那些参数才可以有默认参数值,因为赋给形参的值是根据位置而赋值的。
- 关键参数
用途:如果某个函数有许多参数,但只想指定部分参数,通过命名来给参数赋值。没有顺序,可用名字赋值。
- varArgs参数
用途:能获取任意个数参数的函数,用*实现。*param表示从那一点后所有参数被收集为一个param列表,**param表示从那一点后所有关键字参数被收集为一个param字典。
# varargs
def total(initial=5, *numbers, **keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 1, 4, 4, pens=10, apples=10))
输出166.
6. 文档字符串
docstrings: 在函数的第一个逻辑行的字符串是这个函数的文档字符串。
打印文档字符串:
print(func.__doc__)