Python中除法使用的注意事项
作者:shichen2014 发布时间:2021-11-07 07:18:17
标签:Python,除法,注意事项
本文实例讲解了Python中除法使用的注意事项,是非常重要的技巧,对于Python程序设计来说有很好的借鉴价值。具体分析如下:
现来看如下示例:
def avg(first, *rest):
return (first + sum(rest)) / (1 + len(rest))
# Sample use
avg(1, 2) # 1.5
avg(1, 2, 3, 4) # 2.5
源程序只是为了演示变长参数的使用,不过 Python 2.7.1 的解释器里,我得到的结果却和注释的结果不一样
>>> def avg(first, *rest):
... return (first + sum(rest)) / (1 + len(rest))
...
>>> avg(1, 2)
1
>>> avg(1, 2, 3, 4)
2
可以很明显的看到,小数点后的数据被截断了,我记得两个整数相除,"//" 应该才是取整,难道我记错了?
>>> def avg(first, *rest):
... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//'
...
>>> avg(1, 2)
1
>>> avg(1, 2, 3, 4)
2
将 “/” 改成了“//”,得到的结果是一样的,“//”的确是取整这一点我是没记错,不过为什么“/”的结果也是截断了的?
同样的程序我在 3.4.1 的解释器里面做了测试,得到了预想的结果:
>>> def avg(first, *rest):
... return (first + sum(rest)) / (1 + len(rest))
...
>>> avg(1, 2)
1.5
>>> avg(1, 2, 3, 4)
2.5
>>> def avg(first, *rest):
... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//'
...
>>> avg(1, 2)
1
>>> avg(1, 2, 3, 4)
2
可以看到在 3.4.1 的解释器里,“/”的结果保留了小数位,而“//”则是取整后的结果
搜索之后,找到了stackoverflow上的这个问题:Python里如何强制除法的结果为浮点数? 注意这个是针对 2.x 的版本,3.x 里面并不存在这样的问题
答案的前两个解决方案,都很不错:
方法1:
>>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663
方法2:
类似于C语言里面的做法:
c = a / float(b)
相信本文所述实例会对大家的Python程序设计有一定的帮助。


猜你喜欢
- 【导语】:对自己写的冗长代码,想重构但又无思路?小编整理了系列介绍python代码重构优化的方法,助你一臂之力。编写干净的 Pythonic
- 介绍我们可以通过for循环来迭代list、tuple、dict、set、字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出
- MySQL 表别名(Alias)SQL 表别名在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语
- Flask Web开发实战学习笔记Flask简介Flask是使用Python编写的Web微框架。Web框架可以让我们不用关 心底层的请求响应
- 本教程配置好后一劳永逸,不用再配置,每次只需要选择 Python 解释器即可打开KBEngine的服务器项目文件夹(资产目录)其主要工程目录
- 1.Python虚拟环境创建首先我们为什么要创建虚拟环境呢?因为不同的项目所依赖的环境不一样,他们需要不同的第三方库等等。为了避免冲突,所以
- <%dim total(7,1) total(1,0)="中国经营报"
- 本文实例为大家分享了vue实现拖拽交换位置的具体代码,供大家参考,具体内容如下<template> <div
- <?php date_default_timezone_set("PRC"); $host = stripslas
- Q&AQ: .js和.min.js文件分别是什么?A: .js是JavaScript 源码文件, .min.js是压缩版的js文件。
- 1、问题:安装VSCode后打开,发现显示的语言为英文,想显示为中文?2、解决方法:2.1、快捷键CTRL+SHIFT+P,找到如下设置Co
- 引言昨天把系分的项目又加了一点逻辑判断,比如已经下单的菜品不能减少,不能重复下单,应该先下单再支付等…弄完购物车的逻辑之后,发现一直没有管备
- 本文实例为大家分享了vue-Split实现面板分割的具体代码,供大家参考,具体内容如下<template> <
- 1.安装插件步骤2.点击OK确认之后,提示IDE需要重启,选择重启:3.设置leetcode插件,用户名、密码:4.点击右下角的leetco
- 导言Python官方文档对于内置函数的介绍较为简略,但这些内置函数在日常工作中却扮演着不可或缺的角色。为了更加便捷地使用和查阅这些函数,笔者
- 前言汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,
- 首先,运行 Python 解释器,导入 re 模块并编译一个 RE:#!python Python 2.2.2 (#1, Feb 10 20
- 第一种方法:第一步:先看报错窗口2003 can't connect to MySQL server on '127.0.0
- 以一种有意义的方式组织数据可能是一项挑战。有时你需要的可能是一个简单的排序,但是通常你需要做更多,你需要分组来进行分析和统计。幸运的是,SQ
- 1 背景&概述因某些需求,需要安装 TensorFlow ,很自然地在终端敲下了以下命令:pip install tensorflo