运算符,我们日常生活中使用的加减乘除,都是运算符的一种。当然这种一般我们称为算术运算符,用于处理数字运算的。

但是在计算机语言中,还有很多的运算符。用于处理不用的情况。

主要有以下几类:

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 成员运算符

算术运算符

算术运算符就是日常所用的加减乘除,这些运算符在计算机语言中可以用于数值类型的运算。

运算符 描述 例子
+ 相加 5+6 结果为 11
- 相减 5-3 结果为 2
* 乘法 3 * 6 结果为 18
** 取幂,x 的 y 次方 3 ** 3 结果为 27
/ 除法,普通除法 5/2 结果为 2.5
// 取整除,也叫地板除,只取商的整数部分 5//2 结果为 2
% 取余,常用于奇偶和是否能被整除的判断 5 % 2 结果为 1

加法和乘法还可以用于字符串的运算:

>>> s1 = 'hello'
>>> s2 = 'world'
>>> s1 + s2 # 字符串的拼接
'helloworld'
>>> s1 * 3 # 字符串乘几,相当于把该字符串重复多少次。
'hellohellohello'

比较运算符

比较运算符也就是判断是否相等、大于、小于等。返回的结果都是布尔值,主要用于条件判断。

运算符 描述 例子
== 等,判断是否相等(必须两个等号),相等返回 True,不等返回 False 5==6 返回 False
!= 不等,判断是否不相等,不等则返回 True,相等返回 False 5 != 6,返回 True
> 大于,左边大于右边返回 True,否则返回 False 5 > 4,返回 True
< 小于,左边小于右边返回 True,否则返回 False 5 < 3,返回 False
>= 大于或等于 5 >= 5,返回 True
<= 小于或等于 4 <= 6, 返回 True

比较运算符也可以用在字符串上,用字符串比较的话,就是以ASCII码的顺序进行比较的。也就是小写字母 > 大写字母 > 数字

>>> 'nemo' > 'hello'   # n 在 h 后面,所以 n 比 h 大
True

数值类型不能和字符串进行比较运算。

>>> 'a' > 1  # 比较运算符 > 不支持在 str 类型和 int 类型之间比较
TypeError: '>' not supported between instances of 'str' and 'int'

逻辑运算符

逻辑运算符也叫布尔运算符,主要用于将多个条件运算进行连接。Python 中的逻辑运算符直接简单粗暴的使用英语单词,而不是各种符号,这也就很好记了。

运算符 描述 例子
and 与运算,and 前后条件同时为 True 时返回 True,有一个不为 True,则返回 False 3 > 2 and 2 > 4 返回,False
or 或运算,or 前后条件只要有一个为 True 则返回 True,只有当前后两个条件都为 False 才返回 False 3 > 2 or 2 > 4,返回 True
not 非运算,not 的后面跟条件,对条件的结果取否 not 3 > 2,返回False

成员运算符

成员运算符只有 in 和 not in,主要用于判断某个值是否在某个序列(后面再讲)中。

运算符 描述 例子
in 判断某个值是否在某个序列中,在的话返回 True,不在则返回 False 'h' in 'hello',返回 True
not in 判断某个值是否不在某个序列中,不在的话返回 True,在的话返回 False 'x' not in 'hello',返回 True

身份运算符

在 Python 中有一种身份运算符is,用来判断变量的对象是否是同一对象。在数据类型中我们所过,在 Python 中所有的数据类型都是对象。也就是所变量中储存的都是对象。

在 Python 中有一个专门用来检查是否同一对象的函数 id()id()用来返回对象在内存中的地址。如果同一个内存地址存储的内容就是同一个对象。

>>> a = 1
>>> b = 1.0
>>> id(a)
1784179728
>>> id(b)
1740733557424
>>> a is b
False
>>> c = 1
>>> id(c)
1784179728
>>> a is c # 相当于 id(a) == id(c)
True

身份运算符先做了解,如果有疑问可以在评论中提出,如果实在不能理解,可以先跳过,前期一般来说很少涉及到!

本节思考

3 > 2 > 1 ,返回为何?

(3 > 2) > 1,返回又是什么?为什么?

(3 > 2) == 1 的返回呢?有没有明白点什么?

'a' < 'A' 呢?为什么?

Python 极简教程(六)运算符的更多相关文章

  1. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  2. python极简教程04:进程和线程

    测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...

  3. python极简教程01:基础变量

    测试奇谭,BUG不见. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题: 网络上的资料过多且良莠不全,不知道如 ...

  4. Python 极简教程(一)前言

    现在 Python 用处很多,学的人也很多,其流行程度自不必说.但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说. 现在的教程非常多,但是绝大部分对于初学者都不够友好. ...

  5. Python 极简教程(十二)逻辑控制语句 if else

    计算机软件之所以能够对不同的情况进行不同的处理,就是我们在编码的时候,通过逻辑控制语句,告诉软件在不同的情况下应该做什么处理. 比如我们在登录的时候,那么当你输入正确的账号密码和错误的账号密码,完全是 ...

  6. Python 极简教程(三)数据类型

    每种语言都有各种数据类型.这就像在现实生活中,我们计数的时候需要用到数字,在表述金额.重量.距离等需要精确计数时用到小数,在日常交谈中要用文字,等等.在计算机语言中,为了表述不同的情况,也需要用到各种 ...

  7. Python 极简教程(二)编码工具

    Python 的编码工具很多.目前最流行的是 pycharm,关于 pycharm 的安装使用请参考 PyCharm安装使用教程. 而学习过程中,我觉得最好用的,还是 Python 自带的练习工具 I ...

  8. python极简教程05:生成器和匿名函数

    测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...

  9. python极简教程07:封装、多态和继承

    测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...

随机推荐

  1. UVA Building designing

    题目总结来说求一段序列,必须正负交替,且绝对值递增 #include <iostream> #include <cstdio> #include <cstring> ...

  2. nvm安装node流程及报错解决

    第一步:下载NVM下载nvm并解压 nvm-window 下载地址:https://github.com/coreybutler/nvm-windows/releases 下载文件,然后解压得到nvm ...

  3. PHP定时执行任务

    ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $int ...

  4. 一招制胜---详解分布式系统里session同步

    一招制胜---详解分布式系统里session同步 几周前,有个盆友问老王,说现在有多台服务器,怎么样来解决这些服务器间的session同步问题?老王一下就来精神了,因为在n年以前,老王还在学校和几个同 ...

  5. ZOJ 2562 HDU 4228 反素数

    反素数: 对于不论什么正整数x,起约数的个数记做g(x).比如g(1)=1,g(6)=4. 假设某个正整数x满足:对于随意i(0<i<x),都有g(i)<g(x),则称x为反素数. ...

  6. zoj 2317 Nice Patterns Strike Back(矩阵乘法)

    problemId=1317">http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=1317 给出一个n*m的矩阵( ...

  7. 线段树 hdu3642 Get The Treasury

    不得不说,这是一题很经典的体积并.. 然而还是debug了2个多小时... 首先思路:按z的大小排序. 然后相当于扫描面一样,,从体积的最下方向上方扫描,遇到这个面 就将相应的两条线增加到set中,或 ...

  8. vim 技巧之用宏命令批量处理文件

    今天遇到了一种情况,就是我需要同时修改34个文件中的某些字符串的内容,如果一个个打开需改的话,那也太麻烦了.后来就想着能不能通过vim的宏命令来修改呢?现在就总结下关于宏在文件列表中的应用1.首先,我 ...

  9. SortedDictionary<TKey, TValue> 类 表示根据键进行排序的键/值对的集合。

    SortedDictionary<TKey, TValue> 类   表示根据键进行排序的键/值对的集合. SortedDictionary<TKey, TValue> 中的每 ...

  10. tomcat:web容器

    Web容器和应用服务器除了你所说的request response之外还有很多其他重要的功能. 1. 多线程和并发处理,估计你写的socket程序支持不了几个并发访问吧 2. 安全性 3. 生命周期管 ...