鱼C论坛

 找回密码
 立即注册
查看: 1374|回复: 8

[已解决]为什么会出现这种神奇的情况呢?

[复制链接]
发表于 2018-4-5 16:14:56 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼叫定义sum无视字符串计算和,于是我这样写的:
def sum(x):
    count = 0.0
   
    for each in x:
        if str(each).isdigit():
            count += float(each)
        else:
            continue
    return count
print(sum([12.3,45.6,7.89,3.3,'a','1',True]))
小甲鱼的实现我也看了,起初我觉得自己没有问题,但是在遇到浮点数却出现了一个奇葩的问题。
执行情况如下:
TIM截图20180405161349.png

请大佬回答一下这种情况的产生原因,很想知道


最佳答案
2018-4-5 16:54:48
isdigit只有整数才为True,里面只有一个1满足条件
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-5 16:23:57 | 显示全部楼层
没啥问题,isdigit识别只包含数字的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 16:54:48 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
isdigit只有整数才为True,里面只有一个1满足条件
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 17:01:48 | 显示全部楼层
整数只有1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-5 17:06:37 | 显示全部楼层
塔利班 发表于 2018-4-5 16:23
没啥问题,isdigit识别只包含数字的

???没懂,能详细点吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-5 17:07:20 | 显示全部楼层
qaz505876013 发表于 2018-4-5 17:06
???没懂,能详细点吗

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

使用道具 举报

发表于 2018-4-5 17:10:27 | 显示全部楼层
只有整数str(each).isdigit()才为True,可以这样改:
  1. def sum(x):
  2.     count = 0.0
  3.    
  4.     for each in x:
  5.         if isinstance(each, (float, int)):
  6.             count += float(each)
  7.         else:
  8.             continue
  9.     return count
  10. print(sum([12.3,45.6,7.89,3.3,'a','1',True]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-5 17:10:32 | 显示全部楼层
BngThea 发表于 2018-4-5 16:54
isdigit只有整数才为True,里面只有一个1满足条件

谢谢(。・∀・)ノ
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 13:05:46 | 显示全部楼层
qaz505876013 发表于 2018-4-5 17:10
谢谢(。・∀・)ノ

整数是不准确的,-1这种是False,要只包括数字的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 05:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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