第5课 字符串处理(上)——遍历与判断课后练习--小学信息科技Python程序设计

资源下载
  1. 二一教育资源

第5课 字符串处理(上)——遍历与判断课后练习--小学信息科技Python程序设计

资源简介

/ 让教学更有效 精品试卷 | 信息
第5课 课后练习
(学生用)
班级:____________ 姓名:____________ 得分:__________
一、填空(每空 3 分,共 24 分)
1.遍历字符串 s 中的每一个字符,可以写成 for ______ in ______:。
2.判断字符 ch 是不是数字字符,用 ch.____________();是不是字母,用 ch.____________()。
3.len("hello") 的结果是 ______。
4.字符串 "abc" 中,字符 a 的下标是 ______,c 的下标是 ______。
5."abc"[::-1] 的结果是 ____________。
6."abcdef"[1:3] 的结果是 ____________。
二、判断对错(每题 3 分,共 12 分)
1."7".isdigit() 的结果是 True。(  )
2."中国".isalpha() 的结果是 False。(  )
3.字符串 "3.14" 中的每一个字符都能通过 isdigit() 判断为数字。(  )
4.s == s[::-1] 可以用来判断字符串是否为回文。(  )
三、手算模拟题(10 分)
下面程序输入 "ab12c",请写出输出结果。
s = input()
digit = 0
letter = 0
for ch in s:
if ch.isdigit():
digit += 1
elif ch.isalpha():
letter += 1
print("数字:", digit)
print("字母:", letter)
第几圈 ch isdigit isalpha digit letter
1
2
3
4
5
输出结果:数字:______ 字母:______
四、★ 补全代码(每空 4 分,共 16 分)
第 1 题 判断回文。
s = input("请输入字符串:")
if s == s[①__________]:
print("是回文")
else:
print("不是回文")
第 2 题 统计字符串中各字符类型。
s = input()
digit = 0
letter = 0
for ch in s:
if ch.②____________:
digit += 1
elif ch.③____________:
letter += 1
print("数字:", digit)
print("字母:", letter)
第 3 题 判断密码是否够长。
s = input("请输入密码:")
if ④__________ >= 8:
print("长度合格")
else:
print("太短了")
① ______ ② ______ ③ ______ ④ ______
五、★★ 编程题(每题 10 分,共 20 分)
第 1 题 输入一串字符,统计其中字母、数字、其他字符(如空格、标点)各有多少个。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 输入一个字符串,判断它是不是回文,并额外输出这个字符串的长度。(测试数据:上海自来水来自海上、12321、hello)
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
六、★★★ 挑战题(18 分)
升级版密码检查。要求密码必须同时满足以下三条才算「强密码」,否则输出「密码太简单」:
① 长度不少于 8 位;② 至少含有一个数字;③ 至少含有一个大写字母。
(提示:判断大写字母可以用 ch.isupper())
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
自测数据:
密 码 应有结果
abc12345 密码太简单(没有大写字母)
Abc12345 强密码
Abc123 密码太简单(长度不够)
ABCDEFGH 密码太简单(没有数字)
教师评语:
__________________________________________________________________
__________________________________________________________________
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)/ 让教学更有效 精品试卷 | 信息
第5课 课后练习
(答案版 · 教师用)
班级:____________ 姓名:____________ 得分:__________
一、填空(每空 3 分,共 24 分)
1.遍历字符串 s 中的每一个字符,可以写成 for ______ in ______:。
2.判断字符 ch 是不是数字字符,用 ch.____________();是不是字母,用 ch.____________()。
3.len("hello") 的结果是 ______。
4.字符串 "abc" 中,字符 a 的下标是 ______,c 的下标是 ______。
5."abc"[::-1] 的结果是 ____________。
6."abcdef"[1:3] 的结果是 ____________。
二、判断对错(每题 3 分,共 12 分)
1."7".isdigit() 的结果是 True。(  )
2."中国".isalpha() 的结果是 False。(  )
3.字符串 "3.14" 中的每一个字符都能通过 isdigit() 判断为数字。(  )
4.s == s[::-1] 可以用来判断字符串是否为回文。(  )
三、手算模拟题(10 分)
下面程序输入 "ab12c",请写出输出结果。
s = input()
digit = 0
letter = 0
for ch in s:
if ch.isdigit():
digit += 1
elif ch.isalpha():
letter += 1
print("数字:", digit)
print("字母:", letter)
第几圈 ch isdigit isalpha digit letter
1
2
3
4
5
输出结果:数字:______ 字母:______
四、★ 补全代码(每空 4 分,共 16 分)
第 1 题 判断回文。
s = input("请输入字符串:")
if s == s[①__________]:
print("是回文")
else:
print("不是回文")
第 2 题 统计字符串中各字符类型。
s = input()
digit = 0
letter = 0
for ch in s:
if ch.②____________:
digit += 1
elif ch.③____________:
letter += 1
print("数字:", digit)
print("字母:", letter)
第 3 题 判断密码是否够长。
s = input("请输入密码:")
if ④__________ >= 8:
print("长度合格")
else:
print("太短了")
① ______ ② ______ ③ ______ ④ ______
五、★★ 编程题(每题 10 分,共 20 分)
第 1 题 输入一串字符,统计其中字母、数字、其他字符(如空格、标点)各有多少个。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 输入一个字符串,判断它是不是回文,并额外输出这个字符串的长度。(测试数据:上海自来水来自海上、12321、hello)
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
六、★★★ 挑战题(18 分)
升级版密码检查。要求密码必须同时满足以下三条才算「强密码」,否则输出「密码太简单」:
① 长度不少于 8 位;② 至少含有一个数字;③ 至少含有一个大写字母。
(提示:判断大写字母可以用 ch.isupper())
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
自测数据:
密 码 应有结果
abc12345 密码太简单(没有大写字母)
Abc12345 强密码
Abc123 密码太简单(长度不够)
ABCDEFGH 密码太简单(没有数字)
教师评语:
__________________________________________________________________
__________________________________________________________________
第 5 课 参考答案(教师用)
与《教师参考答案》册同源,全部数值均已实际运行核验
一、填空
1.ch;s 2.isdigit;isalpha 3.5 4.0;2 5.cba 6.bc
二、判断对错
1.
2.  "中国".isalpha() 的结果是 True,不是 False。
这里是本课最容易讲错的一点:Python 的 isalpha() 是按 Unicode 判定的,
汉字属于"字母类字符",所以返回 True。
如果老师想表达"只认英文字母",应改用 ch.isascii() and ch.isalpha():
'中'.isalpha() → True,但 '中'.isascii() → False,两者同时成立才等价于"英文字母"。
(已实测核验:'中'.isalpha(), '中'.isascii() → True False。)
3.  "3.14" 里的 "." 不是数字字符,".".isdigit() 为 False
4.
三、手算模拟题 输入 "ab12c":
第几圈 ch isdigit isalpha digit letter
1 a 否 是 0 1
2 b 否 是 0 2
3 1 是 否 1 2
4 2 是 否 2 2
5 c 否 是 2 3
输出:数字:2 字母:3
四、★ 补全代码
① ::-1 ② isdigit() ③ isalpha() ④ len(s)
五、★★ 编程题
第 1 题 分类统计:
s = input()
digit = letter = other = 0
for ch in s:
if ch.isdigit():
digit += 1
elif ch.isalpha():
letter += 1
else:
other += 1
print("字母:", letter, "数字:", digit, "其他:", other)
第 2 题 回文判断 + 长度:
s = input("请输入字符串:")
if s == s[::-1]:
print("是回文")
else:
print("不是回文")
print("长度:", len(s))
测试:上海自来水来自海上 → 是回文;12321 → 是回文;hello → 不是回文。
六、★★★ 挑战题 升级版密码检查
s = input("请输入密码:")
has_digit = False
has_upper = False
for ch in s:
if ch.isdigit():
has_digit = True
if ch.isupper():
has_upper = True
if len(s) >= 8 and has_digit and has_upper:
print("强密码")
else:
print("密码太简单")
自测:abc12345 → 密码太简单(缺大写);Abc12345 → 强密码;
Abc123 → 密码太简单(长度不够);ABCDEFGH → 密码太简单(缺数字)。
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)

展开更多......

收起↑

资源列表