老版本第20课课后题string1找字符问题
字符我已经找出来了,但是找空格字符我用两种不同的方法找出来的答案是不一样的,这是为什么呢?代码如下:def statistics(*a):
for x in range(len(a)):
digit = letter = space = other = 0 # digit数字,letter字母 #
for j in a:
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,这是为什么呢? isspace()
如果字符串中只包含空格,则返回 True,否则返回 False. z5560636 发表于 2021-5-16 11:15
isspace()
如果字符串中只包含空格,则返回 True,否则返回 False.
这个我知道呀,和这个代码j == ' '效果应该是一样的,但是为什么结果不一样
你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格
Twilight6 发表于 2021-5-16 11:19
你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格
旧版的19讲的作业,是有的。 看看你传入的参数的内容?我用自己当初写的代码换了两种方法都没问题啊。 估计是你函数传递的参数错了,问题不在你发出来的代码里面。
本帖最后由 白本羽 于 2021-5-16 12:09 编辑
我用你的代码试了一下,输出是一样的...,应该是传入的a参数出了问题 白本羽 发表于 2021-5-16 11:54
我用你的代码试了一下,输出是一样的...,应该是传入的a参数出了问题
你把旧版第20课课后的作业string1文件下载测试一下 z5560636 发表于 2021-5-16 11:30
估计是你函数传递的参数错了,问题不在你发出来的代码里面。
你把旧版第20课课后的作业string1文件下载测试一下 Hoiste 发表于 2021-5-16 11:28
看看你传入的参数的内容?我用自己当初写的代码换了两种方法都没问题啊。
你把旧版第20课课后的作业string1文件下载测试一下 Twilight6 发表于 2021-5-16 11:19
你是不是文件读取错了吧?小甲鱼 string1 的文件是用于统计各字符个数的,本来就没有空格
没读取错,就是两种方法得到的结果不一样。。。。所以我句很纠结问题出在哪里 zhou8491029 发表于 2021-5-17 08:17
你把旧版第20课课后的作业string1文件下载测试一下
如果你是用那个的话我大概知道了,因为TXT文件的换行是一个回车符和一个换行符。
在Python中,txt的换行会被isspace当成TRUE,但是字符串匹配上却不等于' ',而被归为特殊字符。
这一点你可以通过把长字符从TXT文档复制到py文件中,把其中一行的开头delete一下,你会发现isspace方法里空格判断少了一个而用匹配' '方法则特殊字符少了一个。 Hoiste 发表于 2021-5-17 09:23
如果你是用那个的话我大概知道了,因为TXT文件的换行是一个回车符和一个换行符。
在Python中,txt的换行 ...
谢谢解惑,纠结了我好多天呀
页:
[1]