tiger吴 发表于 2020-5-21 20:51:59

求助


#请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话。
file1=open('/storage/emulated/0/下载/Download/string1/string1.txt','r')
set1=set(file1)
for each in set1:
    counts=file1.count(each)
    print('在%c里面%c共出现%d次'%(file1,each,counts))

   string1.txt是我下载的论坛的一个字符串
请问各位大佬我这样写有什么错误的地方

Twilight6 发表于 2020-5-21 21:01:14

本帖最后由 Twilight6 于 2020-5-21 21:20 编辑

1.你用了set 方法弄成集合还怎么进行统计数量呢?而且要先把文件内容读取出来,不能直接set
2.打开文件的路径不正确
正确例子:
D:/python/test.txt或者 ./python/test.txt等 第二种是工作目录下的文件夹
3.你open 后文件没有read() 不能直接用count ,%s 是格式化字符串,你填%c是格式化ASCII码

最后
在你的基础上改了下代码:
file1 = open('/storage/emulated/0/下载/Download/string1/string1.txt', 'r')
string = file1.read()
ls = set(string)
for each in ls:
    counts = string.count(each)
    print('在file1里面%s共出现%d次' % (str(each), counts))

永恒的蓝色梦想 发表于 2020-5-21 21:04:11

问题大了。
给你个参考:from collections import Counter
from sys import stdout
file=open('/storage/emulated/0/下载/Download/string1/string1.txt','r')
for char,count in Counter(file.read()).items():
    stdout.write(f'在文件里面{char}共出现{count}次')

永恒的蓝色梦想 发表于 2020-5-21 21:05:02

Twilight6 发表于 2020-5-21 21:01
你用了set 方法弄成集合还怎么进行统计数量呢?

弄成集合不是问题,重点是他对文件用 count ?

qiuyouzhi 发表于 2020-5-21 21:05:25

你为啥要搞成set呢?
集合会去重的

tiger吴 发表于 2020-5-21 21:11:16

永恒的蓝色梦想 发表于 2020-5-21 21:04
问题大了。
给你个参考:

你这个写法我还有有些东西没学,我只刚学到文件的用法,
用文件只是因为论坛给的字符串太长了,不想copy,我的目的只是把给定的字符串弄上去,
按我这个思路我应该怎么写呢

Twilight6 发表于 2020-5-21 21:12:49

永恒的蓝色梦想 发表于 2020-5-21 21:05
弄成集合不是问题,重点是他对文件用 count ?

刚刚在编辑哈哈

Twilight6 发表于 2020-5-21 21:13:20

tiger吴 发表于 2020-5-21 21:11
你这个写法我还有有些东西没学,我只刚学到文件的用法,
用文件只是因为论坛给的字符串太长了,不想copy ...

看 2 楼{:10_256:}

tiger吴 发表于 2020-5-21 21:13:50

qiuyouzhi 发表于 2020-5-21 21:05
你为啥要搞成set呢?
集合会去重的

用set(),我是想用str1.count(str2),这样就可以直接打出要求的东西,我该咋写呢

qiuyouzhi 发表于 2020-5-21 21:15:03

永恒的蓝色梦想 发表于 2020-5-21 21:04
问题大了。
给你个参考:

你这是为了炫技啥事都干的出来啊

Twilight6 发表于 2020-5-21 21:15:19

tiger吴 发表于 2020-5-21 21:13
用set(),我是想用str1.count(str2),这样就可以直接打出要求的东西,我该咋写呢

我的代码就是你的需求呀

Twilight6 发表于 2020-5-21 21:15:51

qiuyouzhi 发表于 2020-5-21 21:15
你这是为了炫技啥事都干的出来啊

哈哈哈哈哈{:10_256:}真实

永恒的蓝色梦想 发表于 2020-5-21 21:16:35

qiuyouzhi 发表于 2020-5-21 21:15
你这是为了炫技啥事都干的出来啊

{:10_277:}

tiger吴 发表于 2020-5-21 21:24:02

Twilight6 发表于 2020-5-21 21:01
1.你用了set 方法弄成集合还怎么进行统计数量呢?而且要先把文件内容读取出来,不能直接set
2.打 ...

还是报错,
%c要求int or char
但是string和each都是字符串吧

Twilight6 发表于 2020-5-21 21:25:33

tiger吴 发表于 2020-5-21 21:24
还是报错,
%c要求int or char
但是string和each都是字符串吧

%c 是格式化ASCII码啊你应该用 %s

Twilight6 发表于 2020-5-21 21:26:36

tiger吴 发表于 2020-5-21 21:24
还是报错,
%c要求int or char
但是string和each都是字符串吧

file1 = open('/storage/emulated/0/下载/Download/string1/string1.txt', 'r')
string = file1.read()
ls = set(string)
for each in ls:
    counts = string.count(each)
    print(r'在file1里面%s共出现%d次' % (str(each), counts))

tiger吴 发表于 2020-5-21 21:28:27

Twilight6 发表于 2020-5-21 21:25
%c 是格式化ASCII码啊你应该用 %s

完美,
但是小甲鱼的要说的话呢   怎么找

Twilight6 发表于 2020-5-21 21:29:54

tiger吴 发表于 2020-5-21 21:28
完美,
但是小甲鱼的要说的话呢   怎么找

这就要你自己思考了 ,直接告诉你还不如你直接去看答案了(其实是我自己太久没做了 忘记了哈哈哈哈)

帮助到你了记得设置最佳{:10_288:}

tiger吴 发表于 2020-5-21 21:31:52

tiger吴 发表于 2020-5-21 21:28
完美,
但是小甲鱼的要说的话呢   怎么找

我这个路径是手机上的路径,

tiger吴 发表于 2020-5-21 21:32:54

Twilight6 发表于 2020-5-21 21:29
这就要你自己思考了 ,直接告诉你还不如你直接去看答案了(其实是我自己太久没做了 忘记了哈哈哈哈)

帮 ...

辛苦辛苦了,我试试找找
页: [1] 2
查看完整版本: 求助