鱼C论坛

 找回密码
 立即注册
查看: 1369|回复: 13

[已解决]老版本第20课课后题string1找字符问题

[复制链接]
发表于 2021-5-16 11:10:12 | 显示全部楼层 |阅读模式

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

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

x
字符我已经找出来了,但是找空格字符我用两种不同的方法找出来的答案是不一样的,这是为什么呢?代码如下:
def statistics(*a):
    for x in range(len(a)):
        digit = letter = space = other = 0 # digit数字,letter字母 #
        for j in a[x]:
            if j.isdigit() == True:
                digit += 1
            elif j.isalpha() == True:
                letter += 1
                print(j, end = ' ')
            elif j.isspace() == True:
            #elif j == ' ':
                space += 1
            else:
                other += 1
        print()
        print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (x + 1, letter, digit, space, other))
请大家看第十行和第十一行,两种找空格字符的方法,用j.isspace() == True,找出空格数量1219,用j == ' '找出空格为0,这是为什么呢?
最佳答案
2021-5-17 09:23:52
zhou8491029 发表于 2021-5-17 08:17
你把旧版第20课课后的作业string1文件下载测试一下

如果你是用那个的话我大概知道了,因为TXT文件的换行是一个回车符和一个换行符。
在Python中,txt的换行会被isspace当成TRUE,但是字符串匹配上却不等于' ',而被归为特殊字符。
这一点你可以通过把长字符从TXT文档复制到py文件中,把其中一行的开头delete一下,你会发现isspace方法里空格判断少了一个而用匹配' '方法则特殊字符少了一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-16 11:15:37 | 显示全部楼层
isspace()
如果字符串中只包含空格,则返回 True,否则返回 False.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-16 11:17:25 | 显示全部楼层
z5560636 发表于 2021-5-16 11:15
isspace()
如果字符串中只包含空格,则返回 True,否则返回 False.

这个我知道呀,和这个代码j == ' '效果应该是一样的,但是为什么结果不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 11:19:55 | 显示全部楼层


你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 11:24:58 | 显示全部楼层
Twilight6 发表于 2021-5-16 11:19
你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格

旧版的19讲的作业,是有的。

评分

参与人数 1鱼币 +5 收起 理由
Twilight6 + 5 哦哦,我只看了 20 讲 ^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 11:28:22 | 显示全部楼层
看看你传入的参数的内容?我用自己当初写的代码换了两种方法都没问题啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 11:30:02 | 显示全部楼层
估计是你函数传递的参数错了,问题不在你发出来的代码里面。
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-16 11:54:08 | 显示全部楼层
本帖最后由 白本羽 于 2021-5-16 12:09 编辑

我用你的代码试了一下,输出是一样的...,应该是传入的a参数出了问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 08:15:58 | 显示全部楼层
白本羽 发表于 2021-5-16 11:54
我用你的代码试了一下,输出是一样的...,应该是传入的a参数出了问题

你把旧版第20课课后的作业string1文件下载测试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 08:16:52 | 显示全部楼层
z5560636 发表于 2021-5-16 11:30
估计是你函数传递的参数错了,问题不在你发出来的代码里面。

你把旧版第20课课后的作业string1文件下载测试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 08:17:35 | 显示全部楼层
Hoiste 发表于 2021-5-16 11:28
看看你传入的参数的内容?我用自己当初写的代码换了两种方法都没问题啊。

你把旧版第20课课后的作业string1文件下载测试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 08:18:27 | 显示全部楼层
Twilight6 发表于 2021-5-16 11:19
你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格

没读取错,就是两种方法得到的结果不一样。。。。所以我句很纠结问题出在哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-17 09:23:52 | 显示全部楼层    本楼为最佳答案   
zhou8491029 发表于 2021-5-17 08:17
你把旧版第20课课后的作业string1文件下载测试一下

如果你是用那个的话我大概知道了,因为TXT文件的换行是一个回车符和一个换行符。
在Python中,txt的换行会被isspace当成TRUE,但是字符串匹配上却不等于' ',而被归为特殊字符。
这一点你可以通过把长字符从TXT文档复制到py文件中,把其中一行的开头delete一下,你会发现isspace方法里空格判断少了一个而用匹配' '方法则特殊字符少了一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 09:46:15 | 显示全部楼层
Hoiste 发表于 2021-5-17 09:23
如果你是用那个的话我大概知道了,因为TXT文件的换行是一个回车符和一个换行符。
在Python中,txt的换行 ...

谢谢解惑,纠结了我好多天呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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