鱼C论坛

 找回密码
 立即注册
查看: 1409|回复: 3

[已解决]python第19讲课后习题

[复制链接]
发表于 2020-7-8 11:46:54 | 显示全部楼层 |阅读模式

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

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

x
题目:1. 编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
我的代码如下:
def tongji(str1):
    zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    shuzi = '0123456789'
    space = ' '
    others = '+-*/.'
    z = 0
    sz = 0
    sp = 0
    ot = 0
    i = len(str1)
    t = 0
    while t <= i-1:
        if str1[t] in zimu :
            z += 1
            if str1[t] in shuzi:
                sz += 1
                if str1[t] in space:
                    sp += 1
                    if str1[t] in others:
                        ot += 1
        t += 1
    print('第1个字符串共有:英文字母',z,'个,数字',sz,'个,空格',sp,'个,其他字符',ot,'个')
我输入了这个字符串:I love fishc.com.
问题是只识别出了13个字母,空格和特殊字符都不能识别。问题出在哪?
最佳答案
2020-7-8 11:48:35


缩进错了:

  1. def tongji(str1):
  2.     zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  3.     shuzi = '0123456789'
  4.     space = ' '
  5.     others = '+-*/.'
  6.     z = 0
  7.     sz = 0
  8.     sp = 0
  9.     ot = 0
  10.     i = len(str1)
  11.     t = 0
  12.     while t <= i-1:
  13.         if str1[t] in zimu :
  14.             z += 1
  15.         if str1[t] in shuzi:
  16.             sz += 1
  17.         if str1[t] in space:
  18.             sp += 1
  19.         if str1[t] in others:
  20.             ot += 1
  21.         t += 1
  22.     print('第1个字符串共有:英文字母',z,'个,数字',sz,'个,空格',sp,'个,其他字符',ot,'个')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-8 11:48:35 | 显示全部楼层    本楼为最佳答案   


缩进错了:

  1. def tongji(str1):
  2.     zimu = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  3.     shuzi = '0123456789'
  4.     space = ' '
  5.     others = '+-*/.'
  6.     z = 0
  7.     sz = 0
  8.     sp = 0
  9.     ot = 0
  10.     i = len(str1)
  11.     t = 0
  12.     while t <= i-1:
  13.         if str1[t] in zimu :
  14.             z += 1
  15.         if str1[t] in shuzi:
  16.             sz += 1
  17.         if str1[t] in space:
  18.             sp += 1
  19.         if str1[t] in others:
  20.             ot += 1
  21.         t += 1
  22.     print('第1个字符串共有:英文字母',z,'个,数字',sz,'个,空格',sp,'个,其他字符',ot,'个')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-8 11:49:35 | 显示全部楼层
你的if分支写的不对。

只有在满足 if str1[t] in zimu :的条件下,才进入判断if str1[t] in shuzi:。

这种不应该是从属关系,而应该是并列关系。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-8 12:02:46 | 显示全部楼层
heidern0612 发表于 2020-7-8 11:49
你的if分支写的不对。

只有在满足 if str1[t] in zimu :的条件下,才进入判断if str1[t] in shuzi:。

感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 05:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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