第4章 选择

4.1列举六种比较运算符。 答:,==,!=,<=,>=。

4.2下面的转换是允许的吗?如果允许,给出转换后的结果。 i = int(True) 1 j = int(False) 0 B1 = bool(4) true B2 = bool(0) false

4.3怎样生成一个满足条件0<= i< 20的随机整数? 答:random.randrange(0, 20)

4.4怎样生成一个满足条件10<= i < 20的随机整数? 答:random.randrange(10, 20)

4.5怎样生成一个满足条件10<= i<= 50的随机整数? 答:random.randint(10, 50)

4.6怎样生成一个值为0或1的随机整数? 答:random.randint(0, 1)

4.7编写一个如果y大于零,将1赋值给x的if语句。 答:if y > 1 :

X = 1

4.8编写一个如果score > 90,pay增长3%的if语句。 答:if score > 90:

Pay *= (1 + 3%)

4.9编写一个如果score大于90,pay上涨3%,否则上涨1%的语句。 答:if score > 90:

Pay *= (1 + 3%) Else:

Pay *= (1 + 1%)

4.10如果number分别是30和35,那么a中的代码和b中的代码输出结果是什么? If number % 2 == 0: if number % 2 == 0:

Print(number, “is even.”) print(number, “is even.”) Print(number, “is odd.”) else:

Print(number, “is odd.”) A B 答:If number is 30, (a)30 is even

30 is odd (b)30 is even If number is 35, (a) 35 is odd (b)35 is odd

4.11

4.12

4.13下面的代码错在哪里? if score >=60.0:

Grade = ‘D’ Elif score >= 70.0:

Grade = ‘C’ Elif score >= 80.0:

Grade = ‘B’ Elif score >= 90.0:

Grade = ‘A’

答:顺序反了。

4.14 答:a和c等价,b、c缩进错误

4.15使用一个布尔表达式改写下面的语句: If count % 10 == 0:

Newline = Ture Else:

Newline = False

答:Newline = count % 10 == 0

4.16答:B情况语句更好,因为A需要两种条件都比较。 4.18答:这两条语句是相同的。

4.19答:会运行错误,因为输入值对应的税收没有被计算。 4.20假设x = 1,显示下面布尔表达式的结果。

Ture and (3 > 4) False Not(x > 0) and (x > 0) False (x > 0) or (x < 0) Ture (x != 0) or (x == 0) Ture (x >= 0) or (x < 0) Ture (x != 1) == not(x == 1) Ture

4.21编写一个布尔表达式,如果变量num的值在1到100之间,该表达式计算结果为Ture

答:1 < x <100

4.22编写一个布尔表达式,如果变量num的值在1到100之间或数字为负,该表达式计算结果为Ture。

答:(1 < x < 100) or x < 0

4.23答: 0 1 1 1 4.24答:等价

4.25答:1 0 1 0

4.26答: 1 1 0 1 0

4.27编写一个如果年龄age大于13小于18的布尔表达式。 答:13 < age < 18

4.28编写一个布尔表达式:如果体重weight大于50或身高height小于160则结果为真。 答:weight > 50 or height < 160

4.29答:weight > 50 and height < 160

4.30答:(weight > 50 or height < 160) and not (weight > 50 and height < 160) 4.31答:sorted

4.32答:1)ticketprice = 20 if ages >= 16 else ticketprice = 10

2)print(count,end = ‘\\n’) if count % 10 == 0 else print(count, end = ‘ ’) 4.34答:and > or 1)Ture 2)Ture

4.35答:这种说法是正确的。 4.36答:0 0 4.37答:都是一样的。

本章总结

1.一个布尔类型变量可以储存值Ture或False。

2.关系运算符(、>=)是数字和字母一起工作的,产生的结果是一个布尔值。

3.布尔运算符and,or,not是在布尔值和变量上的操作。

4.当计算p1 and p2时,Python首先计算p1,如果p1为Ture才计算p2;如果p1为False,那它就不在计算p2.

5.选择语句是用来解决二选一的程序设计问题。Python有多种类型的选择语句:单向if语句、双向if else语句、嵌套if-elif-else语句以及条件表达式。

6.各种if选择语句都是根据布尔表达式做出控制决定的。根据表达式计算的结果为Ture还是False,这些语句会采用两个可能选项中的一种。

7.算术表达式中的运算符根据括号、运算符优先性以及运算符结合方向等规则决定运算顺序。

8.括号可以用来强制改变运算顺序。 9.首先计算优先级高的运算符。对于优先级一样的运算符,他们的结合方向决定了计算顺序。