#PY小贴士# 别弄错了 Python 里的这几个运算符

有人问过这样的问题:

为什么我求圆的面积,结果不对?

r = 10s = 3.14 * (r ^ 2)print(s)

还有人问过这样的问题:

为什么判断两个并列条件时结果不对?

a = 6if a > 1 & a < 3:    print('符合条件')

会出现这样问题的同学,多半是之前用过其他的编程语言,所以习惯性地认为 ^ 是表示次方,& 是表示逻辑与(同时满足条件)、| 是表示逻辑或(满足条件之一)。

可惜在 Python 中,以上全错!

在 Python 中,这3个都属于同一类符号:位运算符。位运算符是把数字转成二进制来按位进行类似逻辑的运算。

比如 &按位与运算符:参与运算的两个值,如果二进制的对应位都为 1,则该位的结果为 1,否则为 0。示例:

a = 3 # 0011b = 5 # 0101c = a & b # 0001print(c)

c 的运算结果是 0001,转回十进制,输出就是 1。

类似的,| 是按位或运算符:只要二进制的对应位有一个为 1,结果位就为 1,否则为 0。示例:

a = 3 # 0011b = 5 # 0101c = a | b # 0111print(c)

c 的运算结果是 0111,转回十进制,输出就是 7。

^ 要稍复杂一点,是按位异或运算符:当二进制的对应位不相同时,结果为 1,相同则为 0。示例:

a = 3 # 0011b = 5 # 0101c = a ^ b # 0110print(c)

c 的运算结果是 0110,转回十进制,输出就是 6。

一般来说,你在学习中几乎不会用到位运算符,所以了解下即可。

那么,最开始的两段代码,如果要实现,正确的符号应该是什么?

Python 中的次方是 ** 符号,r 的平方就是 r ** 2

而逻辑上的分别是 andor


(0)

相关推荐

  • Python运算符是否只有加减乘除?

    数学法中的加减乘除,是运算符,但Python的运算符更加多样和复杂,分为算术运算符.比较运算符.赋值运算符.位运算符.逻辑运算符.成员运算符.身份运算符.为更加直观地了解运算符的用法,本文采用代码与注 ...

  • 说说Python中的6种位运算符?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • C语言丨运算符号&的三种用法(有示例代码)

    &: 在C语言中有两种意思,一种是取地址符,是单目运算符:另一种是位运算符,表示"按位与",是双目运算符.   1.用于指针赋值 #include<stdio.h&g ...

  • 你真的搞懂了Java中的<<、>>、>>>运算符嘛?

    在搞懂<<.>>.>>>之前,我们需要先了解二进制中的源码.反码.补码... 二进制中的原码.反码.补码 有符号数: 对于有符号数而言,符号的正.负机器是无法 ...

  • Python运算符分为哪些?这几类最常见!

    说起Python运算符,相信很多人都听说过,但对它的了解并不是很多,甚至不知道它有哪些分类,接下来跟着小编一起来看看吧. Python中运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等. 运算 ...

  • Python有哪些运算符?用法介绍!

    众所周知,编程语言的本质就是解决运算逻辑,包括Python也是如此,它可以通过各种算法实现想要的功能;当然,我们也必须搞懂各类运算符的使用,那么Python有哪些运算符呢?它的使用方法是什么?我们来看 ...

  • [基础语法]-第004节:运算符

    表达式:(a + b) * c a,b,c叫做操作数 +,*,叫做运算符 一.运算符 1.1 算术运算符 + - * / %(求余) ++ -- 1.2 关系运算符 == != > < & ...

  • Python 位操作符(Bitwise)

    什么是Python中的按位运算符? 按位运算符用于对二进制模式(1和0)执行操作.当您在屏幕上执行2 + 3的整数运算时,计算机将以二进制形式读取它-2表示为10,而3表示为11以二进制格式.因此,您 ...

  • #PY小贴士# 函数也是对象

    之前我们提到过:有同学在写入文件之后发现文件内容并没有改动,有可能是因为在关闭文件时写成了 f.close,没就加括号.那么为什么不加括号就不行,而且程序也没有报错提示呢? 这就要提到 Python ...

  • #PY小贴士# git 的冲突

    讲一个同学问到的 git 问题: 为什么我的 git 在 pull 更新线上最新代码的时候提示失败,然后发现代码里多了一些奇怪的内容: 要如何解决? 这个问题一个人写代码的时候出现的概率不高,但当多人 ...

  • #PY小贴士# 字典可以通过序号索引来访问?

    我们在学 python 中的 list 和 dict 时知道: list 是有序的,所以可以通过 list_a[0] 这样的方式通过索引(index)来访问列表中某个位置上的元素: dict 是无序的 ...

  • #PY小贴士# for 循环定义的变量,循环外可以用吗?

    在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示: for i in range(10): print(i) 我们知道,在 python 中要获取一个变量的值,必须是先给它赋 ...

  • #PY小贴士# 同样是排序,sort和sorted有啥不同?

    对列表中的元素进行排序,有两种常用方法: 1. lst = [3, 5, 2, 1, 7]lst.sort()print(lst) 2. lst = [3, 5, 2, 1, 7]lst = sort ...

  • #PY小贴士# BeautifulSoup的解析器选择

    关于解析网页内容的工具 BeautifulSoup,我们之前做过介绍: 网页解析器 BeautifulSoup 上手教程 做爬虫获取网页信息,我推荐使用 bs4,比 xpath 更人性化些. 有爬虫课 ...

  • #PY小贴士# py2 和 py3 的差别到底有多大?

    昨天的文章里也提到了:python 2 版本将在今年正式停止官方维护.(具体时间上有不同说法,1月1号.4月.8月--但这个差别意义不大了) 从我开始做 Python 编程教学的工作开始,就始终在解答 ...

  • 神和仙有啥区别?哪个地位更高?《三生三世十里桃花》弄错了事实

    引言: 在世界各国的文化体系中都有属于自己本民族的神祇(qí)系统,这一系统的存在是人类文明发展的必然结果,也对历史的进程起到了积极的推进作用.但和世界上其他国家不同的是,在我们中国除了传统意义上的神 ...

  • 古画里的真假双胞胎,连乾隆都弄错了,你能分出原作和摹仿品吗?

    沈周 仿黄公望富春山居图 就像梵高会不断地描绘自画像, 莫奈 不厌其烦地画着同一朵莲花,在绘画界,总会出现许多相似的画,有些是画家自己的手笔,有些则是后来人的慕名临摹. 西方的画家有很多都喜欢反复描绘 ...