在其中一个评论中,你说:

不知何故,我得到一个Nonetype值,它应该是一个int,但它现在是一个Nonetype对象

如果是你的代码,那么当你期望一个数字并且阻止它发生的时候,弄清楚你是如何得到None 。

如果是别人的代码,找出它给出None的条件,并确定一个合理的值用于这个,通常的条件代码:

result = could_return_none(x) if result is None: result = DEFAULT_VALUE

…甚至…

if x == THING_THAT_RESULTS_IN_NONE: result = DEFAULT_VALUE else: result = could_return_none(x) # But it won't return None, because we've restricted the domain.

没有理由在这里自动使用0–依赖于“ None ”的解决scheme假设你会想要这个。 DEFAULT_VALUE (如果它存在的话)完全取决于你的代码的目的。

int(value or 0)

当你提供Python认为False任何值时,例如None,0,[],“”等,这将使用0。由于0是False ,所以你只能使用0作为替代值(否则你会发现你的0变成了这个值)。

int(0 if value is None else value)

这只会将0replace为0.由于我们正在对“ None专门testing,因此可以使用其他一些值作为replace。

处理这种情况的一种常见的“Pythonic”方法被称为EAFP: “ 请求宽恕比允许要容易 ”。 这通常意味着编写假定一切都很好的代码,但是随后使用try..except块进行包装,以防万一不能处理。

以下是适用于您的问题的编码风格:

try: my_value = int(my_value) except TypeError: my_value = 0 # or whatever you want to do answer = my_value / divisor

或者,也许更简单,更快一点:

try: answer = my_value / divisor except TypeError: answer = 0

反过来和更传统的方法被称为LBYL ,代表“ 在你跳跃前看 ”是什么@Soviut和其他一些人build议。 有关此主题的其他内容,请参阅我的回答以及相关问题的评论。 确定密钥是否出现在本网站其他地方的字典中 。

EAFP的一个潜在的问题是,它可以隐藏你的代码或你使用的第三方模块的某些其他部分有问题的事实,尤其是当exception频繁发生时(因此不是真正的“例外”情况在所有)。

只有当你尝试传递int() None (这是唯一的NoneType值,就我所知)而言, TypeError才会出现。 我想说,你的真正目标不应该是将NoneType转换为int或str ,而是要弄清楚为什么你得到的是None而不是像预期的那样,并且修正它或者正确地处理None 。

我已经成功地使用int(x或0)来处理这种types的错误,只要在逻辑中None应该等于0即可。 请注意,在xtesting返回False的情况下,这也将parsing为0。 例如空的列表,集合,字典或零长度的string。 对不起,Kindall已经给出了这个答案。

如果忘记从函数中返回一个值,就会发生这种情况:然后返回None。 查看分配给该variables的所有地方,并查看其中的一个是否是函数调用,其中函数没有返回语句。

我有使用python电子邮件function相同的问题。 下面是我试图将电子邮件主题检索到一个variables的代码。 这适用于大多数电子邮件和variables填充。 如果您收到来自雅虎等的电子邮件,并且发件人没有填写主题行,雅虎不会在电子邮件中创build主题行,并且您将获得从该函数返回的NoneType。 Martineau和Soviut一样提供了正确的答案。 国际海事组织(IMO Soviut)的答案从编程的angular度来看更为简洁。 不一定是从Python的一个。 这里是一些代码来显示技术:

import sys, email, email.Utils afile = open(sys.argv[1], 'r') m = email.message_from_file(afile) subject = m["subject"] # Soviut's Concise test for unset variable. if subject is None: subject = "[NO SUBJECT]" # Alternative way to test for No Subject created in email (Thanks for NoneThing Yahoo!) try: if len(subject) == 0: subject = "[NO SUBJECT]" except TypeError: subject = "[NO SUBJECT]" print subject afile.close()

在尝试执行任何计算之前,您应该检查以确保该值不是“无”

my_value = None if my_value is not None: print int(my_value) / 2

注意: my_value被故意设置为None来certificate代码有效,并且正在执行检查。

python nonetype转换str_如何将Nonetype转换为int或string?相关推荐

  1. python nonetype转换str_如何将Nonetype转换为int或字符串?

    如何将Nonetype转换为int或字符串? 我有一个Nonetype值x,它通常是一个数字,但可以是None.我想将其除以一个数字,但是Python会引发: TypeError: int() arg ...

  2. python整数转换字符串_Python | 将字符串转换为整数列表

    python整数转换字符串 Given a string with digits and we have to convert the string to its equivalent list of ...

  3. python 文件格式转换_python实现txt文件格式转换为arff格式

    本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体内容如下 将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的. 文件要求第一 ...

  4. python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例

    本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...

  5. python字母转换视频_python将视频转换为全字符视频

    简介 如何简单的使用python来实现将一部视频转换为字符画视频的效果. 其实,大家都知道视频就是一帧一帧的图片构成的. 那么如今我们想要实现,将视频转换为字符视频,那么是不是可以认为只要将一部视频全 ...

  6. python罗马数字转换阿拉伯数字_Python将阿拉伯数字转换为罗马数字的方法

    本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法.分享给大家供大家参考.具体实现方法如下: def numToRomanNum(Num): """digital ...

  7. 将Python字符串转换为Int,将Int转换为String

    In this tutorial, we will learn how to convert python String to int and int to String in python. In ...

  8. byte转换为string乱码_Python如何将String转换为int ?

    在Python中,我们可以使用int()将String转换为int. # String num1 = "88"  # 'str'> print(type(num1))  #  ...

  9. python nonetype转换float_python数据类型的强制转换

    数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. Number类型的数据转换 强制转换为int 可以转换的数据类型 int 整型 float 浮点型 boo ...

最新文章

  1. 百度增长复苏,市值一夜涨160亿;李彦宏:技术价值再度闪耀,宁可创新冒险也不平庸保守...
  2. SpringBoot配置图片虚拟映射
  3. 1327集群_MPT1327集群通讯系统
  4. MTK eCos系统的有线驱动收包流程
  5. thinkphp 框架两种模式 两种模式:开发调试模式、线上生产模式
  6. Nvivo 自动编码语言包
  7. ks检验正态分布结果_正态分布检验的那些方法
  8. 南京审计大学计算机考研专业课答案
  9. ubuntu18.04安装Qt5.9.9后没有QtCreator启动图标
  10. udec采场开挖教程_UDEC_数值模拟(入门学习)
  11. SpringSecurity: 不能混用authorizeRequests和6.0里的authorizeHttpReuests
  12. C - C语言实验——一元二次方程Ⅰ
  13. 怎样用计算机做初中物理实验,初中物理实验软件
  14. 程序员年龄大了真的会被时代淘汰?
  15. Flowable入门系列文章90 - 一般可流动的REST原则 01
  16. 亚信安全防毒墙网络版客户端的退出与卸载
  17. [转]2004手机游戏年终点评
  18. 深度学习在基因组学与机器学习在生物医学应用
  19. 优劣解距离法Topsis模型
  20. Win7下查看端口进程

热门文章

  1. 机器学习预测价格低点_使用机器学习技术预测机票价格
  2. 怎样快速把jpg图片转换成word文档?
  3. 视频截帧大概率避免连续重复图片
  4. Hive的简介及安装
  5. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据
  6. 年度最佳Android系统 | 运行在台式机、笔记本手提电脑的安卓Android系统
  7. 花生壳微信公众号开发配置
  8. 【在线商城系统】数据来源-爬虫篇
  9. 排序之partion函数
  10. centos配置nginx