else 后面必不可少的是: A. 分号 B. 逗号 C. 冒号 D. 括号 答案:C 解析: 课程明确指出,条件1和 else 后面的冒号必不可少。Python 用冒号引出代码块,而不是用分号或括号。else 分支,否则会出现语法错误。 答案:× 解析: 特殊情况下可以没有 else,形成单分支条件语句,只在条件为真时执行代码块。例如求绝对值时,仅当 a < 0 才改写 a。if-else) B. 单分支(只有 if) C. 多分支(if-elif-else) D. 嵌套分支(分支内部再写条件语句) 答案:ABCD 解析: 课程依次介绍了一般双分支、无 else 的单分支、elif 多分支,以及嵌套分支,四项都属于条件语句的合法结构。if a > 60: B. if a >= 60: C. if a > 59.5: D. if a == 60: 答案:B 解析: 课程示例为 if a >= 60:,60 分算及格。A 把刚好 60 分判为不及格;C、D 不是课程给出的判定条件。'A' <= a <= 'Z' 判断是否为大写英文字母 B. x.find('中国') >= 0 判断字符串是否包含“中国” C. x in course 判断所选课程是否在合法列表中 D. x.find('中国') == -1 表示字符串包含“中国” 答案:ABC 解析: A、B、C 均来自条件语句实例。find() 找到子串时返回下标(大于等于 0),找不到时返回 -1,因此“包含中国”应写 >= 0,D 把含义写反了。bmi = 24 会输出“正常”。 答案:× 解析: 程序按顺序判断:< 18.5 偏瘦,< 24 正常,< 28 超重,否则肥胖。24 不满足 < 24,但满足 < 28,应输出“超重”。多分支是“前面为真才进入,否则继续往后”。grades = [85, 90, 38, 52, 88, 41, 63]
average = sum(grades) / len(grades)
if average >= 60:
print("平均成绩及格。")
else:
print("平均成绩不及格。")
A. 平均成绩及格。 B. 平均成绩不及格。 C. 65 D. 程序报错,因为列表中有不及格分数 答案:A 解析: 这是课程例2-1。成绩之和为 457,人数为 7,平均分约为 65.29,满足 average >= 60,输出“平均成绩及格。”。列表里存在不及格分数不影响“平均分是否及格”的判断。
year = 2000
month = 2
if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
print("{} 月有 31 天".format(month))
elif month == 4 or month == 6 or month == 9 or month == 11:
print("{} 月有 30 天".format(month))
elif month == 2:
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("{} 月有 29 天 (闰年)".format(month))
else:
print("{} 月有 28 天".format(month))
else:
print("输入的月份不合法")
A. 2 月有 28 天 B. 2 月有 29 天 (闰年) C. 2 月有 31 天 D. 输入的月份不合法 答案:B 解析: 对应课程例2-3 的嵌套结构。month == 2 进入闰年判断。2000 能被 400 整除,满足 (year % 400 == 0),是闰年,2 月有 29 天。若误以为“能被 100 整除就不是闰年”而忽略 400 的例外,会错选 A。
else,只在条件为真时执行代码块。求绝对值时:a >= 0 则绝对值就是它自身,无须计算;a < 0 则绝对值是它的相反数,需要执行 a = -a。示例:a = -3.5
if a < 0:
a = -a
print(a)
运行后输出 3.5。注意 print(a) 在 if 之外,正数、负数都会输出。 解析: 评分要点:①说明可以没有 else;②分清 a >= 0 不计算、a < 0 取相反数;③代码语法正确,print 不缩进到 if 内部;④能说明输出结果。
input),并说明 elif 按什么顺序判断。 答案: elif 按书写顺序依次判断,前面条件为真则不再执行后面分支。示例(month = 12 时应输出冬季):month = 12
if 3 <= month <= 5:
print("{} 月是春季".format(month))
elif 6 <= month <= 8:
print("{} 月是夏季".format(month))
elif 9 <= month <= 11:
print("{} 月是秋季".format(month))
elif month == 12 or 1 <= month <= 2:
print("{} 月是冬季".format(month))
else:
print("输入的月份不合法")
运行后输出 12 月是冬季。12 不在 3–5、6–8、9–11 中,第四个分支用 month == 12 or 1 <= month <= 2 覆盖冬季。 解析: 评分要点:①季节区间与课程例2-2 一致;②冬季写成 12 月或 1–2 月,不能只写 12 <= month <= 2(该链式比较恒为假);③else 处理非法月份;④代码可运行;⑤说明 elif 按顺序、短路。