栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python没有变量定义所以要比较时要注意类型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python没有变量定义所以要比较时要注意类型

今天使用python随便写另一个读取文件的程序,文件的内容是:第一行是文件总行数与总的数据大小(行数从第二行开
始算起),期间需要对比行数是否一致。代码中打印出总行数与计算出来的行数是一致的,但是代码中通过!=判断是不一致的。比较纳闷,怎么回事?之后打印出两个行数的变量类型发现一个int,一个string类型,那就肯定不一致了,原来读取到第一行后给总行数赋值是没有类型转化。

import os
import sys

#总的交易笔数
sum_count = 0
#总交易额
sum_money=0.0
#总行数
count = 0
#明细之和
detail_sum = 0.0

rootdir = os.getcwd()
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for i in list:
    path = os.path.join(rootdir,i)#将目录名与文件名拼接成一个完整的路径
    if os.path.isfile(path):
 #判断是不是哦txt文件
 file_post = str(i.split('.')[-1])
 if file_post == 'txt':
     fo = open(path, "r")
     #第一遍循环校对总金额与总笔数
     for line in fo.readlines():
  if line.count('|')==1:
      ***sum_count = int(line.split('|')[0])***#这里要转化类型,通过split赋值的都是string类型
      sum_money = line.split('|')[-1]
  else:
      count += 1
      rmb = line.split('|')[7]
      detail_sum = detail_sum + float(rmb)

     print("总交易金额:"+str(detail_sum))
     if sum_count != count:#类型不一致也会执行下面的语句
  print("总交易笔数与明细中的笔数不一致,%d:%d"%(sum_count,count))
     elif sum_money != detail_sum:
  print("总金额与明细中的金额汇总不一致")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/224272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号