相关疑难解决方法(0)

我如何强制划分为浮点?分部继续向下舍入到0?

我有两个整数值ab,但我需要他们的浮点比例.我知道a < b并且我想要计算a / b,所以如果我使用整数除法,我将总是得到0,余数为a.

我如何c在Python中强制成为Python中的浮点数?

c = a / b
Run Code Online (Sandbox Code Playgroud)

python floating-point integer division python-2.x

703
推荐指数
9
解决办法
63万
查看次数

Python是强类型的吗?

我遇到过一些链接,说Python是一种强类型语言.

但是,我认为在强类型语言中你不能这样做:

bob = 1
bob = "bob"
Run Code Online (Sandbox Code Playgroud)

我认为强类型语言在运行时不接受类型更改.也许我对强/弱类型的定义错误(或过于简单).

那么,Python是一种强类型还是弱类型的语言?

python weak-typing strong-typing

219
推荐指数
8
解决办法
11万
查看次数

为什么Python没有签名功能?

我无法理解为什么Python没有sign函数.它有一个abs内置(我认为sign是它的妹妹),但没有sign.

在python 2.6中甚至有一个copysign函数(在数学中),但没有符号.copysign(x,y)当你只能写一个sign然后copysign直接从中获取时,为什么还要写一个abs(x) * sign(y)?后者会更加清晰:x带有y的符号,而对于copysign,你必须记住它的x是否带有y或y的符号,带有x的符号!

显然sign(x)不提供任何东西cmp(x,0),但它也会更具可读性(对于像python这样的高可读性语言,这本来是一个很大的优点).

如果我是一名蟒蛇设计师,那我就是另一种方式:没有cmp内置,而是一个sign.当你需要时cmp(x,y),你可以做一个sign(x-y)(或者,甚至更好的非数字的东西,只是一个x> y - 当然这应该需要sorted接受一个布尔而不是一个整数比较器).这也将更加清晰:正时x>y(而与cmp你必须记住公约正值当第一个,但它可能是周围的其他方式).当然cmp,由于其他原因(例如,在排序非数字事物时,或者如果您希望排序稳定,这是不可能使用简单的布尔值)

所以,问题是:为什么Python设计师决定将该sign功能从语言中删除?为什么麻烦copysign而不是它的父母sign呢?

我错过了什么吗?

编辑 - 在彼得汉森评论之后.很公平,你没有使用它,但你没有说你使用python的.在我使用蟒蛇的7年中,我无数次需要它,最后一根是打破骆驼背部的稻草!

是的,你可以通过cmp,但是我需要通过它的90%的时间都是这样的成语,就像 lambda x,y: cmp(score(x),score(y))用标志就好了.

最后,我希望你同意这sign会比这更有用copysign,所以即使我买了你的观点,为什么还要在数学中定义它而不是标志呢?copysign如何比签名更有用?

python language-design

217
推荐指数
10
解决办法
12万
查看次数

Python 3.x舍入行为

我刚刚重新阅读Python 3.0中的新功能,它指出:

round()函数舍入策略和返回类型已更改.确切的中途情况现在四舍五入到最接近的偶数结果而不是零.(例如,round(2.5)现在返回2而不是3.)

圆形文件:

对于支持round()的内置类型,值被舍入到10的最接近的倍数到幂减去n; 如果两个倍数相等,则向均匀选择进行舍入

所以,在v2.7.3下:

In [85]: round(2.5)
Out[85]: 3.0

In [86]: round(3.5)
Out[86]: 4.0
Run Code Online (Sandbox Code Playgroud)

正如我所料.但是,现在在v3.2.3下:

In [32]: round(2.5)
Out[32]: 2

In [33]: round(3.5)
Out[33]: 4
Run Code Online (Sandbox Code Playgroud)

这似乎是违反直觉的,与我对四舍五入的理解相反(并且必然会绊倒人).英语不是我的母语,但在我读到这篇文章之前,我以为我知道舍入的含义是什么: - /我确信在引入v3的时候一定有一些关于这个的讨论,但是我无法找到一个很好的理由我的搜索.

  1. 有没有人能够深入了解为什么会改变这种情况?
  2. 有没有其他主流编程语言(例如,C,C++,Java,Perl, ..)这样做(对我不一致)舍入?

我在这里错过了什么?

更新:@ Li-aungYip的评论"银行家的舍入"给了我正确的搜索词/搜索关键字,我发现了这个问题:为什么.NET使用银行家的舍入作为默认值?所以我会仔细阅读.

python rounding python-3.x

157
推荐指数
5
解决办法
5万
查看次数

如何在整数运算中执行上限除法?

它基本上返回了box_needed.1个盒子可以包含10个项目.因此,如果用户键入的项目为102,则代码应返回11个框.

如果存在非零余数,是否有办法将该轮向上划分?

python rounding integer-arithmetic

8
推荐指数
2
解决办法
8900
查看次数

如何循环浮动0.5到1.0,同时仍然四舍五入到0.45到0.0,正如通常的学校四舍五入?

出现默认Python round(1 / 2)给出0.

如何循环浮动0.5到1.0,同时仍然四舍五入到0.45到0.0,正如通常的学校四舍五入?

注意:很抱歉删除并再次发布此内容,但它被错误地标记为另一个问题的副本.

python floating-point rounding python-3.x

4
推荐指数
2
解决办法
5987
查看次数

将浮点数舍入到Python中的下一个整数的最简单方法是什么?

我一直在为一个项目编写一个程序,并尝试使用round()函数将浮点变量舍入到下一个整数.在这个程序的情况下,它计算绘制一定量的平方英尺需要多少油漆(加仑).练习假设油漆只有整加仑,所以我的计算需要将所有加仑的分数计算到下一整加仑.

有什么想法吗?

谢谢,

斯科特

python

1
推荐指数
1
解决办法
523
查看次数