python模型预测结果 取整_一日一技:Python里面的//并不是做了除法以后取整

一日一技:Python里面的//并不是做了除法以后取整

在Python 3里面,我们做除法的时候会遇到 a/b 和 a//b两种写法:

>>> 10 / 3

3.3333333333333335

>>> 10 // 3

>>> 3

于是可能有人会认为, a//b相当于 int(a/b)。

但如果再进一步测试,你会发现:

>>> int(-10/3)

-3

>>> -10 // 3

>>> -4

看到这里,可能有人意识到, //似乎是向下取整的意思,例如 -3.33向下取整是 -4。

那么我们再试一试向下取整:

>>> import math

>>> math.floor(-10/3)

-4

>>> -10//3

-4

看起来已经是这么一回事了。但是如果你把其中一个数字换成浮点数,就会发现事情并没有这么简单:

import math

>>> math.floor(-10/3.0)

-4

>>> -10//3.0

-4.0

当有一个数为浮点数的时候, //的结果也是浮点数,但是 math.floor的结果是整数。

这个原因可以参看Python PEP-238的规范:ttps://www.python.org/dev/peps/pep-0238/#semantics-of-floor-division

except that the result type will be the common type into which a and b are coerced before the operation. Specifically, if a and b are of the same type, a//b will be of that type too. If the inputs are of different types, they are first coerced to a common type using the same rules used for all other arithmetic operators.

结果的类型将会是 a和 b的公共类型。如果 a是整数, b是浮点数,那么首先他们会被转换为公共类型,也就是浮点数(因为整数转成浮点数不过是末尾加上 .0,不会丢失信息,但是浮点数转换为整数,可能会把小数部分丢失。所以整数何浮点数的公共类型为浮点数),然后两个浮点数做 //以后的结果还是浮点数。

kingname

攒钱给产品经理买房。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个命令有几个错误: 1. `-p` 选项应该放在 `docker run` 命令的最后面,因为它用来映射端口。 2. `-v` 选项后面的挂载路径应该是这样的: `-v /opt/python3.6/demo/aMedicalBot_demo_quesoar:/app` 3. 在这个命令里面使用了一个多余的 `/bin/bash`,这个参数是在你想要在容器里面执行一个 shell 命令的时候用的, 但在这里似乎没有什么必要。 正确的命令应该是这样的: ``` docker run -itd --name aMedicalBot -p 5005:5005 -v /opt/python3.6/demo/aMedicalBot_demo_quesoar:/app python:3.8-buster ``` 如果你想要在容器里面执行命令你需要在run 后面加上你需要执行的命令,如下面这样: ``` docker run -itd --name aMedicalBot -p 5005:5005 -v /opt/python3.6/demo/aMedicalBot_demo_quesoar:/app python:3.8-buster /bin/bash ``` ### 回答2: 在这个命令中,有一个语法错误。正确的命令应该是使用-d参数后紧随镜像名称,并且使用--name参数后指定容器名称,然后才是其他的选项参数。 正确的docker命令是: ``` docker run -itd --name aMedicalBot -p 5005:5005 -v /opt/python3.6/demo/aMedicalBot_demo_quesoar:/app python:3.8-buster /bin/bash ``` 修正后的命令将会创建一个名为"aMedicalBot"的容器,使用"python:3.8-buster"镜像,并设置端口映射(将主机的5005端口映射到容器的5005端口),同时将主机路径"/opt/python3.6/demo/aMedicalBot_demo_quesoar"挂载到容器内的"/app"路径下。最后,容器将以交互模式运行并启动"/bin/bash"。 ### 回答3: 原始的docker run命令的语法存在一些错误。正确的命令应该是: docker run -itd --name aMedicalBot -p 5005:5005 -v /opt/python3.6/demo/aMedicalBot_demo_quesoar:/app python:3.8-buster /bin/bash 以下是对命令中的错误进行更正的解释: 1. -p 参数应该位于容器名称(aMedicalBot)和镜像名称(python:3.8-buster)之间。 2. -v 参数与容器名称(aMedicalBot)和镜像名称(python:3.8-buster)之间应该没有空格。 3. 镜像名称(python:3.8-buster)应该紧随 -v 参数之后。 4. 将 /bin/bash 移到镜像名称(python:3.8-buster)之后。 正确的命令将会将容器命名为aMedicalBot,并在主机的端口5005上将主机的/opt/python3.6/demo/aMedicalBot_demo_quesoar目录挂载到容器的/app目录中。容器将使用python:3.8-buster镜像,并在后台运行/bin/bash作为启动命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值