python经典百题之统计字符数

这篇具有很好参考价值的文章主要介绍了python经典百题之统计字符数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

方法一:

str_input = input("请输入一行字符:")
count_letter, count_space, count_digits, count_other = 0, 0, 0, 0
for char in str_input:
    if char.isalpha():
        count_letter += 1
    elif char.isspace():
        count_space += 1
    elif char.isdigit():
        count_digits += 1
    else:
        count_other += 1
print("英文字母个数为:", count_letter)
print("空格个数为:", count_space)
print("数字个数为:", count_digits)
print("其他字符个数为:", count_other)

思路:使用for循环遍历字符串中的每一个字符,判断其属于英文字母、空格、数字还是其他字符,并记录相应个数。最后输出结果。

优点:简单易懂,代码量较少。

缺点:if-elif语句较多,代码可读性较差。

方法二:

str_input = input("请输入一行字符:")
count_letter = sum(1 for char in str_input if char.isalpha())
count_space = sum(1 for char in str_input if char.isspace())
count_digits = sum(1 for char in str_input if char.isdigit())
count_other = len(str_input) - count_letter - count_space - count_digits
print("英文字母个数为:", count_letter)
print("空格个数为:", count_space)
print("数字个数为:", count_digits)
print("其他字符个数为:", count_other)

思路:使用生成器表达式与sum函数,将判断字符属于哪一类的过程集成到一行代码中,实现代码简洁化。

优点:代码量较少,可读性较好。

缺点:生成器表达式嵌套在sum函数中,可读性稍弱一些。

方法三:

from collections import Counter

str_input = input("请输入一行字符:")
count_dict = Counter(str_input)
count_letter = count_dict.get("{}".format(chr(10))) - 1    # 减去回车符的个数
count_space = count_dict.get(" ")
count_digits = sum(1 for key in count_dict if key.isdigit())
count_other = len(str_input) - count_letter - count_space - count_digits
print("英文字母个数为:", count_letter)
print("空格个数为:", count_space)
print("数字个数为:", count_digits)
print("其他字符个数为:", count_other)

思路:使用Python标准库中的Counter计数器,将字符串中所有字符及其出现次数记录下来,然后通过字典的get方法获取英文字母、空格、数字及其他字符的数量。

优点:代码简洁,可读性较好。

缺点:需要导入collections库,如果不熟悉该库,理解起来可能较困难。

综上所述,三种方法都能实现统计英文字母、空格、数字和其他字符的个数,具体选择哪一种方法,主要取决于项目实际情况和个人喜好。文章来源地址https://www.toymoban.com/news/detail-732141.html

到了这里,关于python经典百题之统计字符数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python经典百题之兔子出生问题

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 这是一个经典的 Fibonacci 数列问题,可以通过递归或循环来解决。 递归方法: 由题意可知,第 n 个月的兔子

    2024年02月08日
    浏览(48)
  • python经典百题之矩阵对角线之和

    题目要求计算一个3x3矩阵的对角线元素之和,即主对角线和副对角线的元素之和。 主对角线的元素位于矩阵的左上到右下的对角线上,副对角线的元素位于矩阵的右上到左下的对角线上。 我们可以使用三种不同的方法来实现这个程序,分别是: 直接遍历法 :遍历主对角线和

    2024年02月04日
    浏览(41)
  • python经典百题之各项数想加之和

    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制。 方法一:循环累加 思路:通过循环实现累加,将每一项的值计算出来并累加到总和中。具体实现时,可以使用字符串连接的方式构造出每一项的值。 代码实

    2024年02月07日
    浏览(35)
  • python经典百题之static定义静态变量的方法

    在Python中,“static”(静态变量)的概念通常与类的属性相关联。虽然Python没有严格的静态变量概念,但可以通过类属性或模块级变量来模拟静态变量的功能。我们将探讨三种不同的方法来模拟静态变量,以及各种方法的解题思路、优缺点。 我们将介绍三种模拟静态变量的方

    2024年02月02日
    浏览(47)
  • python经典百题之前N项和

    我们需要编写一个函数,根据输入的n的奇偶性分别计算不同的求和。对于偶数n,计算1/2+1/4+…+1/n;对于奇数n,计算1/1+1/3+…+1/n。 解题思路 使用循环计算不同情况下的求和。 代码实现 优缺点 优点: 简单、直接,易于理解和实现。 缺点: 时间复杂度较高,为O(n)。 解题思路

    2024年02月07日
    浏览(42)
  • python经典百题之用*号输出字母C的图案

    题目:用*号输出字母C的图案。 方法一:使用两个循环嵌套打印字符 方法二:使用一个字符串变量存储图案,然后打印该字符串变量 方法三:使用列表推导式生成 C 字母图案 注意,这只是三种方法中的一小部分。实际上,还有很多其他的方法可以输出字母 C 的图案。

    2024年02月09日
    浏览(48)
  • C语言练习百题之位符号&的使用

    当使用C语言中的按位与运算符 时,需要理解其用途、应用场景、源代码示例以及相应的注意事项。以下是一篇关于C语言按位与运算符的详细文章,包括示例源代码和注释。 按位与运算符 是C语言中用于对二进制位进行逐位逻辑与操作的重要工具。它的主要功能是根据操作数

    2024年02月07日
    浏览(56)
  • Java面试题之LeetCode经典算法篇

    2024年01月25日
    浏览(48)
  • JAVA刷题之字符串的一些个人思路

    感谢您的阅读! ꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶ 个人

    2024年02月05日
    浏览(41)
  • 【华为OD统一考试B卷 | 100分】字符统计及重排(C++ Java JavaScript Python)

    在线OJ 已购买本专栏用户,请私信博主开通账号,在线刷题!!! 运行出现 Runtime Error 0Aborted,请忽略 华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。 你收到的链接上面会标注A卷还是B卷。

    2024年02月10日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包