xc02570 发表于 2022-3-2 11:18:44

新手求助!



def is_number(s):
    try:
      float(s)
      return True
    except ValueError:
      pass

    try:
      import unicodedata
      unicodedata.numeric(s)
      return True
    except (TypeError, ValueError):
      pass

    return False

print(is_number('三'))

不应该返回 True吗?

大马强 发表于 2022-3-2 11:23:39

??? 我这返回的就是true {:10_245:}

python爱好者. 发表于 2022-3-2 11:24:06

你没有装unicodedata 模块,“三” 也不是数字类型,所以两个 try: 语句都失败

isdkz 发表于 2022-3-2 11:24:45

没有问题呀,我这里就是返回 True

大马强 发表于 2022-3-2 11:25:20

try:
      unicodedata.numeric(s)
      return True
这个返回的

xc02570 发表于 2022-3-2 11:28:48

大马强 发表于 2022-3-2 11:23
??? 我这返回的就是true

我返回的 False

python爱好者. 发表于 2022-3-2 11:28:53

是他没安装unicodedata 模块,你们安装了

xc02570 发表于 2022-3-2 11:29:19

isdkz 发表于 2022-3-2 11:24
没有问题呀,我这里就是返回 True

我返回的 False

python爱好者. 发表于 2022-3-2 11:29:23

xc02570 发表于 2022-3-2 11:28
我返回的 False

isdkz 发表于 2022-3-2 11:46:01

本帖最后由 isdkz 于 2022-3-2 11:48 编辑

python爱好者. 发表于 2022-3-2 11:28
是他没安装unicodedata 模块,你们安装了

这个是python自带的库,不需要安装,

再说,他并没有捕获 ImportError ,没有这个库会报错,

所以很明显不是导入的问题

isdkz 发表于 2022-3-2 11:50:37

xc02570 发表于 2022-3-2 11:28
我返回的 False

那你确定你把你的代码原样复制上来了?

xc02570 发表于 2022-3-2 14:13:25

isdkz 发表于 2022-3-2 11:50
那你确定你把你的代码原样复制上来了?

都复制了。没有少

云龙烛火 发表于 2022-3-2 21:26:38

你的最后一个return是和except对齐的,无论如何都会执行,所以返回False

isdkz 发表于 2022-3-3 00:16:32

本帖最后由 isdkz 于 2022-3-3 00:18 编辑

云龙烛火 发表于 2022-3-2 21:26
你的最后一个return是和except对齐的,无论如何都会执行,所以返回False

你先复制过去执行一遍再说

isdkz 发表于 2022-3-3 00:20:41

本帖最后由 isdkz 于 2022-3-3 00:23 编辑

xc02570 发表于 2022-3-2 14:13
都复制了。没有少

你还是把代码跟运行结果一起截个图放上来给我们看一下吧{:10_284:},

新鱼油怎么传图片你可以看一下这个:
https://fishc.com.cn/thread-168190-1-1.html
页: [1]
查看完整版本: 新手求助!