鱼C论坛

 找回密码
 立即注册
查看: 1451|回复: 12

[已解决]就是赋值地方不同,求解为什么最后的结果不同

[复制链接]
发表于 2018-1-26 21:50:04 | 显示全部楼层 |阅读模式

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

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

x
求解为什么这两个结果不用,另外我想问一下这个b的值是多少,我感觉像是0
最佳答案
2018-1-26 22:58:43
本帖最后由 塔利班 于 2018-1-26 23:44 编辑

算了,我自己敲了,你凑合看看
  1. def m(*a):
  2.     st=sp=num=oth=0
  3.     T=P=N=O=0
  4.     for b in range(len(a)):
  5.         for c in a[b]:
  6.             if c.isalpha()==True:
  7.                 st+=1
  8.                 T+=1
  9.             elif c.isdigit()==True:
  10.                 num+=1
  11.                 N+=1
  12.             elif c.isspace()==True:
  13.                 sp+=1
  14.                 P+=1
  15.             else:
  16.                 oth+=1
  17.                 O+=1
  18.         print("第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个"%(b+1,st,num,sp,oth))
  19.         st=sp=num=oth=0
  20.     print("总计:英文字母%d个,数字%d个,空格%d个,其他字符%d个"%(T,N,P,O))
  21. m('l love you','he is my father')
复制代码
QQ图片20180126214628.png
QQ图片20180126214803.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-26 22:04:48 | 显示全部楼层
本帖最后由 塔利班 于 2018-1-26 22:06 编辑

两个不一样的地方就在于你的几个初始化放没放在for循环里,
第一个没放,结果字符串1,2一起统计了,因为循环了b=0,还继续循环b=1,你的各个数值没初始化还能+=1
第二个放了,第一个被清0,统计了第二个的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-26 22:20:39 | 显示全部楼层
塔利班 发表于 2018-1-26 22:04
两个不一样的地方就在于你的几个初始化放没放在for循环里,
第一个没放,结果字符串1,2一起统计了,因为循 ...

那如何来表示即统计第一个字符,又统计第二个字符,然后在汇总统计的字符?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 22:26:28 | 显示全部楼层
fan1993423 发表于 2018-1-26 22:20
那如何来表示即统计第一个字符,又统计第二个字符,然后在汇总统计的字符?

你的第一个就是总的汇总,第二个就是单个的,,我觉得都挺简单了
你把代码贴出来,用发帖那一行<>发出来,我给你改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 22:27:56 | 显示全部楼层
塔利班 发表于 2018-1-26 22:26
你的第一个就是总的汇总,第二个就是单个的,,我觉得都挺简单了
你把代码贴出来,用发帖那一行发出来, ...

<>在笑脸左边,点进去就能发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-26 22:39:26 | 显示全部楼层
塔利班 发表于 2018-1-26 22:27
在笑脸左边,点进去就能发

什么笑脸
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 22:42:48 | 显示全部楼层

就事发表情那里,左边的<>可以发代码,把代码粘贴过去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-26 22:58:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 塔利班 于 2018-1-26 23:44 编辑

算了,我自己敲了,你凑合看看
  1. def m(*a):
  2.     st=sp=num=oth=0
  3.     T=P=N=O=0
  4.     for b in range(len(a)):
  5.         for c in a[b]:
  6.             if c.isalpha()==True:
  7.                 st+=1
  8.                 T+=1
  9.             elif c.isdigit()==True:
  10.                 num+=1
  11.                 N+=1
  12.             elif c.isspace()==True:
  13.                 sp+=1
  14.                 P+=1
  15.             else:
  16.                 oth+=1
  17.                 O+=1
  18.         print("第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个"%(b+1,st,num,sp,oth))
  19.         st=sp=num=oth=0
  20.     print("总计:英文字母%d个,数字%d个,空格%d个,其他字符%d个"%(T,N,P,O))
  21. m('l love you','he is my father')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-26 23:02:25 | 显示全部楼层
塔利班 发表于 2018-1-26 22:58
算了,我自己敲了,你凑合看看

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

使用道具 举报

发表于 2018-1-26 23:16:12 | 显示全部楼层
根据你的想法 我稍微改了一下你的代码:如下:
def m(*a):
        st = [] ; sp = [] ; num = [] ; oth = []
        for b in range(len(a)):
                st.append(0) ; sp.append(0) ; num.append(0) ; oth.append(0)
        for b in range(len(a)):
                for c in a[b]:
                        if c.isalpha()==True:
                                st[b]+=1
                        elif c.isdigit()==True:
                                num[b]+=1
                        elif c.isspace()==True:
                                sp[b]+=1
                        else:
                                oth[b]+=1
        for b in range(len(a)):
                print('第%d个--->英文字母%d个,数字%d个,空格%d个,其他%d个'%(b+1,st[b],num[b],sp[b],oth[b]))
        print('总共--->英文字母%d个,数字%d个,空格%d个,其他%d个'%(sum(st),sum(num),sum(sp),sum(oth)))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 01:15:03 | 显示全部楼层
塔利班 发表于 2018-1-26 22:04
两个不一样的地方就在于你的几个初始化放没放在for循环里,
第一个没放,结果字符串1,2一起统计了,因为循 ...

在问个问题,这个b是怎么来的,怎么看是从0开始呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 01:17:56 | 显示全部楼层
塔利班 发表于 2018-1-26 22:04
两个不一样的地方就在于你的几个初始化放没放在for循环里,
第一个没放,结果字符串1,2一起统计了,因为循 ...

还有为什么第一个会被清零,初学者,希望讲的仔细,初级点。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-27 01:18:54 | 显示全部楼层
ColbySuns 发表于 2018-1-26 23:16
根据你的想法 我稍微改了一下你的代码:如下:
def m(*a):
        st = [] ; sp = [] ; num = [] ; oth  ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-6 09:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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