鱼C论坛

 找回密码
 立即注册
查看: 1285|回复: 19

[已解决]求助

[复制链接]
发表于 2020-5-21 20:51:59 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
#请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话。
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是我下载的论坛的一个字符串
请问各位大佬我这样写有什么错误的地方
最佳答案
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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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}次')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:05:02 | 显示全部楼层
Twilight6 发表于 2020-5-21 21:01
你用了set 方法弄成集合还怎么进行统计数量呢?

弄成集合不是问题,重点是他对文件用 count ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:05:25 | 显示全部楼层
你为啥要搞成set呢?
集合会去重的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 21:11:16 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-21 21:04
问题大了。
给你个参考:

你这个写法我还有有些东西没学,我只刚学到文件的用法,
用文件只是因为论坛给的字符串太长了,不想copy,我的目的只是把给定的字符串弄上去,
按我这个思路我应该怎么写呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:12:49 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-21 21:05
弄成集合不是问题,重点是他对文件用 count ?

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

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2020-5-21 21:13:50 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-5-21 21:05
你为啥要搞成set呢?
集合会去重的

用set(),我是想用str1.count(str2),这样就可以直接打出要求的东西,我该咋写呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:15:03 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-21 21:04
问题大了。
给你个参考:

你这是为了炫技啥事都干的出来啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我的代码就是你的需求呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:15:51 | 显示全部楼层
qiuyouzhi 发表于 2020-5-21 21:15
你这是为了炫技啥事都干的出来啊

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

使用道具 举报

发表于 2020-5-21 21:16:35 | 显示全部楼层
qiuyouzhi 发表于 2020-5-21 21:15
你这是为了炫技啥事都干的出来啊

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

使用道具 举报

 楼主| 发表于 2020-5-21 21:24:02 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-21 21:01

1.你用了set 方法弄成集合还怎么进行统计数量呢?而且要先把文件内容读取出来,不能直接set

2.打 ...

还是报错,
%c要求int or char
但是string和each都是字符串吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:25:33 | 显示全部楼层
tiger吴 发表于 2020-5-21 21:24
还是报错,
%c要求int or char
但是string和each都是字符串吧

%c 是格式化ASCII码啊  你应该用 %s
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 21:28:27 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-21 21:25
%c 是格式化ASCII码啊  你应该用 %s

完美,
但是小甲鱼的要说的话呢   怎么找
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 21:29:54 | 显示全部楼层
tiger吴 发表于 2020-5-21 21:28
完美,
但是小甲鱼的要说的话呢   怎么找

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

帮助到你了记得设置最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 21:31:52 From FishC Mobile | 显示全部楼层
tiger吴 发表于 2020-5-21 21:28
完美,
但是小甲鱼的要说的话呢   怎么找

我这个路径是手机上的路径,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-21 21:32:54 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-21 21:29
这就要你自己思考了 ,直接告诉你还不如你直接去看答案了(其实是我自己太久没做了 忘记了哈哈哈哈)

帮 ...

辛苦辛苦了,我试试找找
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 07:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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