鱼C论坛

 找回密码
 立即注册
查看: 4421|回复: 5

[已解决]Python字符串格式化问题

[复制链接]
发表于 2017-12-13 01:16:20 | 显示全部楼层 |阅读模式

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

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

x
这个程序可以正常运行
  1. #求一个文件中的数字的平均数
  2. name = input('请输入文件路径和文件名:')
  3. file = open(name,'r')
  4. file_line = file.readline()
  5. sum1 = 0.0
  6. count = 0
  7. while file_line != '':
  8.     for i in file_line.split(','):
  9.         sum1 += eval(i)
  10.         count += 1
  11.     file_line = file.readline()
  12. print('平均数是:',sum1 / count)
复制代码

经过修改在最后加上字符串格式化符号
  1. #求一个文件中的数字的平均数
  2. name = input('请输入文件路径和文件名:')
  3. file = open(name,'r')
  4. file_line = file.readline()
  5. sum1 = 0.0
  6. count = 0
  7. while file_line != '':
  8.     for i in file_line.split(','):
  9.         sum1 += eval(i)
  10.         count += 1
  11.     file_line = file.readline()
  12. print('平均数是:%f' % sum1 / count)

复制代码

下面是错误类型:Traceback (most recent call last):
  File "D:\Python练习文件夹\python练习\一些小程序\求一个文件中数字的平均数.py", line 12, in <module>
    print('平均数是:%f' % sum1 / count)
TypeError: unsupported operand type(s) for /: 'str' and 'int'
求问为什么加上格式化符号后会报错?
最佳答案
2017-12-13 08:57:20
print('平均数是:',sum1 / count)这个可以运行,因为有逗号,会先计算sum1/count
print('平均数是:%f' % sum1 / count)不能运行,因为会将sum1的值替换%f,然后在将前面的字符串除以count
所以出现了 str/int的情况,当然报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-13 03:07:43 | 显示全部楼层
本帖最后由 yjsx86 于 2017-12-13 03:13 编辑

不是格式化出错
而是不支持 字符串 除以 整数
%和/是同级的
你需要
print('平均数是:%f' % (sum1 / count))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-13 08:57:20 | 显示全部楼层    本楼为最佳答案   
print('平均数是:',sum1 / count)这个可以运行,因为有逗号,会先计算sum1/count
print('平均数是:%f' % sum1 / count)不能运行,因为会将sum1的值替换%f,然后在将前面的字符串除以count
所以出现了 str/int的情况,当然报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-13 15:53:32 | 显示全部楼层
测试了下,如附件所示。问题明白了么?
print.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-13 23:43:01 From FishC Mobile | 显示全部楼层
hustlin 发表于 2017-12-13 15:53
测试了下,如附件所示。问题明白了么?

谢谢,我明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-13 23:43:42 From FishC Mobile | 显示全部楼层
yjsx86 发表于 2017-12-13 03:07
不是格式化出错
而是不支持 字符串 除以 整数
%和/是同级的

明白了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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