鱼C论坛

 找回密码
 立即注册
查看: 3326|回复: 17

[已解决]程序为什么是这个结果?

[复制链接]
发表于 2016-8-25 22:29:52 | 显示全部楼层 |阅读模式

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

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

x
背景:统计一个字符在文本中出现的次数
  1. a = []
  2. b = open('D:\\Python\\a.txt','r')
  3. for each in b:
  4.     a.append(each)
  5. c = input('请输入要查找的字符:')
  6. if c not in a:
  7.     print('您要查找的字符%s不存在文件中 ' %c)
  8. else:
  9.     print('您要查找的字符%s在文本中出现了%d次  '  %c %(a.count(c)))
复制代码


测试时我的a.txt文本内容是如图所示,但是不管我输入是a,abc,或者全部输入结果都是“你要查找的字符不存在文件中”,我通过debug发现a中有abc bbc wen字符,为什么还说是不存在呢?
a.png
有信息.png

另外我想单独最后执行else的打印语句,却总是说"TypeError: not enough arguments for format string",对格式化输出不懂,请指正
  1. print('您要查找的字符%s在文本中出现了%d次  '  %c  %(a.count(c)))
复制代码
最佳答案
2016-8-27 10:27:53
%c %(a.count(c))  换成  %(c,a.count(c))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-26 09:26:47 | 显示全部楼层
因为你的each='abc bbc wen'   列表a=['abc bbc wen'] 可以split下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-26 21:29:54 | 显示全部楼层
impossibleis_0 发表于 2016-8-26 09:26
因为你的each='abc bbc wen'   列表a=['abc bbc wen'] 可以split下?
  1. print('您要查找的字符%s在文本中出现了%d次  '  %c  %(a.count(c)))
复制代码


一直提示TypeError: not enough arguments for format string是什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-26 21:40:02 | 显示全部楼层
@SixPy @shuofxz, @hldh214 @冬雪雪冬 @wei_Y @~风介~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 10:27:53 | 显示全部楼层    本楼为最佳答案   
%c %(a.count(c))  换成  %(c,a.count(c))

评分

参与人数 1鱼币 +2 收起 理由
SixPy + 2 支持!

查看全部评分

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

使用道具 举报

发表于 2016-8-27 10:29:45 | 显示全部楼层
"TypeError: not enough arguments for format string"   缺少参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 10:57:09 | 显示全部楼层
找找版主和小甲鱼来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 11:09:55 | 显示全部楼层
本帖最后由 SixPy 于 2016-8-27 11:12 编辑

#a = []
b = open('D:\\Python\\a.txt','r')
c = input('请输入要查找的字符:')
for a in b:
    #a.append(each)
    if c not in a:
        print('您要查找的字符%s不存在文件中 ' %c)
    else:
        print('您要查找的字符%s在文本中出现了%d次  ' % (c, a.count(c)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 13:09:03 | 显示全部楼层
因为你文本里的abc  bbc wen是作为整个一个字符串存入列表,你需要分割开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 16:42:00 | 显示全部楼层
因为你的a=['abc bbc wen'] len(a)=1的 当然a或是abc 肯定不在a里面了   如果输入:abc bbc wen就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-27 22:08:03 | 显示全部楼层
SixPy 发表于 2016-8-27 11:09
#a = []
b = open('D:\\Python\\a.txt','r')
c = input('请输入要查找的字符:')

还是不行,还是得不到想要的答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-27 22:08:49 | 显示全部楼层
玄天宗 发表于 2016-8-27 16:42
因为你的a=['abc bbc wen'] len(a)=1的 当然a或是abc 肯定不在a里面了   如果输入:abc bbc wen就对了

输入abc bbc wen也不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 22:23:51 | 显示全部楼层
  1. a = []
  2. b = open('a.txt','r')
  3. for each in b:
  4.     item=each.split(' ')
  5.     for eachitem in item:
  6.         a.append(eachitem)
  7. c = input('请输入要查找的字符:')
  8. if c not in a:
  9.     print('您要查找的字符%s不存在文件中 ' %c)
  10. else:
  11.     print('您要查找的字符%s在文本中出现了%d次  ' % (c, a.count(c)))
复制代码


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

使用道具 举报

 楼主| 发表于 2016-8-27 22:30:37 | 显示全部楼层
SixPy 发表于 2016-8-27 11:09
#a = []
b = open('D:\\Python\\a.txt','r')
c = input('请输入要查找的字符:')
  1. a = open("D:\\python\\1.txt","r")
  2. c = [  ]
  3. for each in a:
  4.     c.append(each)
  5.    
  6. e = "".join(c)
  7. b = input("请输入要查找的字符串:")
  8. if b not in e:
  9.         print("你要查找的字符%r不在文本中"   %b)
  10.         
  11. else:
  12.         print("您要查找的字符%r在文本中出现了%d次 " %(b,e.count(b)))  
复制代码


  1. 请输入要查找的字符串:abc
  2. 您要查找的字符'abc'在文本中出现了1次
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 22:35:12 | 显示全部楼层
寒园 发表于 2016-8-27 22:08
还是不行,还是得不到想要的答案
  1. c = input('请输入要查找的字符:')
  2. a='abc bbc wen'
  3. if c not in a:
  4.     print('您要查找的字符%s不存在文件中 ' %c)
  5. else:
  6.     print('您要查找的字符%s在文本中出现了%d次  ' % (c, a.count(c)))
复制代码


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

使用道具 举报

发表于 2016-8-27 23:17:46 | 显示全部楼层
寒园 发表于 2016-8-27 22:08
输入abc bbc wen也不对

a = []
b = open('D:/test/abc.txt','r')  #路径用你自己的
for each in b:
    a.append(each)
b.close()
c = input('请输入要查找的字符:')

if c in a:
   print('您要查找的字符',c,'在文本中出现了')
else:
   print('您要查找的字符不存在文件中')

小小的改了一点,输入:abc bbc wen    没有问题啊、、、
你在看看(顺便问哈发代码是怎么用代码格式的)
附截图:
C:\Users\Administrator\Desktop\AQC_OUB_49%5D}GX(Z$BWQB8L.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 23:18:38 | 显示全部楼层
玄天宗 发表于 2016-8-27 23:17
a = []
b = open('D:/test/abc.txt','r')  #路径用你自己的
for each in b:

图片不会发了、、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-28 08:46:51 | 显示全部楼层
玄天宗 发表于 2016-8-27 23:17
a = []
b = open('D:/test/abc.txt','r')  #路径用你自己的
for each in b:

代码格式.png


如图所示,点击之后附上你的代码即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 17:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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