【目录】
1. 目标任务
2. 知识回顾
2.1 for循环代码示例
2.2 ord( )函数
2.3 `.format`字符串格式化
3. 程序代码
4. 安迪碎碎念
【正文】
1. 目标任务
【目标任务】
输入一任意字符串,统计其中中文字符个数。
【提示】
中文字符的Unicode编码范围是:19968-40869。
【输入】
输入一个字符串。
【输出】
中文字符个数。
【示例】
输入:中国
输出:2
输入:安迪Python学习笔记
输出:6
2. 知识回顾
2.1 for循环代码示例
# 新建一个字符串变量s
s = "中国"
# 新建一个变量count用于存放统计的中文字符个数
count = 0
# for 循环遍历变量s
# 第1次循环时i="中"
# 第2次循环时i="国"
# 字符串有2个元素,循环2次
for i in s:
print(i)
【终端输出】
中
国
2.2 ord( )函数
ord()
函数是 Python 内置函数之一,作用是返回一个字符的 Unicode 数值。
【语法】
ord(c)
【参数】
c
是一个字符。
【代码示例】
# 新建一个变量char存储字符`A`
char = 'A'
# ord函数输出字符的 Unicode 码值
print(ord(char))
【终端输出】
65
输出结果表示字符字符A
的 Unicode 码值为65
。
【代码示例】
# 新建一个变量char存储字符`中`
char = '中'
# ord函数输出字符的 Unicode 码值
print(ord(char))
【终端输出】
20013
输出结果表示字符字符中
的 Unicode 码值为20013
。
2.3 .format
字符串格式化
format[ˈfɔːmæt]:格式。
【代码示例】
name = "安迪"
city = "云南"
school = "复旦大学"
print("大家好,我叫{},来自{},毕业于{}!".format( name, school, city))
【终端输出】
大家好,我叫安迪,来自云南,毕业于复旦大学!
【编写思路】
我们要输出的内容是:
大家好,我叫安迪,来自云南,毕业于复旦大学!
要格式化的内容用英文大括号
{}
替换:安迪替换为大括号
{}
。云南替换为大括号
{}
。复旦大学替换为大括号
{}
。格式化模板为:
"大家好,我叫{},来自{},毕业于{}!"
【添加语法关键字】
输入一个英文小圆点 .
format
关键字
英文圆括号 ( )
括号中添加要格式化的变量 (name, city, school)
。
相关知识可点击如下链接:
3. 程序代码
【代码示例】
# 新建一个字符串变量s
s = "中国"
# 新建一个变量count用于存放统计的中文字符个数
count = 0 #
# for 循环遍历变量s
# 第1次循环时i="中"
# 第2次循环时i="国"
# 字符串有2个元素,循环2次
for i in s:
# if条件判断语句判断字符的Unicode编码是否在中文字符范围内
# ord(i)返回的是i的 Unicode 码值
# 如果i的 Unicode 小于等于40869且大于等于19968,则变量count值加1
# 如果i的 Unicode 不满足上述条件,则不执行if语句下面的代码
if 19968 <= ord(i) <= 40869:
# 则变量count值加1
# count += 1等同与 count = count+1
count += 1
# 输出最终的结果
print("该字符串含中文字符个数:{}。".format(count))
【终端输出】
该字符串含中文字符个数:2。
【代码示例】
将"中国"替换成"安迪Python学习笔记",检测代码。
# 新建一个字符串变量s
s = "安迪Python学习笔记"
# 新建一个变量count用于存放统计的中文字符个数
count = 0 #
# for 循环遍历变量s
# 第1次循环时i="中"
# 第2次循环时i="国"
# 字符串有2个元素,循环2次
for i in s:
# if条件判断语句
# ord(i)返回的是i的 Unicode 码值
# 如果i的 Unicode 小于等于40869且大于等于19968,则变量count值加1
# 如果i的 Unicode 不满足上述条件,则不执行if语句下面的代码
if 19968 <= ord(i) <= 40869: # 判断字符的Unicode编码是否在中文字符范围内
# 则变量count值加1
# count += 1等同与 count = count+1
count += 1
# 输出最终的结果
print("该字符串含中文字符个数:{}。".format(count))
【终端输出】
该字符串含中文字符个数:6。
【最终代码】
s = input() #变量s用于存放输入的任意字符串
count = 0 #变量count用于存放统计的中文字符个数
for i in s:
# 判断字符的Unicode编码是否在中文字符范围内
if 19968 <= ord(i) <= 40869:
count += 1
print("该字符串含中文字符个数:{}。".format(count))
【终端输出】
该字符串含中文字符个数:3。
4. 安迪碎碎念
初学者在运用input函数中经常出错。
建议初学者在在涉及到有终端输入时先用一个已知的字符串代替。
当其它代码没有问题时,再将已知的字符串替换成未知的input函数。