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

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

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

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

算数运算符

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

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

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)

运行结果为:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spark无法执行pi_如何验证spark搭建完毕

在配置yarn环境下的spark时&#xff0c;执行尚硅谷的以下命令发现报错&#xff0c;找不到这个也找不到那个&#xff0c;尚硅谷的代码是 bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ ./examples/jars/spark-exam…

k8s部署单机模式的minio

k8s部署单机模式的minio 一、说明二、yaml内容三、步骤3.1 创建资源3.2 查看启动日志3.2 查看svc并访问控制台 一、说明 项目使用minio&#xff0c;准备在k8s环境部署一套minio试用。 1.关于minio的原理和概念参考: https://mp.weixin.qq.com/s?__bizMzI3MDM5NjgwNg&mid…

Python中函数添加超时时间,Python中signal使用

from time import time, sleepimport signal# 模拟要删除5条数据,中间有超时的i 5# 超时后执行的方法def timeout_handler(signal, frame):# 引发异常raise TimeoutError("删除第" str(i) "条,超时!")# 或者执行其他操作,不往外抛异常(超时的函数不会被…

使用Spring Cloud搭建一个项目框架之父子模块的创建

前言 说实在的&#xff0c;Spring Cloud的这个系列&#xff0c;很多人都写过&#xff0c;写的比博主好的一大堆&#xff0c;网友们百度一下&#xff0c;就可以发现很多很多&#xff0c;甚至有一批都是系列文章&#xff0c;我只不过之前学过一段时间&#xff0c;但是过了一段时…

ElasticSearch基础知识

ElasticSearch是一个高扩展的分布式全文搜索引擎&#xff0c;基于Lucene作为核心实现所有索引和搜索的功能。 使用场景&#xff1a; &#xff08;1&#xff09;搜索领域&#xff1a;如维基百科、谷歌&#xff0c;全文检索等。 &#xff08;2&#xff09;网站具体内容&#xf…

聊聊 Jetpack Compose 的 “状态订阅自动刷新” -- mutableStateListOf

Jekpack Compose “状态订阅&自动刷新” 系列&#xff1a; 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - MutableState/mutableStateOf 】 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - remember 和重组作用域 】 【 聊聊 Jetpack Compose 的 …

腾讯云轻量应用服务器怎么安装宝塔Linux面板?

腾讯云轻量应用服务器宝塔面板怎么用&#xff1f;轻量应用服务器如何安装宝塔面板&#xff1f;在镜像中选择宝塔Linux面板腾讯云专享版&#xff0c;在轻量服务器防火墙中开启8888端口号&#xff0c;然后远程连接到轻量服务器执行宝塔面板账号密码查询命令&#xff0c;最后登录和…

洗袜子的洗衣机哪款好?最好用的迷你洗衣机推荐

内衣洗衣机是一种专门用于清洁内衣裤以及袜子等等贴身衣物的小型洗衣机。对于大部分的用户而言&#xff0c;内衣裤作为着我们日常生活中必不可少的贴身衣物&#xff0c;因此对于日常所穿内衣裤的清洁和卫生都是非常重要。不仅涉及到隐私部位的卫生安全&#xff0c;更容易影响自…

javaEE -14(10000字 JavaScript入门 - 1)

一&#xff1a;初始 JavaScript JavaScript (简称 JS)是世界上最流行的编程语言之一&#xff0c;它是一个脚本语言, 通过解释器运&#xff0c;主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行. JavaScript 和 HTML 和 CSS 之间的关系&#xff1a; HTML…

(C++)和为s的两个数字--双指针算法

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 和为S的两个数字_牛客题霸_牛客网输入一个升序数组 array 和一个数字S&#xff0c;在数组中查找两个数&#xff0c;使得他们的和正好是S&#xff0c;如果。题目来自【牛客题霸】https://www.nowcoder.com/practice/390da4f7a…

【力扣热题100】207. 课程表 python 拓扑排序

【力扣热题100】207. 课程表 python 拓扑排序 写在最前面207. 课程表解决方案&#xff1a;判断是否可以完成所有课程的学习方法&#xff1a;拓扑排序实现步骤Python 实现性能分析结论 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/course-schedule…

探索C++14新特性:更强大、更高效的编程

探索C14新特性&#xff1a;更强大、更高效的编程 C14并没有太大的改动&#xff0c;就连官方说明中也指出&#xff0c;C14相对于C11来说是一个比较小的改动&#xff0c;但是在很大程度上完善了C11&#xff0c;所以可以说C14就是在C11标准上的查漏补缺。 C14在2014年8月18日正式…

计网Lesson7 - 超网与路由概述

文章目录 一、构造超网1 概念解析2 路由聚合判断网段 3 实例演示几个配置问题&#xff1a;传输过程中的若干问题包的问题传输时丢包的问题 4 判断是子网还是超网 二、路由概述1. 路由的作用2. 多个网段进行联络3. 数据包的传输 一、构造超网 1 概念解析 与划分子网相反&#…

从0到1实现Flink 实战实时风控系统的经验总结

随着互联网金融的快速发展&#xff0c;实时风控系统成为保障业务安全和用户信任的关键。本文将分享从零开始构建Flink实时风控系统的经验&#xff0c;并提供相关示例代码。 一、搭建Flink环境 首先&#xff0c;我们需要搭建Flink环境。以下是一些基本步骤&#xff1a; 安装Ja…

创新、升级丨数据手套FOHEART Pro开启手势识别新篇章!

在人机交互领域&#xff0c;我们始终追求更加自然、逼真的体验。正如现实生活中&#xff0c;我们习惯于通过语言和表情来传达思想和情感&#xff0c;然而&#xff0c;在虚拟世界中&#xff0c;人机交互需要以更加直观、生动的方式进行操作、控制和交互。 为了更好地满足市场的…

css实现姓名两端对齐

1.1 效果 1.2 主要代码 text-align-last: justify; 1.3 html完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…

Vue 生成包含数字大小写字母的随机字符串

generateRandomID() {const characters 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;const idLength 30; // 字符串长度 这里生成30位的let randomID ;for (let i 0; i < idLength; i) {const randomIndex Math.floor(Math.random() * characters…

数学建模-二氧化碳排放及时空分布测度

二氧化碳排放及时空分布测度 整体求解过程概述(摘要) 面临全球气候变化的巨大挑战&#xff0c;我国积极响应《巴黎协定》的号召&#xff0c;提出“2030年前碳达峰&#xff0c;2060 年前实现碳中和”的碳排放发展目标&#xff0c;并将碳中和相关工作作为 2021 年的重点任务之一…

吉客云与金蝶云星辰业财一体化数据集成

吉客云与金蝶云星辰业财一体化数据集成为例&#xff0c;探讨如何利用轻易云数据集成平台高效整合企业系统。金蝶云星辰在供应链和财务管理方面具有显著优势&#xff0c;而吉客云则专注于订单处理和发货。两者的协同运作&#xff0c;是企业数字化转型的典型案例。 二、集成总体蓝…

python-学生管理|汉罗塔

1.编写程序&#xff0c;实现学生信息管理系统。 运行程序&#xff0c;在控制台输入“1”之后的结果如下所示&#xff1a; 学生管理系统 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示所有学生信息 0.退出系统 请选择功能&#xff1a;1 请输入新学生的姓名:小红 请输入…