菜鸟学习日记(python)——运算符

我们进行运算时,需要两类数据,操作数和运算符,例如:a+b就是一个运算,它的操作数是a和b,运算符是‘+’

在python中运算符包括以下几大类:

  • 算数运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

算数运算符

算数运算符包括:加(+)、减(-)、乘(*,如果操作的对象是字符串类型,那么返回的结果是将字符串重复对应次数)、除(/)、取整除(//,向小的方向取整数)、取模(%)、幂(**)

以下是一些算数运算的实例:

a=8
b=2.5
c='test'
print(a+b)
print(a-b)
print(a*b)
print(c*3)
print(a/b)
print(a//b)
print(-9//2)
print(a%b)
print(a**3)

运算结果为:

比较(关系)运算符

python中的比较运算符包括:等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)

下面是比较运算的实例:

a=5
b=6
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a>=b)
print(a<=b)

结果为:

赋值运算符

赋值运算符包括:简单赋值运算符(=)、加法赋值运算符(+=)、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符(/=)、取整除赋值运算符(//=)、取模赋值运算符(%=)、幂赋值运算符(**=)、海象运算符(:=,只有python3.8以后版本支持)

以下是赋值运算符的实例:

a=16     #一般赋值运算符
a+=a        #相当于a=a+a
print('a+=a运算结果为:',a)
a-=1         #相当于a=a-1
print('a-=1运算结果为:',a)
a*=2        #相当于a=a*2
print('a*=2运算结果为:',a)
a/=4        #相当于a=a*2
print('a/=2运算结果为:',a)
a//=2        #相当于a=a*2
print('a//=4运算结果为:',a)
a%=4        #相当于a=a%2
print('a%=2运算结果为:',a)
a**=2       #相当于a=a**2
print('a**=2运算结果为:',a)
'''
海象运算符可以在表达式内部为变量赋值,这里是先对字符串求长度,并将字符串长度赋值给n,再将n与10进行比较,比较结果作为if语句的判断条件
'''
if (n := len('testtesttesttest')) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")
'''
如果没有海象运算符,以上代码可以改为以下代码,它的运行结果是一样的,但是代码没有那么简洁了
'''
n=len('testtesttesttest')
if n>10:
    print(f"List is too long ({n} elements, expected <= 10)")
'''
以下代码是用于判断输入的字符串是否为'exit',如果是,那么退出程序,如果不是,那么输出刚才输入的字符串
'''
while (inputstr:=input('清输入字符串:')) !='exit':
    print('输入的字符串:',inputstr)

位运算符

按位运算符是把数字看作二进制来进行计算的。位运算符包括:按位与运算(&,对应两个二进制位都为1时运算结果为1,否则为0)、按位或运算(|,对应两个二进制位有都为0时运算结果为0,否则为1)、按位异或运算(^,对应两个二进制位相异时运算结果为1,否则为0)、按位取反运算(~,将对应二进制数的每一位取反,将1变为0,0变为1)、左移运算符(<<,将对应数据的每一位都向左移动若干位,由<<右边的数字来指定移动的位数,高位丢弃,地位补0)、右移运算符(>>,将对应数据的每一位都向右移动若干位,由>>右边的数字来指定移动的位数,高位补0,地位丢弃)。

以下是按位运算实例:

a=60        #a用二进制表示为00111100
b=13        #b用二进制表示为00001101
print(a&b)      #运算结果为:00001100,用十进制表示为12
print(a|b)      #运算结果为:00111101,用十进制表示为61
print(a^b)      #运算结果为:00110001,用十进制表示为49
'''
运算结果为:11000011,用十进制表示为-61,
要注意的是,在计算机中不管是正数还是负数,都是用它的补码来表示,
但是正数的原码、反码、补码都是一样的,但是负数的原码、反码、补码不一样
负数在计算机中以其绝对值的补码形式表达
'''
print(~a)
print(a<<2)      #运算结果为:11110000,用十进制表示为240
print(a>>2)      #运算结果为:00001111,用十进制表示为15

结果为:

逻辑运算符

逻辑运算符包括:与运算(and,x and y,如果x的值为False,那么返回x的值,否则返回y的计算值)、或运算(or,x and y,如果x的值为True,那么返回x的值,否则返回y的计算值)、非运算(not,not x,如果x的值为False,那么返回True,如果x的值为True,那么返回False)

要注意的是:在python中,所有非0的数字它的布尔值都是True,所有非空的字符串它的布尔值都是True

逻辑运算简单实例如下:

a=10
b=0
c=12
print(b and a)      #为0,返回b的值
print(a and c)      #a不为0,返回c的值
print(a or b)       #a不为0,返回a的值
print(a or c)       #a不为0,返回a的值
print(b or c)       #b为0,返回c的值
print(not a)        #a不为0,返回False
print(not b)        #b为0,返回True
print(a and b or c)     #从左到右,a and b的结果为0,0 or c,返回c的值
print(a and (b or c))       #先计算括号内的表达式,b or c,结果为c的值,不为0,a的值不为0,返回c的值
print(a and (not b))        #先计算括号内的表达式,not b的值为True,a的值不为0,返回True

结果为:

成员运算符

成员运算符包括:in(如果在指定的序列中找到值返回 True,否则返回 False),not in(如果在指定的序列中没有找到值返回 True,否则返回 False)

成员运算符简单实例如下:

str1='str1'
list1=[1,2.3,'str1']
tuple1=(1,2.3,'str1')
set1={1,2.3,'str1'}
dict1={'name':'小花','sex':'女','age':21}
a=1
b=2.3
c='str1'
d='t'
e='name'
if a in list1:
    print('a在列表里面')
if b in tuple1:
    print('b在元组里面')
if c in set1:
    print('c在集合里面')
if d in str1:
    print('d在字符串里面')
if e in dict1.keys():
    print('e在字典里面')
if a not in list1:
    print('a不在列表里面')
if b not in tuple1:
    print('b不在元组里面')
if c not in set1:
    print('c不在集合里面')
if d not in str1:
    print('d不在字符串里面')
if e not in dict1.keys():
    print('e不在字典里面')
if 5 not in tuple1:
    print('5不在元组里面')

结果为:

身份运算符

身份运算符包括:is(判断两个标识符是不是引用自一个对象),is not(判断两个标识符是不是引用自不同对象)。

在python中,对象包含三个基本要素,分别是:id(身份标识),type(数据类型),value(值)

==和is的区别在于,它们进行比较的内容不同,==用于比较value(值),而is用于比较id(身份标识),id就是内存地址,相当于c语言中的指针

身份运算符的实例如下:

a=b=[1,2,3]
c=[1,2,3]
if a==b:
    print('a和b的值相同')
if a==c:
    print('a与c的值相同')
if a is b:
    print('a与b的id相同')
if a is c:
    print('a与c的id相同')
if a is not c:
    print('a与c的id不同')
print('a的id为:',id(a))
print('c的id为:',id(c))

结果为:

运算符优先级

我们进行运算时,是按照运算符的优先级顺序进行的,优先级高的先执行,优先级低的后执行,同一优先级的按照从左往右的顺序执行。

常用运算符的优先级从高到低依次是:

  • 小括号:()
  • 幂:**
  • 正、负、按位非:+、-、~
  • 乘、除、整除、取余:*、/、//、%
  • 加、减:+、-
  • 移位:<<、>>
  • 按位与:&
  • 按位异或:^
  • 按位或:|
  • 比较运算(包括成员运算符和身份运算符):in、not  in、is、is not、<、<=、>、>=、!=、==
  • 逻辑非not
  • 逻辑与:and
  • 逻辑或:or
  • 赋值运算符:=

一些简单的例子如下:

a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d  # ( 30 * 15 ) / 5
print("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d  # (30 * 15 ) / 5
print("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d)  # (30) * (15/5)
print("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d  # 20 + (150/5)
print("a + (b * c) / d 运算结果为:", e)

运行结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/217733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云原生 | Docker】Docker核心概念 应用上手最佳流程

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

ubuntu 下载编译 opencv4.2.0并检验

如有帮助点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; ubuntu 的opencv4.2.0下载与编译 下载依赖开始编译安装配置OpenCV编译环境检验* 完成 下载 首先下载opencv源码网址&#xff1a; https://opencv.org/releases/page/3/ 下载成zip后&#xff0c;…

Linux常用快捷键

1. tab 键补全 1)当我们忘记了一些指令怎么写时&#xff0c;可以双击tab键&#xff0c;查看所有指令&#xff0c;显示出来后可以按enter键往下翻&#xff0c;想要取消命令可以按ctrl c。 2)知道开头怎么写&#xff0c;后面的忘了&#xff0c;也可以双击tab键查询开头排列的指令…

Liunx系统使用超详细(三)

本篇内容开始逐渐描述有关liunx的各种命令的使用方法&#xff01; 目录 一、目录和文件区别 1.1目录&#xff1a; 1.2文件&#xff1a; 1.3总结&#xff1a; 二、Linux命令的写法 三、linux命令清屏 四、pwd命令 五、ls命令 5.1 ls&#xff1a; 5.2 ls -l&#xff1a…

HTML CSS JavaScript的网页设计

一、网页界面效果&#xff1a; 二、HTML代码&#xff1a; <!DOCTYPE html> <!-- 声明文档类型--> <html lang"en"> …

代码随想录第二十一天(一刷C语言)|回溯算法组合

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、回溯算法 1、种类 排列、组合、分割、子集、棋盘问题 2、回溯步骤 &#xff08;0&#xff09;回溯抽象 回溯法解决的问题均可以抽象为树形结构&#xff08;N叉树&#xff09; &…

acwing-Linux学习笔记

acwing-Linux课上的笔记 acwing-Linux网址 文章目录 1.1常用文件管理命令homework作业测评命令 2.1 简单的介绍tmux与vimvimhomeworktmux教程vim教程homework中的一些操作 3 shell语法概论注释变量默认变量数组expr命令read命令echo命令printf命令test命令与判断符号[]逻辑运算…

等保测评报价相差很大,里面有什么门道

等保测评报价的差异主要源于以下几点&#xff1a; 服务质量评估标准不同&#xff1a;不同的测评机构在测评过程中所提供的服务范围、深度、细节等方面可能存在差异&#xff0c;因此导致报价有所不同。一些机构可能提供全面且细致的测评服务&#xff0c;致力于提供高质量的等保测…

Nested Named Entity Recognition with Span-level Graphs

原文链接&#xff1a; https://aclanthology.org/2022.acl-long.63.pdf ACL 2022 介绍 问题 基于span的方法虽然在解决嵌套实体上存在巨大潜力&#xff0c;但存在以下问题&#xff1a; 1&#xff09;难以充分利用span的丰富语义&#xff1b; 2&#xff09;重叠较多的正负样本会…

如何使用PostMan进行并发测试?

如何使用PostMan进行并发测试&#xff1f; &#x1f440;(Postman 的 runner 实际上是串行执行的&#xff0c;因此不能作为并发测试&#xff0c; 只是批量测试&#xff0c;本文如下称为并发的是错误的) 文章目录 如何使用PostMan进行并发测试&#xff1f;POST篇流程Pre-req 脚…

c++ atmoic acquire/release

由于多核cpu缓存的存在&#xff0c;以及gcc编译优化&#xff0c;cpu指令层面的优化&#xff0c;导致程序的执行顺序可能跟你写的顺序不完全一致&#xff08;reorder&#xff09;。 但是在多线程编程中如何确保各个线程能正确的读取到各个变量呢&#xff08;而不是cache中老旧的…

做一件荒谬的事:用AI推理下一次双色球结果 v0.1

做一件荒谬的事&#xff1a;用AI推理下一次双色球结果 v0.1 引言 事情的起因是父亲被亲戚安利&#xff0c;突然喜欢上了双色球&#xff0c;连规则和开奖结果怎么看都不懂的他&#xff0c;让我研究研究这个事&#xff0c;给他选个号。他还说老家有好几个人中了几百万&#xff…

3.C程序编译步骤

目录 1 预处理 2 编译 3 汇编 4 链接 5 文件大小情况 依次执行下面4个步骤 预处理 将所有头文件展开&#xff0c;比如stdio.h等&#xff0c;展开就相当于把stdio.h中的所有代码粘贴到你的代码里。将所有的宏文件展开&#xff0c;像stdio.h是官方定义的头文件&#x…

Batch Normalization

1.是什么&#xff1f; 批量归一化&#xff08;Batch Normalization&#xff09;&#xff0c;由Google于2015年提出&#xff0c;是近年来深度学习&#xff08;DL&#xff09;领域最重要的进步之一。该方法依靠两次连续的线性变换&#xff0c;希望转化后的数值满足一定的特性&am…

Python 解析JSON实现主机管理

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它以易于阅读和编写的文本形式表示数据。JSON 是一种独立于编程语言的数据格式&#xff0c;因此在不同的编程语言中都有对应的解析器和生成器。JSON 格式的设计目标是易于理解、…

应用分发平台的重要性:构建、扩展和管理您的移动应用

在当今的数字时代&#xff0c;移动应用已经成为我们日常生活的一部分。无论是用于商业、教育、娱乐还是社交&#xff0c;应用都在我们的生活中发挥着重要的作用。然而&#xff0c;构建一个成功的应用需要更多的工作——它需要一个合适的平台来发布、管理和跟踪。这就是应用分发…

JFrog----软件的SBOM分析简介

文章目录 什么是SBOM&#xff1f;SBOM分析的重要性SBOM分析的过程结语 什么是SBOM&#xff1f; SBOM&#xff0c;全称是“软件物料清单”&#xff0c;它像是一个详尽的清单&#xff0c;列出了构成特定软件的所有组件&#xff0c;包括库、模块、包等。这就像是制造业中的物料清…

为什么要做ERP集成?ERP系统如何与其他业务应用程序集成

什么是ERP集成&#xff1f; ERP集成是指将企业资源计划&#xff08;Enterprise Resource Planning&#xff0c;ERP&#xff09;系统与其他软件应用或业务流程进行无缝连接和整合的过程。 ERP系统通常涵盖企业内部的各种功能模块&#xff0c;如财务、供应链管理、生产制造、销…

制作一个RISC-V的操作系统-环境搭建

文章目录 前言环境搭配 前言 由于之前的操作系统反馈难度太大&#xff0c;所以准备从这个RISC-V操作系统出发&#xff0c;以后知识层面更加深入再去完善。 环境搭配 按照依赖项 $ sudo apt update $ sudo apt install build-essential gcc make perl dkms git gcc-riscv64-…

Python标准库:copy模块【侯小啾python基础领航计划 系列(十五)】

Python标准库:copy模块【侯小啾python基础领航计划 系列(十五)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…