Python运算符

3.3 Python运算符

运算符用于执行程序代码运算,根据操作数一般分为一元运算符、二元运算符。例如: 2+3,其操作数是 23,而运算符则是 +。在Python中运算符可以分为以下几种类型:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

+-*:分别对应数学中的加减乘,在此不做过多的赘述。
/:除法,注意结果返回的是浮点数。4 / 2 → 2.0
%:取模,返回除法的余数。7 % 3 → 1
**:幂运算。4 2 → 16
//:取整除,也叫地板除,返回商的整数部分(向下取整)。15 // 6 → 2
1、算术运算符全是对数值类型数据进行操作的运算符
2、算术运算符全是二元运算符
3、返回的类型为 数值类型
算术转换规则**
1、如果任一操作数为复数,另一操作数会被转换为复数;
2、否则,如果任一操作数为浮点数,另一操作数会被转换为浮点数;
3、否则,两者应该都为整数,不需要进行转换。

==!=><>=<=< code>&#xFF1A;&#x5206;&#x522B;&#x5BF9;&#x5E94;&#x7B49;&#x4E8E;&#x3001;&#x4E0D;&#x7B49;&#x4E8E;&#x3001;&#x5927;&#x4E8E;&#x3001;&#x5C0F;&#x4E8E;&#x3001;&#x5927;&#x4E8E;&#x6216;&#x7B49;&#x4E8E;&#x3001;&#x5C0F;&#x4E8E;&#x6216;&#x7B49;&#x4E8E;&#x3002;<br>1&#x3001;&#x6BD4;&#x8F83;(&#x5173;&#x7CFB;)&#x8FD0;&#x7B97;&#x7B26;&#x53EF;&#x4EE5;&#x64CD;&#x4F5C;&#x6570;&#x503C;&#x7C7B;&#x578B;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x64CD;&#x4F5C;&#x5BF9;&#x8C61;&#x3002;<br>2&#x3001;&#x6BD4;&#x8F83;(&#x5173;&#x7CFB;)&#x8FD0;&#x7B97;&#x7B26;&#x5168;&#x662F;&#x4E8C;&#x5143;&#x8FD0;&#x7B97;&#x7B26;&#x3002;<br>3&#x3001;&#x8FD4;&#x56DE;&#x7684;&#x7ED3;&#x679C;&#x4E3A;<code>&#x5E03;&#x5C14;&#x7C7B;&#x578B;</code>(&#x975E;&#x771F;&#x5373;&#x5047;)<!--=<-->

=:最常用的赋值运算符。a = 5 → 将5赋值给a。
&#x7B97;&#x672F;&#x8FD0;&#x7B97;&#x7B26; + =:先进行算术运算之后再进行赋值。例如: a += 3等价于:a = a + 3。其它的类似。
=::海象运算符。Python3.8之后新增的一种赋值运算符,可以直接进行赋值后再形成表达式,从而节省代码的编写量。
↓未使用海象运算符

age = 20
if age > 18:
    print("已经成年了")

↓使用海象运算符

if(age:= 20) > 18:
    print("已经成年了")

↓未使用海象运算符

file = open("demo.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line.strip())

↓使用海象运算符

file = open("demo.txt", "r")
while (line := file.readline()):
    print(line.strip())

↓未使用海象运算符

while True:
   p = input("Enter the password: ")
   if p == "youpassword":
      break

↓使用海象运算符

while(p := input("Enter the password: ")) != "youpassword":
   continue

1、赋值运算符可以操作数值类型,也可以操作对象。
2、赋值运算符全是二元运算符。

and:逻辑与,若2个操作数都为真则结果为 True,否则为 False
or:逻辑或,若2个操作数都为假则结果为 False,否则为 True
not:逻辑非,取反。若操作数为 True,则结果为 False。反之亦然。
1、操作数必须为 &#x5E03;&#x5C14;&#x7C7B;&#x578B;或能隐式转换成 &#x5E03;&#x5C14;&#x7C7B;&#x578B;
2、 andor是两元运算符,而 not是一元运算符。
3、 and其实 &#x77ED;&#x8DEF;&#x903B;&#x8F91;,就是先判断第1个参数的布尔类型,如果是 False,那么整个表达式就是 False,而不必去判断第2个参数的布尔类型。如果为 True,那么整个表达式的最后结果就是第2个参数的布尔类型。这个称之为短路逻辑。 or也同理。
4、优先级: not > and > or
5、返回的类型为 &#x5E03;&#x5C14;&#x7C7B;&#x578B;

位运算符会将数字转换成二进制并进行运算。位运算符将两个二进制数位从高到低依次进行运算。为了方便讲解,下面的变量a 为 60,b 为 13,a和b的二进制格式为:
a = 0011 1100
b = 0000 1101
&:按位与,如果参与运算的两个2进制位都为1,则结果为1,否则为0。
a & b → 0000 1100
|:按位或,如果参与运算的两个2进制位有一个为1,则结果为1。否则为0。
a & b → 0011 1101
^:按位异,如果参与运算的两个2进制位相异时,结果为1。否则为0。
a ^ b → 0011 0001
~:按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1。
~a = 1100 0011
<<:左移动,运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。
a << 2 → 1111 0000
>>:右移动,运算数的各二进位全部右移若干位,由 >> 右边的数字指定了移动的位数,低位丢弃,高位补0。
a >> 2 → 0000 1111
1、操作数必须为整数类型
2、 &|^是两元运算符,而 ~<<>>是一元运算符

成员运算符用来判断某个对象是不是某个序列中的成员。
in:对象在序列中则返回 True,否则返回 Flase
not in:对象不在序列中则返回 True,否则返回 False
1、 innot in都是二元运算符。
2、返回值为布尔类型。

身份运算符用于对对象执行比较操作,即这些运算符检查两个操作数是否引用相同的对象(具有相同的存储位置)。
is:判断两个标识符是不是引用自同一个对象。x is y:类似id(x) == id(y),如果引用的是同一个对象则返回 True,否则返回 False
is not:判断两个标识符是不是引用自不同对象。x is not y:类似id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False
1、 isis not都是二元运算符
2、返回的结果为布尔类型。

以下列出了从最高到最低优先级的所有运算符:

运算符 描述 * 指数(最高优先级) ~、+、- 按位翻转、正号、负号 、/、%、// 乘、除、取模、取整除 +、- 加、减 >>、<< 按位右移、按位左移 & 按位与 |、^ 按位或、按位异或

对于某些不清楚优先级的运算符,可以通过括号来改变执行运算顺序。

&#x7EC3;&#x4E60;
1、了解Python运算符
2、将教程中所有的运算符示例手敲一遍并熟悉

Original: https://www.cnblogs.com/sibide/p/16182658.html
Author: crleep
Title: Python运算符

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/810450/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用Python对淘宝用户行为数据的分析

    目录 项目前言 一、分析目的 二、数据获取与理解 1.数据来源 2.理解数据 三、具体做法 1.导入并清洗数据 3.1.1.把时间戳改为datetime类型 3.1.2.查看是否存…

    Python 2023年8月2日
    071
  • python读取文本数据绘制曲线图

    目录 写在前面 代码 reference 写在前面 1、本文内容python读取文本数据曲线图2、转载请注明出处:https://blog.csdn.net/qq_41102371…

    Python 2023年8月23日
    056
  • Feign 实现 GET 方法传递 POJO

    Feign 实现 GET 方法传递 POJO 作者:Grey 原文地址: 博客园:Feign 实现 GET 方法传递 POJO CSDN:Feign 实现 GET 方法传递 POJ…

    Python 2023年10月15日
    056
  • 强化学习-学习笔记7 | Sarsa算法原理与推导

    Sarsa算法 是 TD算法的一种,之前没有严谨推导过 TD 算法,这一篇就来从数学的角度推导一下 Sarsa 算法。注意,这部分属于 TD算法的延申。 7. Sarsa算法 7….

    Python 2023年10月25日
    053
  • 二十四种场景全方位解读Python装饰器的用法

    推荐文章 很多小伙伴都发现了,用户自主「申请上首页」的按钮取消了,那博主们写的文章还有上首页曝光的机会吗?我们的回答是”当然有!!!”虽然我们取消了上首页申…

    Python 2023年5月24日
    0105
  • 一个小时学会画网络拓扑图(附标准素材)

    一,常见的网络拓扑图图标 二,核心交换机,汇聚交换机,接入交换机的区别? 三,核心交换机,汇聚交换机,接入交换机如何使用? 一、核心层交换机和汇聚层交换机区别 1、功能区别 2、性…

    Python 2023年10月1日
    060
  • windows系统下压缩文件成tar.gz格式的方法

    tar.gz 是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式,然而这种格式在windows并不多见,WinRAR、WinZip等主流压缩工…

    Python 2023年6月16日
    0290
  • manim movealongpath 的bug

    l = msm(‘leave’).scale(2) leavepath = msm(‘leavepath’).scale(2) xxp(ama(l,leavepath)) 报错: …

    Python 2023年6月12日
    063
  • python转成exe运行出错_使用py2exe将.py转换为.exe:无法运行程序

    我试图用py2exe(我有python2.7)使pygame文件可执行。程序由3个脚本组成。在 我写的设置是:from distutils.core import setup im…

    Python 2023年9月22日
    081
  • Microsoft Visual C++ 14.0 is required.

    Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools…

    Python 2023年8月1日
    056
  • groupby分组聚合和运算

    本文是对《利用Python进行数据分析》中关于groupby进行分组聚合和运算的一个回顾性总结,整体而言,在过去的一年的工作中,用到groupby的场景还是蛮多的,尤其是利用它与相…

    Python 2023年8月18日
    054
  • 天池龙珠Python训练营-打卡笔记T08

    类与对象: *这部分感觉自己学的不透彻来着 对象 = 属性+方法 继承对象:从模板获得方法,以及一部分共享的数据。 多态(方法重写)继承父类时可以选择性修改一部分方法 类self:…

    Python 2023年9月25日
    034
  • HTML详解

    一、初识HTML 初始基本标签代码解释 点击查看代码 <!–DOCTYPE:告诉浏览器我们要使用什么规范–> <!DOCTYPE html> <h…

    Python 2023年6月9日
    081
  • k8s驱逐篇(5)-kube-controller-manager驱逐

    kube-controller-manager驱逐 kube-controller-manager驱逐主要依靠 NodeLifecycleController以及其中的 Taint…

    Python 2023年10月12日
    059
  • 深度学习之BP神经网络

    前言 bp神经网络是模拟人体中神经元结构而设计出来的: 神经元大致可以分为树突、突触、细胞体和轴突。树突为神经元的输入通道,其功能是将其它神经元的动作电位传递至细胞体。其它神经元的…

    Python 2023年9月30日
    049
  • Kafka事务「原理剖析」

    一、事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性、一致性、事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端…

    Python 2023年10月14日
    043
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球