Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 第21期-字符串构成

# 1 问题描述

试用Python代码,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 比如输入:123 45,abc/de 12/3dsf
输出:在您输入的字符串中,英文字母的个数为8,空格的个数为2,数字的个数为8,其他字符的个数为3
默认输入字符串中不包含汉字

# 2 解题思路

统计数量,需要使用累加
可以使用if或while函数,满足条件则数量加一
对于英文、空格以及数字的判断,可以使用大小比较
字符串中每个字符都需要判断,可以使用for循环
判断字符串中的字符,可以使用字符串自带的函数

# 3 解题方法

# 方法一

begin=input('请输入字符串:')
engnum=spanum=dignum=elnum=0
for i in begin:
    if i>='a' and i<='z' or i>='A' and i<='Z': 
        engnum+=1
    elif i==" ":
        spanum+=1
    elif i in '0123456789':
        dignum+=1
    else:
        elnum+=1
print('在您输入的字符串中,英文字母的个数为{},空格的个数为{},数字的个数为{},其他字符的个数为{}'.format(engnum,spanum,dignum,elnum))
1
2
3
4
5
6
7
8
9
10
11
12

第1行: 用input函数请用户输入一个字符串,并赋值给变量begin
第2行: 给变量engnum、spanum、dignum、elnum都赋值为0,表示英文字母、空格、数字、其他字符初始值均为0
第3行: 用for循环遍历字符串中所有字符
第4-5行: 判断字符i是否为英文字母,如果是,engnum数量加一,如果不是,跳转到第六行
第6-7行: 判断字符i是否为空格,如果是,spanum数量加一,如果不是,跳转到第八行
第8-9行: 判断字符i是否为数字,如果是,dignum数量加一,如果不是,跳转到第十行
第10-11行: 对于既不是英文字母,又不是空格,也不是数字的字符,算作其他字符,elnum数量加一
第12行: 用print函数打印a的阶乘结果

该方法用到了format()函数,简单介绍一下:


format()函数
format() 函数是一种格式化字符串的函数,类似于f-string的方法格式化字符串
format() 函数可以接受不限个参数,位置可以不按顺序


语法:
str.format()

例如:
"{} {}".format("hello", "world")等价于"hello world"
"{1} {0} {1}".format("hello", "world")等价于"world hello world"
{}中的数字可以设置指定位置

# 方法二

begin = input('请输入字符串:')
engnum = spanum = dignum = elnum = 0
for i in begin:
    if i.isalpha():
        engnum +=1
    elif i.isspace():
        spanum +=1
    elif i.isnumeric():
        dignum +=1
    else:
        elnum +=1
print(f'在您输入的字符串中,英文字母的个数为{engnum},空格的个数为{spanum},数字的个数为{dignum},其他字符的个数为{elnum}')
1
2
3
4
5
6
7
8
9
10
11
12

第1行: 用input函数请用户输入一个字符串,并赋值给变量begin
第2行: 给变量engnum、spanum、dignum、elnum都赋值为0,表示英文字母、空格、数字、其他字符初始值均为0
第3行: 用for循环遍历字符串中所有字符
第4-5行: 判断字符i是否为英文字母,如果是,engnum数量加一,如果不是,跳转到第六行(isalpha()
第6-7行: 判断字符i是否为空格,如果是,spanum数量加一,如果不是,跳转到第八行
第8-9行: 判断字符i是否为数字,如果是,dignum数量加一,如果不是,跳转到第十行
第10-11行: 对于既不是英文字母,又不是空格,也不是数字的字符,算作其他字符,elnum数量加一
第12行: 用print函数打印a的阶乘结果

该方法用到了isalpha()、isnumeric()和isspace()函数,简单介绍一下:


isalpha()函数、isnumeric()函数和isspace()函数
isalpha() 方法检测字符串是否只由字母组成
isnumeric()方法检测字符串是否只由数字组成
isspace()方法检测字符串是否只由空格组成


语法:
str.isalpha()、str.isnumeric()、str.isspace()
如果字符串至少有一个字符并且所有字符都是字母/数字/空格则返回 True,否则返回 False。

方法一、方法二代码运行结果均为:
image.png

# 3 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM