首页 > 编程语言 >python基础语法02

python基础语法02

时间:2024-08-18 20:53:49浏览次数:9  
标签:02 1.74 decimal python 浮点数 语法 1.73 print round




(不全,只是记录自己暂时不知道的一些内容)



1.运算符号


print(10*3)
print(10**3)  # 10的3次方
print(10/3)
print(10//3)  # 取商
print(10 % 3)  # 取余


  • round()函数的四舍五入规则是基于银行家舍入法(Bankers’ rounding),也称为偶数舍入。如果要舍弃的数字是5,而前面的数字是偶数,则舍入到最接近的偶数。如果前面的数字是奇数,则向上舍入到最接近的偶数。

  • 对于负数,round()函数采用的是“远离零的方向舍入”(round away from zero)的方式


print(round(2.5))  # 2
print(round(3.5))  # 4
print(round(-2.5))  # -2
print(round(-3.5))  # -4
# 保留两位小数
print(round(1.7269, 2))  # 1.73
print(round(1.7259, 2))  # 1.73
print(round(1.7359, 2))  # 1.74
print(round(1.7249, 2))  # 1.72
print(round(1.7239, 2))  # 1.72
print(round(1.7349, 2))  # 1.73 为什么不是1.74呢
'''
答:‌print(round(1.7349, 2)) 的结果不是1.74,而是1.73。
‌这是因为Python的round函数在处理浮点数时,采用的是标准的四舍五入规则,
但在实际应用中,浮点数的精度问题会导致四舍五入的结果与预期有所差异。
具体来说,浮点数的精度问题使得1.7349在计算机内部的表示可能略小于实际值,
导致在进行四舍五入时,根据标准的四舍五入规则,应该舍去的是小数点后第三位数字3,
因此结果为1.73而不是1.74。

这种精度问题在计算机科学和数学中是一个普遍存在的问题,
因为浮点数在计算机内部的表示是近似的,而不是精确的。
尽管现代计算机和编程语言已经做了很多优化来减少这种误差,
但在某些情况下,尤其是涉及到金融计算或需要高精度的领域,
这种误差可能会成为问题。因此,对于需要高精度计算的场景,
可能需要使用特定的数据类型或库来处理浮点数,以确保计算的准确性‌
'''

解决办法:

使用decimal()函数,专门用于高精度的浮点运算

import decimal

print(round(1.535, 2))  # 1.53
print(round(decimal.Decimal('1.535'), 2))  # 1.54
print(round(decimal.Decimal('1.5346'), 2))  # 1.53

print(round(1.7349, 2))  # 1.73
print(round(decimal.Decimal('1.7349'), 2))  # 还是1.73 为什么不是1.74呢???这里还是没搞明白
print(round(decimal.Decimal('1.735'), 2))  # 1.74


import math

print(abs(-2.9))  # 2.9 可以是整数,浮点数,复数
print(math.fabs(2.9))  # 2.9 math.fabs(x)方法也是返回x的绝对值,但是返回的是浮点型的值。
print(math.ceil(2.2))  # 3 向上取整

x = input("x:")  # input函数输入的是字符串
y = int(x)+1  # 这里需要强制转换
print(y)




2.截取[]的注意点和易错点

















标签:02,1.74,decimal,python,浮点数,语法,1.73,print,round
From: https://www.cnblogs.com/kakafa/p/18366069

相关文章

  • 学习笔记 韩顺平 零基础30天学会Java(2024.8.14)
    P500集合体系图     单列集合是指自己只有一个值,双列集合是像键值对这样的P501Collection方法     对于第三点,像Set这样的,存放进去的和取出来的顺序可能不是一样的,所以就叫无序的P502迭代器遍历在调用iterator.next()方法之前必须要调用iterator.ha......
  • 代码随想录算法训练营第10天|栈与队列part02
    150.逆波兰表达式求值本题不难,但第一次做的话,会很难想到,所以先看视频,了解思路再去做题classSolution{public:intevalRPN(vector<string>&tokens){stack<longlong>st;for(conststring&token:tokens){if(token=="+......
  • [Python学习日记-8] 读取用户指令和格式化输出
    简介    平常我们在网上冲浪是经常会遇到需要我们输入数据,然后来进行交互的,而我们本篇要说的读取用户指令就是在命令行当中程序和用户进行交互的一种方法,表现形式就像使用shell登录linux时需要你输入用户名和密码然后回车确认的那种形式。而在输入前一定是需要说......
  • AIGC时代算法工程师的面试秘籍(第二十式2024.8.5-8.18) |【三年面试五年模拟】
    写在前面【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习......
  • 科大讯飞飞凡计划面经(2024年秋招新出炉)
    7月笔完一个多月约的面试—————————————-一面8.16不问项目,上来就是八股轰炸c++11新特性shared_ptr是线程安全的吗,不安全的话怎么实现线程安全的stl容器中频繁查找用什么,频繁增删用什么vector中间插入元素会发生什么,如果插入1000w个,怎么样加速c++线程怎么创......
  • 关于解决Qt配置clang format插件后打开Qt时报缺少pythonxxx.dll的问题
    前言原本安装过程中没有出现任何问题,但是当我退出Qt,再次打开Qt时报虽然也不影响正常编程,但是架不住每次打开它都提示,于是准备探究下这个问题,并将其解决掉第一步:在官网下载:clangformat,我下载的是这个第二步:安装LLVM,安装时选择为所有用户添加环境变量,然后全程一步就......
  • 诗|随想——202311-12月的一些絮絮叨叨
    诗|随想——202311-12月的一些絮絮叨叨20231122随想01茫然随想02平和20231122随想03活着随想04爱随想05呓语20231123随想06失去随想07朦胧随想08成长随想09爱你20231124随想10掌控随想11秘密随想12我记得20231125随想13你我随想14祈盼随想15生命......
  • P10238 [yLCPC2024] F. PANDORA PARADOXXX
    这里主要是了解一下套路,首先说一下树的直径的性质。1.任何一个点到它所在的联通块中距离最远的点一定是树的直径两点之一。2.两个连通块合并以后,新的树的直径一定为原先两个连通块中树的直径中的两个。了解完这个,我们来看这道题,根据树的直径的性质,我们可以来维护连通块,那一个......
  • python入门篇-day06-文件操作
    文件操作文件操作概述概述:​我们所熟知的操作系统,例如:Windows,MacOS,Linux都是文件操作系统,它们都是通过文件来管理数据的.文件的基本操作步骤:​1.打开文件.2.读取数据或者写入数据或者追加数据.3.关闭文件.文件操作涉及到的函数:open(文件......
  • Java基础语法学习笔记
    1.注释:在程序中用于解释说明的文字,不影响程序执行使用快捷键也可以进行注释2.字面量:数据在程序中的书写格式,字面量可以理解为值特殊的字符:\n,\t3.变量:变量是用来记住程序要处理的数据。(其实可以理解为一个装数据的盒子)(1)定义格式:数据类型变量名称=数据(2)变量......