《Python语言程序设计》学习笔记
笔记选自《Python语言程序设计》[美]梁勇 著
本篇笔记没有记录用python绘画的turtle库
第4章 选择
- 可以使用
int
函数将布尔值转换为一个整数。
print(int(True)) # 显示1
print(int(False)) # 显示0
- 可以用
bool
函数将一个数字值转换成一个布尔值。如果值为0,这个函数返回False;否则,这个函数总返回True。
print(bool(0)) # 显示False
print(bool(4)) # 显示True
randint(a,b)
可以用来产生一个a和b之间且包括a和b的随机整数;randrange(a,b)
产生一个在a、b-1之间的随机整数,它等同于randint(a,b-1)
;random()
函数生成一个满足条件 0 < = r < 1.0 0<=r<1.0 0<=r<1.0的随机浮点数r。
import random
random.random() #返回一个0.0到1.0之间(不包括1.0)的随机浮点数
random.randint(0,1) # 返回0或1
random.randrange(0,1) # 返回0
- if语句
if boolean-expression:
statement(s)
- 双向if-else语句
if boolean-expression:
statement(s)-for-the-true-case
else:
statement(s)-for-the-false-case
- 嵌套if和多向if-elif-else语句
# 嵌套if语句
if i>k:
if j>k:
print("i and j are great than k")
else:
print("i is less than or equal to k")
# 多向if-elif-else语句
if score>=90.0:
grade='A'
elif score>=80.0:
grade='B'
elif score>=70.0:
grade='C'
elif score>=60.0:
grade='D'
else:
grade='F'
- 逻辑运算符
运算符 | 描述 |
---|---|
not | 逻辑否 |
and | 逻辑和 |
or | 逻辑或 |
- 德摩根律
not (condition1 and condition2)
和not condition1 or not condition2
一样
not (condition1 or condition2)
和not condition1 and not condition2
一样
- 判定闰年:一个年份如果能被4整除但不能被100整除,或能被400整除,那么这个年份就是闰年。
1、非整百年份:能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)
2、整百年份:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
- 条件表达式
y = 1 if x > 0 else -1
# 等价于
if x>0:
y=1
else:
y=-1
- 运算符的优先级和结合方向:除赋值运算符外,都是从左到右的结合顺序。
优先级从高到低 | 运算符 |
---|---|
+ 、- (一元加/减运算符) | |
** (指数运算符) | |
not | |
* 、/ 、// 、% (乘、除、整除和余数) | |
+ 、- (二元加/减运算符) | |
< 、<= 、> 、>= (比较运算符) | |
== 、!= (相等运算符) | |
and | |
or | |
= 、+= 、-= 、*= 、/= 、//= 、%= (赋值运算符) |
本章总结
- 一个布尔类型变量可以存储值
True
或False
。 - 关系运算符(
<
、<=
、==
、!
、=
、>
、>=
)是数字和字母一起工作的,产生的结果是一个布尔值。 - 布尔运算符
and
、or
和not
是在布尔值和变量上的操作。 - 当计算
p1 and p2
时,Python首先计算p1,如果p1为True
才计算p2;如果p1为False
,那它就不再计算p2。当计算p1 or p2
时,Python首先计算p1,如果p1为False
才计算p2;如果p1为True
那它就不再计算p2。因此,and
称为条件或短路AND运算符,而or
称为条件或短路OR运算符。 选择语句
是用来解决二选一的程序设计问题。Python有多种类型的选择语句:单向if语句、双向if-else语句、嵌套if-elif-else语句以及条件表达式。- 各种if选择语句都是根据布尔表达式作出控制决定的。根据表达式计算的结果为
True
还是False
,这些语句会采用两个可能选项中的一种。 - 算术表达式中的运算符根据括号、运算符优先性以及运算符结合方向等规则决定运算顺序。
- 括号可以用来强制改变运算顺序。
- 首先计算优先级高的运算符。对于优先级一样的运算符,它们的结合方向决定了计算顺序。
关键术语
英文 | 中文 |
---|---|
Boolean expressions | 布尔表达式 |
Boolean value | 布尔值 |
operator associativity | 运算符结合方向 |
operator precedence | 运算符优先级 |
random module | random模块 |
selection statements | 选择语句 |
short-circuit evaluation | 短路计算 |