当前位置: 首页 > 面试题库 >

Python 3中的除法结果与Python 2中的除法结果不同

孔运珧
2023-03-14
问题内容

在下面的代码中,我想计算序列中G和C字符的百分比。在Python 3中我可以正确获取0.5,但是在Python 2中我可以获取0。为什么结果不同?

def gc_content(base_seq):
    """Return the percentage of G and C characters in base_seq"""
    seq = base_seq.upper()
    return (seq.count('G') + seq.count('C')) / len(seq)

gc_content('attacgcg')

问题答案:

/是Python 3中的另一个运算符;在Python 2中,/当将其应用于2个整数操作数时会更改行为,并返回下限除法的结果:

>>> 3/2   # two integer operands
1
>>> 3/2.0 # one operand is not an integer, float division is used
1.5

加:

from __future__ import division

代码的顶部以/在Python 2中使用浮点除法,或用于//强制Python 3使用整数除法:

>>> from __future__ import division
>>> 3/2    # even when using integers, true division is used
1.5
>>> 3//2.0 # explicit floor division
1.0

使用这些技术中的任何一种均可在Python 2.2或更高版本中使用。有关更改原因的详细信息,请参阅PEP
238



 类似资料:
  • 本文向大家介绍Python2和Python3中print的用法示例总结,包括了Python2和Python3中print的用法示例总结的使用技巧和注意事项,需要的朋友参考一下 前言 最近在学习python,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在python3中为了填补python2的各种坑,将

  • 问题内容: 5年前关闭。 我必须将两个整数相除并得到一个浮点数作为我的代码: 我用调试器检查值 为什么结果为0.0?我应该怎么做才能获得正确的浮动? 问题答案: 当您将两个数相除时,将执行整数除法,在这种情况下,将导致22/64 =0。只有完成此操作后,您才能创建一个。和的表示是。如果要执行浮点除法,则应 在 除法 之前进行 强制转换:

  • 问题内容: 因此,我有一些代码可以通过将“理想”屏幕的大小除以用户屏幕的大小来将图形缩放到用户屏幕的大小。她是我在做什么的代码片段: 现在,如果我在计算机上(屏幕分辨率为1440x900的Mac Book pro)运行此程序,结果是“ scaleFactorWidth”设置为2.0,而“ scaleFactorHeight”设置为2.0,这是预期的,因为我的屏幕正好是一半目标的大小。但是,如果在具

  • 我试图理解多项式除法(并实现多项式除法的函数)。 CRC calulcator表示校验和为,而正式计算器表示二进制余数为=。 为什么我没有得到同样的结果?

  • 问题内容: 我在不返回任何值时遇到问题。数据库中有符合此条件的帐户。有些困惑为什么他们不被退回。有什么建议? 问题答案: 不要使用。从语义上讲,这是违反直觉的。如果子查询中的 任何 值为,则不返回任何行。 使用代替; 或使用和:

  • 本文向大家介绍python2 与python3的print区别小结,包括了python2 与python3的print区别小结的使用技巧和注意事项,需要的朋友参考一下 在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异 主要体现在以下几个方面: 1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构