算法题Python常用内置函数、方法、技巧汇总(其四:数字)

文章目录

  • 数字相关操作
    • 整除与求余
    • 取整
    • 无穷大
    • 进制转换
  • 华为OD算法/大厂面试高频题算法练习冲刺训练

数字相关操作

整除与求余

一般而言,我们使用整除运算//和求余运算%来计算两个整数相除的商和余数

div = 10 // 4
mod = 10 % 4

如果想要同时得到商和余数,可以直接使用内置函数divmod()来完成。

div, mod = divmod(10, 4)

取整

取整操作分为向上取整向下取整两种,这两个操作可以用python中的math内置库的ceil()函数和floor()函数来实现。ceilfloor的意思分别是天花板和地板,非常形象。

from math import ceil, floorprint(ceil(1.5))    # 得到2
print(ceil(-1.5))   # 得到-1print(floor(1.5))   # 得到1
print(floor(-1.5))  # 得到-2

直接使用int(),也可以完成取整。对于正整数而言,int()是向下取整,对于负整数而言,int()是向上取整。即int()操作是一种向零截断的取整操作,或者说int()操作是对一个浮点数取其整数部分

print(int(1.5))    # 得到1
print(int(-1.5))   # 得到-1

注意取整后的值的数据类型是int而不是float

无穷大

某些题目在对变量进行初始化的时候,需要将其初始化为无穷大或者负无穷大,这可以用python中的math内置库的inf直接得到。

from math import infans = inf
res = -inf

注意inf的数据类型是float而不是int

进制转换

最常用的进制是十进制,除此之外常用的进制还有二进制、八进制、十六进制。python中有丰富的内置函数来帮助我们实现不同进制之间的转换。

  • 十进制转其他进制

内置函数bin()oct()hex()能够非常方便地将一个整数num转化为其对应的二进制、八进制、十六进制字符串。

num = 20# 20的二进制数是10100
# 输出0b10100,包含前缀"0b"
print(bin(num))
# 输出10100,用切片去除了前缀"0b"
print(bin(num)[2:])# 20的八进制数是24
# 输出0o24,包含前缀"0o"
print(oct(num))
# 输出24,用切片去除了前缀"0o"
print(oct(num)[2:])# 20的十六进制数是14
# 输出0x14,包含前缀"0x"
print(hex(num))
# 输出14,用切片去除了前缀"0x"
print(hex(num)[2:])

有几点需要注意:

  1. 转换后的数据类型是字符串而不是整数
  2. 字符串包含前缀"0b"/"0o"/"0x",表示是二/八/十六进制。
  3. 基于第二点,如果想要获得纯数字的转换,可以使用字符串的切片来实现效果。
  4. bin()oct()hex()分别是英文单词binary、octal、hexadecimal的缩写。

另外,在某些题目中,如OD真题【模拟】2023B-IPv4地址转换成整数 ,要求进制转换后的结果保持某一固定长度,这个可以用内置函数map()lambda匿名函数搭配来完成。

  • 其他进制转十进制

内置函数int()可以将一个字符串转化为一个十进制整数。

最常见的操作是将一个十进制字符串转化为十进制整数。

num_str = "100"# 得到十进制的整数num = 100
num = int(num_str)

实际上,int()函数可以传入参数base,表示需要转换的原字符串num_str是用哪种进制来表示的。

num_str = "100"# 得到从二进制数num_str转化的十进制数num_from_base2 = 4
num_from_base2 = int(num_str, base = 2)# 得到从八进制数num_str转化而来的十进制数num_from_base8 = 64
num_from_base8 = int(num_str, base = 8)# 得到从十六进制数num_str转化而来的十进制数num_from_base16 = 256
num_from_base16 = int(num_str, base = 16)# 得到从七进制数num_str转化而来的十进制数num_from_base7 = 49
num_from_base7 = int(num_str, base = 7)

注意虽然常用的进制是二、八、十六进制,但base传入其他数字也是可以的。譬如选择base = 7,表示将一个七进制数字符串,转化为一个十进制整数。


华为OD算法/大厂面试高频题算法练习冲刺训练

  • 华为OD算法/大厂面试高频题算法冲刺训练目前开始常态化报名!目前已服务100+同学成功上岸!

  • 课程讲师为全网50w+粉丝编程博主@吴师兄学算法 以及小红书头部编程博主@闭着眼睛学数理化

  • 每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!

  • 60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁

  • 可上全网独家的欧弟OJ系统练习华子OD、大厂真题

  • 可查看链接 大厂真题汇总 & OD真题汇总(持续更新)

  • 绿色聊天软件戳 od1336了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04-安装后Terminal无法调出

参考: Ubuntu20.04 终端打开不了的问题排查_ubuntu终端打不开-CSDN博客 https://blog.csdn.net/u010092716/article/details/130968032 Ubuntu修改locale从而修改语言环境_ubuntu locale-CSDN博客 https://blog.csdn.net/aa1209551258/article/details/81745394 问…

mac使用idea插件 java decomplier反编译jar包

安装插件 这样在本地idea的插件目录下就有 命令 #创建文件夹,用以存放反编译结果jar包 mkdir test#开始反编译文件 java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompil…

【深度学习-目标检测】05 - YOLOv1 论文学习与总结

论文地址:You Only Look Once:Unified, Real-Time Object Detection 论文学习 1. 摘要 YOLO的提出:作者提出了YOLO,这是一种新的目标检测方法。与传统的目标检测方法不同,YOLO将目标检测视为一个回归问题,直接从图像…

Django 访问前端页面一直在转异常:ReferenceError:axios is not defined

访问&#xff1a;http://127.0.0.1:8080/ my.html 一、异常&#xff1a; 二、原因 提示&#xff1a;axios找不到&#xff01;&#xff01; 查看代码<script src"https://unpkg.com/axios/dist/axios.min.js"></script>无法访问到官网 三、解决 Using j…

HTML转Word后打开默认为WEB板式改为页面视图

在html 标签后面添加 <html xmlns:vurn:schemas-microsoft-com:vmlxmlns:ourn:schemas-microsoft-com:office:officexmlns:wurn:schemas-microsoft-com:office:wordxmlns:mhttp://schemas.microsoft.com/office/2004/12/ommlxmlnshttp://www.w3.org/TR/REC-html40> 在…

【Python百宝箱】科技之翼:自动驾驶与无人机前沿技术盘点

驾云翱翔&#xff1a;自动驾驶与无人机技术全景解读 前言 在当今科技飞速发展的时代&#xff0c;自动驾驶和无人机技术正成为引领未来交通和探索领域的关键驱动力。本文将深入探讨与这两个领域密切相关的关键技术和开源工具&#xff0c;为读者提供全面的认识和了解。 【Pyth…

模型量化之AWQ和GPTQ

什么是模型量化 模型量化&#xff08;Model Quantization&#xff09;是一种通过减少模型参数表示的位数来降低模型计算和存储开销的技术。一般来说&#xff0c;模型参数在深度学习模型中以浮点数&#xff08;例如32位浮点数&#xff09;的形式存储&#xff0c;而模型量化可以…

爬虫工作量由小到大的思维转变---<第二十四章 Scrapy的`统计数据`收集stats collection ---12月26日补>

前言: 前两篇是讲的数据诊断分析,还有一篇深挖解决内存泄漏的文章,目前我还没整理汇编出来;但是,想到分析问题的时候,忽然觉得爬虫的数据统计好像也挺重要;于是,心血来潮准备来插一篇这个------让大家对日常scrapy爬的数据,做到心里有数!不必自己去搅破脑汁捣腾日志,敲计算器了…

【R语言爬虫】使用rvest包爬取豆瓣读书Top 250,仅需50行代码(速度挺快)

【R语言爬虫】使用rvest包爬取豆瓣读书Top 250&#xff0c;仅需50行代码&#xff08;速度挺快&#xff09; 爬取目标 书名&#xff0c;作者&#xff0c;出版社&#xff0c;时间&#xff0c;价格 https://book.douban.com/top250?start0 发现需要爬取的内容就在<div cla…

Xshell连接不上本地虚拟机中的linux处理

0、连接不上虚拟机的原因 1、本地电脑未启用VMware网络。 2、连接协议选择错误。 3、防火墙屏蔽IP。 4、虚拟机网络连接模式不是桥接模式。 1、查看本地是否启用VMware的网络 2、连接协议选择 我们在新建会话时&#xff0c;可选的协议有FTP和SFTP两种&#xff0c;其中FTP采用21…

软件测试题常见版

1、python深浅拷贝 浅拷贝&#xff0c;指的是重新分配一块内存&#xff0c;创建一个新的对象&#xff0c;但里面的元素是原对象中各个子对象的引用。深拷贝&#xff0c;是指重新分配一块内存&#xff0c;创建一个新的对象&#xff0c;并且将原对象中的元素&#xff0c;以递归的…

高效资源分配:用CRM系统打造更优销售策略

CRM系统在销售团队中有着重要的应用&#xff0c;但很多销售人员可能对CRM系统存在一些负面的看法&#xff0c;认为它只是一种监管工具&#xff0c;操作空间单调枯燥。那么&#xff0c;如何让销售团队爱上CRM系统呢&#xff1f; 下面我们将分享几个方法&#xff0c;帮助销售经理…

Spring Boot国际化i18n配置指南

Spring Boot国际化i18n配置指南 一、配置 1、yml文件配置 spring:messages:basename: i18n/Messages,i18n/Messages_en_US,i18n/Messages_zh_CNencoding: UTF-8i18n&#xff1a;表示国际化文件的父目录 Messages&#xff1a;默认国际化文件 Messages_en_US&#xff1a;英文文…

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一&#xff1a;没有添加 自动转化的配置&#xff0c;且domain中的属性名称和数据库的字段名称一致测试二&#xff1a;没有添加自动转化配置i&#xff0c;domain属性名userPassword和数据…

装饰模式(单一责任)

Decorator&#xff08;装饰模式&#xff1a;单一责任模式&#xff09; 链接&#xff1a;装饰模式实例代码 解析 目的 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”&#xff0c;由于继承为类型引入的静态特质&#xff0c;使得这种扩展方式缺乏灵活性&#xff…

<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录 TCP的通信机制的核心特性 四、滑动窗口 1&#xff09;什么是滑动窗口&#xff1f; 2&#xff09;滑动窗口的作用是什么&#xff1f; 3&#xff09;批量传输出现丢包如何处理&#xff1f; 1> 接收端ACK丢包 2> 发送端数据包丢包 4&#xff09;适用性 TCP的通…

【EasyExcel】使用技巧

文章目录 前言一、使excel中的公式生效二、待更新1.待更新 总结 前言 【EasyExcel】的使用技巧&#xff0c;随时间推移进行更新&#xff1a; 2023-12-26——【使excel中的公式生效】 提示&#xff1a;以下是本篇文章正文内容 一、使excel中的公式生效 ExcelWriter excelWrite…

为什么深度学习神经网络可以学习任何东西

下图你所看到的&#xff0c;是著名的曼德尔布罗特集&#xff0c;我们可以见证这个集合呈现出的复杂形态&#xff1a; 要理解神经网络如何学习曼德尔布罗特集&#xff0c;我们首先需要从最基础的数学概念讲起&#xff1a;什么是函数&#xff1f;函数本质上是一个将输入转化为输出…

机器学习---adaboost二分类、回归

1. adaboost二分类 import numpy as np import matplotlib.pyplot as pltfrom sklearn.ensemble import AdaBoostClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import make_gaussian_quantiles# 几个关键参数有n_samples&#xff08;生…

Python list列表中每一个数字乘于2的两种多功能函数代码设计

Python list列表中每一个数字乘于2或一个数字 要让Python中list列表中的每一个数字乘于2&#xff0c;可以有两种方法&#xff0c;一是使用列表推导式来完成&#xff0c;另一种是使用map()函数来完成。下面将通过实例代码来之一进行介绍。 列表推导式法 为了让列表推导式的代…