技术标签: python指数运算符
本节教程讲解 Python 的运算法,例如算术、比较、赋值、逻辑、按位、身份(identity operator)和成员运算符。主要介绍语法和如何使用。
每一个运算符都有代表的特定符号,并使用一个或多个操作数(变量)来执行特定的操作。
例如:a | b or a & b。变量 a 和 b 是操作数,'|' 和 '&' 是运算符,'|' 运算符做二进制数的 OR 操作,'&' 运算符做二进制数的 AND 操作。
什么是运算符?
与许多编程语言一样,Python 保留了一些特殊字符作为运算符。每个运算符都会执行一些运算,例如做加法、乘法来操纵数据和变量。将作为输入被传递给运算符的变量称为操作数。建议阅读下 Python 的关键字。
例如:
>>>7%4
3
复制代码
% 是计算除法余数的模运算符,数字 7 和 4 是执行输入的操作数,最后的数字 3 是执行操作的结果。
算术运算符
使用算术运算符可以做任何数学计算,例如加、减、乘、除、模和指数计算等等。Python 程序有很多地方使用了算术运算符,例如 eval 函数、声明变量、计算和调用函数。
下面用列表描述内置的算术运算符:
运算符
作用
用法
+
加法 —— 两数之和
a+b
-
减法 —— 两数之差
a-b
*
乘法 —— 两数的乘积数
a*b
/
除法(浮点计算) —— 两数之商
a/b
//
除法(浮点计算) —— 两数之商(无小数)
a//b
%
模 —— a 除 b 得到的整数余数
a%b
**
指数 —— b 次 a 的乘积
a**b
例如:
a=7
b=4
print('Sum : ', a+b)
print('Subtraction : ', a-b)
print('Multiplication : ', a*b)
print('Division (float) : ', a/b)
print('Division (floor) : ', a//b)
print('Modulus : ', a%b)
print('Exponent : ', a**b)
复制代码
输出结果:
Sum : 11
Subtraction : 3
Multiplication : 28
Division (float) : 1.75
Division (floor) : 1
Modulus : 3
Exponent : 2401
复制代码
比较运算符
比较运算符能够确定两个值是否相等或一个值是否大于另一个值,然后根据结果进行决策。
下面用列表描述内置的比较运算符:
运算符
作用
用法
>
大于 —— 左操作数大于右操作数则返回True
a>b
<
小于 —— 左操作数小于右操作数则返回True
a
==
等于 —— 两个操作数相等则返回True
a==b
!=
不等于 —— 两个操作数不相等则返回True
a!=b
>=
大于或等于 —— 左操作数大于或等于右操作数则返回True
a>=b
<=
小于或等于 —— 左操作数小于或等于右操作数则返回True
a<=b
例如:
a=7
b=4
print('a > b is',a>b)
print('a < b is',a
print('a == b is',a==b)
print('a != b is',a!=b)
print('a >= b is',a>=b)
print('a <= b is',a<=b)
复制代码
输出结果:
a > b is True
a < b is False
a == b is False
a != b is True
a >= b is True
a <= b is False
复制代码
逻辑运算符
逻辑运算符可以根据多种条件做出决策,执行后的操作结果是一个布尔值(True 或者 False)。
但是,并不是所有逻辑运算符的结果是布尔值,例如 and 和 or 运算符返回的结果不是纯布尔值(可表示布尔值),而 not 运算符返回的结果就是纯布尔值。
下面用列表描述内置的逻辑运算符:
运算符
作用
用法
and
如果 a 是 false 返回 a,否则返回 b
a and b
or
如果 a 是 false 返回 b,否则返回 a
a or b
not
如果 a 是 false 返回 True,否则返回 False
not a
例如:
a=7
b=4
print('a and b is',a and b)
print('a or b is',a or b)
print('not a is',not a)
复制代码
输出结果:
a and b is 4
a or b is 7
not a is False
复制代码
位运算符
按位运算符用来处理整数值的各个位,将整数值转化成二进制序列来处理。
按位运算符一般用来检查是否设置了特定位。例如物联网(IOT)应用程序基于是否设置了特定位来从传感器读取数据。
下面用列表描述内置的位运算符:
运算符
作用
用法
&
按位 AND(与) —— 在位级别比较两个操作数,两个对应的位均为 1 则返回 1
a & b
|
按位 OR(或) —— 在位级别比较两个操作数,任何一个位为 1 则返回 1
a | b
~
按位 NOT(取反) —— 反转单个操作数的所有位
~a
^
按位 XOR(异或) —— 在位级别比较两个操作数,当任何一个位为 1 时返回 1(两个都为 1 时返回 0)
a ^ b
>>
右移 —— a 的二进制位右移 b 位
a >> b
<<
左移 —— a 的二进制位左移 b 位
a << b
例如:
4 和 6 的二进制数分别是 00000100 和 00000110。现在我们使用 AND 位运算符举例。
a=4
b=6
print('a & b is',a & b)
复制代码
输出结果:
a & b is 4
复制代码
这就进行了一次 AND(与) 操作。
0 0 0 0 0 1 0 0 &
0 0 0 0 0 1 1 0
---------------
0 0 0 0 0 1 0 0 # 对应的结果就是数字 4
复制代码
赋值运算符
Python 中可以使用赋值运算符来定义变量值。
例如指令 a = 4 使用了原始赋值运算符,目的是将 4 的值赋给 a 变量。
下面用列表描述内置的赋值运算符:
运算符
例子
作用等同
=
a=4
a=4
+=
a+=4
a=a+4
-=
a-=4
a=a-4
*=
a*=4
a=a*4
/=
a/=4
a=a/4
%=
a%=4
a=a%4
**=
a**=4
a=a**4
&=
a&=4
a=a&4
|=
a|=4
a=a|4
^=
a^=4
a=a^4
>>=
a>>=4
a=a>>4
<<=
a<<=4
a=a<<4
高级运算符
Python 还有一些高级运算符,例如身份运算符和成员运算符。
身份运算符(Identity Operators)
身份运算符用来比较两个对象/变量的位置,可以用来确定对象是否共享同一个内存地址,这也就是说两个相等的变量内存地址不一定相同。
另外,身份运算符也可以用来确定一个值是特定的类还是类型。
运算符
作用
用法
is
两个操作数都指向同对象返回 True,否则返回 False
a is b
is not
两个操作数指向不同对象返回 True,否则返回 False
a is not b
例如:
# 使用 'is' 运算符
a = 7
if (type(a) is int):
print("true")
else:
print("false")
# 使用 'is not' 运算符
b = 7.5
if (type(b) is not int):
print("true")
else:
print("false")
复制代码
输出结果:
true
true
复制代码
成员运算符(Membership Operators)
成员运算符用来测试某值是否是对象(字符串、列表、元组或字典键)的成员。
在 C 语言中测试成员需要遍历序列并检查每一个值,与 C 相比,Python 会使这项工作变得简单很多。
运算符
作用
用法
in
值存在序列中返回 True
7 in [3, 7, 9]
not in
值不存在序列中返回 True
7 not in [3, 5, 9]
例如:
str = 'Python operators'
dict = {6:'June',12:'Dec'}
print('P' in str)
print('Python' in str)
print('python' not in str)
print(6 in dict)
print('Dec' in dict)
复制代码
输出结果:
True
True
True
True
False
复制代码
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland