python奇数和_请问python如何判断奇偶数?
odd 代表奇数, even 代表偶数, 下面代码全部使用is_odd, 判断输入的值是不是奇数, 是奇数返回True, 否则返回False
最常用的办法就是直接取模判断:
def is_odd(n):
# 余数是 1 就是奇数, 否则是偶数
return n % 2 == 1
当然也可以用位运算, 这里需要知道的是, 一个十进制表示的数字如果是奇数的话, 在二进制下最后一位一定是 1, 否则最后一位是 0, 举个例子, 3 在二进制里面是0011, 4 在二进制里是0100
所以可以用与门(&), 然后和 1 比较:
def is_odd(n):
# 比如 4 & 1 (0100 & 0001) => 0
return bool(n & 1)
也可以用异或门(^), 这个运算符的比较方法是两个二进制数字某个位不同时返回 1, 否则返回 0. 所以比较有意思的地方就是二进制(0 或 1)下的一个数字x, 和 0 进行异或门运算一定返回x, 和 1 进行异或门运算一定返回的是本身取反!x. 所以我们可以直接拿一个数和 1 进行异或门运算, 前面一定不变, 就看最后一位, 偶数就是从 0 变成 1, 整体数字就是加一, 奇数就是从 1 变成 0, 整体数字就是减一:
def is_odd(n):
# 比如 3 & 1 (0011 & 0001) => 0010
return n ^ 1 == n - 1
还可以用位运算符, >>右移运算符和<<左移运算符, 和 1 进行操作, 右移相当于除以 2 取商(或者叫向下取整) , 左移就是乘以 2, 这里不展开
def is_odd(n):
# 比如 (5 >> 2) << 2 => 4, 所以用原来的数减去结果要么是 1 要么是 0
return bool(n - ((n >> 1) << 1))
或者用一些奇淫技巧, 比如下面这种:
def is_odd(n):
# 奇数返回 -1, 偶数返回 1
return (-1)**n == -1
总之方法一堆...但是第一个取模应该最常用吧, 后面几个知道理解就行, 平时还是少些那种代码...
python奇数和_请问python如何判断奇偶数?相关推荐
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- 【青少年编程】【三级】判断奇偶数
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...
- 1119: 零起点学算法26——判断奇偶数
1119: 零起点学算法26--判断奇偶数 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lld Submitted: 2419 ...
- 【电子学会】2019年12月图形化三级 -- 判断奇偶数
判断奇偶数 1. 准备工作 (1)导入角色Cat Flying.Apple.Bananas: (2)保留白色背景. 2. 功能实现 (1)点击绿旗,Cat Flying询问"请输入一个正整数 ...
- linux c判断奇偶数据,c语言怎么判断奇偶数
c语言怎么判断奇偶数? 第一步:首先先打开我们的DEV C++软件,然后点击"新建源代码". 推荐:<C语言教程> 第二步:在我们的编辑页面输入以下代码:#includ ...
- python希腊字母字符串_#10 Python字符串
前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...
- python deepcopy函数_用Python解数独[6]:递归获得最终答案
目录 用Python解数独[0] 用Python解数独[1]:求每个单元格的行值域 用Python解数独[2]:求列值域和九宫格值域 用Python解数独[3]:求总值域 用Python解数独[4]: ...
- python集群_使用Python集群文档
python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...
最新文章
- HDU4008 Parent and son [树形DP]
- linux printf 刷新,linux下printf中\n刷新缓冲区的疑问(已解决)
- Tomcat应用部署:打war包、在Tomcat中注册用户角色、创建虚拟目录和域名
- STM32F103_IWDG独立看门狗
- python基础其他(二十一)
- IBM大力抢占网络宣传阵地,拿下百度“SOA”关键字的第一位
- 客户说发货慢怎么回复_给客户发完报价没回复,怎么办?
- 虚拟机无法安装VMware Tools
- 「数字电子技术基础」6.触发器
- AUFN Carplay盒子固件级视频及图文教程!
- 项目管理技术和工具TT
- JavaSE学习笔记-0225-ArrayList+案例
- Python实现支持向量机(基于双月数据集)
- 前端js实现表格数据的上移下移
- VBA - 粘贴为数值型
- java计算平面度,计算产品面的平面度和平行度(C#代码)
- web3创业合伙人招募!!!
- hashmap扩容过程,如何才能更容易拿到大厂Offer?挥泪整理面经
- 变频器的工作原理和功能应用
- [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏