【Python】【demo实验5】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】

原题:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

(本题暂时不支持中文字符及汉字)

我的代码:

#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*-

#  输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

a = input("please input string:\n")
space_ = 0
number_ = []
EnglishLetter = []
otherString = []

for i in a:
    if i == " ":    #空格比较特殊,先判断空格
        space_ = space_ +1
    elif ("0" <=  i  <= "9"):
        number_.append(i)
    elif ("a" <=  i  <= "z") or ("A" <=  i  <= "Z"):
        EnglishLetter.append(i)
    else :
        otherString.append(i)

# "1" 和 "a" 也是可以比较的;";" 和 "a" 也是可以比较的;
print(space_,number_,EnglishLetter,otherString)
print(space_,len(number_),len(EnglishLetter),len(otherString))

输出结果:

可识别“\t”

因为我用的是python自带的IDLE,不支持输入的字符串中带有回车,但是如果字符中直接包含\n 或\t的,都会当做两个字符看待;  如果手动输入“  ” \t  ,则能识别出;

原题使用的是string 库,如下:

 

其实,我想了下,这题还有另外一种解法,对着ASCII表进行比对,

或直接将所有字符转换为ASCII编码对应的数值

或先建立一个 数字列表、字符串列表、空格列表和其他字符列表;

如果要考虑转义字符,可以判断字符是否为"\",如果是,则查看下一个字符在是什么;这个时候得知道Python的所有转义字符;

总之,这题还是应该关注转义字符的,并熟悉String库的使用;

关于中文汉字的识别,后续再考虑吧;


————————(我是分割线)————————

参考:

1. RUNOOB.COM:https://www.runoob.com/python/python-exercise-example17.html

备注:

初次编辑时间:2019年9月30日16:24:16

环境:Windows 7   / Python 3.7.2

原题给出的解答方式:

猜你喜欢

转载自www.cnblogs.com/kaixin2018/p/11613249.html
今日推荐