import sys # 输入 str1 = list(map(str, input())) str2 = str(input()) # 遍历查找 t = 0 # 计数器 # 如果是大小写字母 if 65 <= ord(str2) <= 90 or 97 <= ord(str2) <= 122: # 从第一个子字符查开始遍历 for i in range(len(str1)): # 查找每个子字符串的每一个字符 for j in range(len(str1[i])): str3 = list(str1[i]) if ord(str2) == ord(str3[j]) or abs(ord(str2) - ord(str3[j])) == 32: # 大小写字母的ascii码相差32 t += 1 # 如果是大小写字母 else: for i in range(len(str1)): # 查找每个子字符串 for j in range(len(str1[i])): str3 = list(str1[i]) if ord(str2) == ord(str3[j]): t += 1 print(t)
核心知识:大小写字母和数字的ASCII码值,查看字符ASCII码的函数ord(),绝对值函数abs()
1. 字母的ASCII码范围
大写字母(A-Z)
- 范围:65(A)到90(Z)
- 示例:A → 65,Z → 90,中间字符如M → 77
小写字母(a-z)
- 范围:97(a)到122(z)
- 示例: a → 97z → 122中间字符如m → 110
Remark: 同一字母的大小写ASCII码之差为32
2. 数字的ASCII码范围
数字0-9
- 范围:48(0)到57(9)
- 示例: 0 → 48,9 → 57,中间字符如5 → 53
Remark: 数字的ASCII码不是0~9
3. 其他常用字符范围(扩展知识)
控制字符(不可打印)
- 范围:0-31 和 127 (如退格、换行符等)
标点符号和运算符
- 范围:32(空格)到126 ! → 33,# → 35,+ → 43,= → 61,@ → 64(注意:@属于符号,非字母数字)
4. 注意事项汇总
- 区分大小写:大写和小写字母的ASCII码相差32(如
A
是65,a
是97)。 - 编码扩展:Unicode等编码体系兼容ASCII,但包含更多字符。
- 编程语言差异:
ord()
是Python的内置函数,其他语言可能需要类似函数(如Java的(int) char
)。