鱼C论坛

 找回密码
 立即注册
查看: 3672|回复: 4

[已解决]第十九课,动动手小白最后一题看不懂,请多多指教!

[复制链接]
发表于 2016-9-27 20:30:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def count(*param):
    length = len(param)
    for i in range(length):
        letters = 0
        space = 0
        digit = 0
        others = 0
        for each in param[i]:
            if each.isalpha():
                letters += 1
            elif each.isdigit():
                digit += 1
            elif each == ' ':
                space += 1
            else:
                others += 1
        print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
            
count('I love fishc.com.', 'I love you, you love me.')

这段代码从第二行开始就看不懂了,各位鱼油可以简单给个注释帮助理解吗?还有最后print的内容,后面的% (i+1, letters, digit, space, others)是什么意思呢?请教了!
最佳答案
2020-12-14 11:39:06
这是一个用于统计字符的程序,统计count函数中每个参数字符串所含各类字符的个数。
程序第二行的意思是计算传入函数的参数个数,返回给length。
print语句的意思是依次输出i+1、letters、digit、space和others的值,填入前面的格式化字符串,即:“第 i+1 个字符串共有:英文字母 letters 个,数字 digit 个,空格 space 个,其他字符 others 个。”
程序的详细注释见下:
  1. def count(*param):
  2.     length = len(param)             # 计算传入函数的参数个数,返回给length
  3.     for i in range(length):         # 对于传入函数的每个参数(字符串)
  4.         letters = 0                 # 统计英文字母数letters,初始化为0
  5.         space = 0                   # 统计空格数space,初始化为0
  6.         digit = 0                   # 统计数字数digit,初始化为0
  7.         others = 0                  # 统计其他字符数digit,初始化为0
  8.         for each in param[i]:       # 取出字符串中的每个字符
  9.             if each.isalpha():      # 如果该字符是英文字母
  10.                 letters += 1        # 英文字母数letters加1
  11.             elif each.isdigit():    # 如果该字符是数字
  12.                 digit += 1          # 数字数digit加1
  13.             elif each == ' ':       # 如果该字符是空格
  14.                 space += 1          # 空格数space加1
  15.             else:                   # 如果该字符是其他字符
  16.                 others += 1         # 其他字符数others加1
  17.         # 依次输出每个字符串的统计结果:第 i+1 个字符串共有:英文字母 letters 个,数字 digit 个,空格 space 个,其他字符 others 个。
  18.         print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
  19.             
  20. count('I love fishc.com.', 'I love you, you love me.')  # 调用函数,输出结果
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-27 20:33:25 | 显示全部楼层
length = len(param)这一句是计算传入函数的参数的个数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-27 21:00:12 | 显示全部楼层
看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-27 21:46:38 | 显示全部楼层
一起学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-14 11:39:06 | 显示全部楼层    本楼为最佳答案   
这是一个用于统计字符的程序,统计count函数中每个参数字符串所含各类字符的个数。
程序第二行的意思是计算传入函数的参数个数,返回给length。
print语句的意思是依次输出i+1、letters、digit、space和others的值,填入前面的格式化字符串,即:“第 i+1 个字符串共有:英文字母 letters 个,数字 digit 个,空格 space 个,其他字符 others 个。”
程序的详细注释见下:
  1. def count(*param):
  2.     length = len(param)             # 计算传入函数的参数个数,返回给length
  3.     for i in range(length):         # 对于传入函数的每个参数(字符串)
  4.         letters = 0                 # 统计英文字母数letters,初始化为0
  5.         space = 0                   # 统计空格数space,初始化为0
  6.         digit = 0                   # 统计数字数digit,初始化为0
  7.         others = 0                  # 统计其他字符数digit,初始化为0
  8.         for each in param[i]:       # 取出字符串中的每个字符
  9.             if each.isalpha():      # 如果该字符是英文字母
  10.                 letters += 1        # 英文字母数letters加1
  11.             elif each.isdigit():    # 如果该字符是数字
  12.                 digit += 1          # 数字数digit加1
  13.             elif each == ' ':       # 如果该字符是空格
  14.                 space += 1          # 空格数space加1
  15.             else:                   # 如果该字符是其他字符
  16.                 others += 1         # 其他字符数others加1
  17.         # 依次输出每个字符串的统计结果:第 i+1 个字符串共有:英文字母 letters 个,数字 digit 个,空格 space 个,其他字符 others 个。
  18.         print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
  19.             
  20. count('I love fishc.com.', 'I love you, you love me.')  # 调用函数,输出结果
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-30 09:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表