程序猿编程课堂 Python学习之入门篇4:运算符
off999 2024-10-07 12:13 32 浏览 0 评论
什么是运算符?
我们知道数学里面有各种运算,比如1+2、3-2、4*5、8/4等等,其中加、减、乘、除都叫做运算符,当然在Python编程中不仅仅只有这四种运算符,主要归类如下:
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
本章节我们将介绍前5个运算符,成员运算符和身份运算符将在后续章节学习复杂数据类型的时候再做介绍。
算术运算符
除了常见的加(+)、减(-)、乘(*)、除(/),Python编程中还有
- 取模(求余)运算符是“%”,即返回除法的余数,比如13 % 5 = 3(13除5等于2余数为3);
- 幂运算,其运算符是“**”,比如2 ** 3 = 8(2的三次方);
- 取整除,其运算符是"//",比如8 / / 3 = 2 (8除以3约等于2.667,取整便是2)。
我们用下面这个例子在熟悉下Python的算术运算符:
print(13 / 5) print(13 % 5) print(2 ** 3) print(8 // 3)
输出:
2.6 3 8 2
赋值运算符
前面章节我们学过变量,那么变量就要给它赋值,比如num=123,我们知道num是变量,那么“=”便是赋值运算符,就是赋予变量num的值为123。除了=这个最基本的赋值运算符外,Python还有以下这几种赋值运算符:
- += 加法赋值运算,比如num += 123 等效 num = num + 123;
- -= 减法赋值运算,num -= 123 等效 num = num - 123;
- *= 乘法赋值运算,num *= 123 等效 num = num *123;
- /= 除法赋值运算,num /= 123 等效 num = num / 123;
- %= 取模赋值运算,num %= 123 等效 num = num % 123;
- **= 幂赋值运算,num **= 123 等效 num = num ** 123;
- //= 取整除赋值运算,num //= 123 等效 num = num // 123;
动手试下这个例子:
num = 100 num += 100 print(num) num /= 5 print(num) num %= 9 print(num) num = 4 num **= 2 print(num) num //= 7 print(num)
输出:
200 40.0 4.0 16 2
关系运算符
关系运算即比较运算,返回的值是bool型,主要包括:
- == 等于,即比较两个值是否相等;
- != 不等于,比较两个值是否不相等,以下类似;
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
同样用个例子看下:
num1 = 123 num2 = 100 print(num1 == num2) print(num1 != num2) print(num1 > num2) print(num1 <= num2)
输出:
False True True False
逻辑运算符
Python中逻辑运算主要有3个,主要是针对不同布尔值进行逻辑运算。
(1)and 逻辑与, x and y,如果x为False或者0,则返回False或0,如果x为True或者大于0,则返回y值,例子如下:
x = False y = 10 print(x and y) x = 0 y = 10 print(x and y) x = 100 y = 10 print(x and y)
输出:
False 0 10
(2)or 逻辑或,x or y,如果x为True或者大于0则返回x的值,否则返回y的值
例子如下:
x = 100 y = 10 print(x or y) x = False y = 10 print(x or y)
输出:
100 10
(3)not 逻辑非,not x,非操作,x为True则返回False,为False则返回True
例子如下:
x = False print(not x) x = 100 print(not x)
输出:
True False
位运算符
位运算是基于计算机二进制来计算的,所以首先你要了解二进制,不了解的同学请先去认真了解下二进制。
比如x = 20,则其二进制为10100。
位运算主要有:
- & 按位与,两个二进制数的相同位都为1则计算结果该位即为1,否则为0;
- | 按位或,两个二进制数的相同位只要有一个是1,则该位结果即为1,否则为0;
- ^ 按位异或,两个二进制数的相同位为不同值时,该位计算结果为1,否则为0;
- ~ 按位取反,对某个二进制数的各个位取反,1变成0,0变成1,~x相当于 -x-1
- << 按位左移,对某个二进制数的所有位向右移动指定的位数,超出左边的高位去掉,低位补0;
- >> 按位右移,对某个二进制数的所有位向左移动指定的位数,超出右边的位数去掉。
我们看个例子:
x = 20 # 二进制为 0001 0100 y = 46 # 二进制为 0010 1110 z = 0 z = x & y # 按位与 应为 0000 0100 即十进制的4 print(z) z = x | y # 按位或 应为 0011 1110 即十进制的62 print(z) z = x ^ y # 按位异或 应为 0011 1010 即十进制58 print(z) z = ~x # 按位取反,则为 1110 1011 即有符号十进制-21 print(z) z = x << 2 # 0101 0000 print(z) z = x >> 2 # 0000 0101 print(z)
输出:
4 62 58 -21 80 5
运算符优先级
跟数学运算一样乘除优先于加减,Python中的运算都是有优先级,即什么先算什么后算都是有规定的。
我们从运算优先级最高到低逐一排序:
?好了,本章就介绍到这里,还是强调下多上手练习!
程序猿编程课堂 Python学习之入门篇1:环境搭建与第一个程序
前方有只程序猿:大家好,我是一只会写代码的IT猿,希望能与大家共同探讨,共同进步!欢迎关注我!
谢谢~
相关推荐
- 阿里云国际站ECS:阿里云ECS如何提高网站的访问速度?
-
TG:@yunlaoda360引言:速度即体验,速度即业务在当今数字化的世界中,网站的访问速度已成为决定用户体验、用户留存乃至业务转化率的关键因素。页面加载每延迟一秒,都可能导致用户流失和收入损失。对...
- 高流量大并发Linux TCP性能调优_linux 高并发网络编程
-
其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文所面对的情况为...
- 性能测试100集(12)性能指标资源使用率
-
在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#1.CPU使用率定义:CPU处理任务的时间占比,计算公式为1-空闲时间/总...
- Linux 服务器常见的性能调优_linux高性能服务端编程
-
一、Linux服务器性能调优第一步——先搞懂“看什么”很多人刚接触Linux性能调优时,总想着直接改配置,其实第一步该是“看清楚问题”。就像医生看病要先听诊,调优前得先知道服务器“哪里...
- Nginx性能优化实战:手把手教你提升10倍性能!
-
关注△mikechen△,十余年BAT架构经验倾囊相授!Nginx是大型架构而核心,下面我重点详解Nginx性能@mikechen文章来源:mikechen.cc1.worker_processe...
- 高并发场景下,Spring Cloud Gateway如何抗住百万QPS?
-
关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。高并发场景下网关作为流量的入口非常重要,下面我重点详解SpringCloudGateway如何抗住百万性能@m...
- Kubernetes 高并发处理实战(可落地案例 + 源码)
-
目标场景:对外提供HTTPAPI的微服务在短时间内收到大量请求(例如每秒数千至数万RPS),要求系统可弹性扩容、限流降级、缓存减压、稳定运行并能自动恢复。总体思路(多层防护):边缘层:云LB...
- 高并发场景下,Nginx如何扛住千万级请求?
-
Nginx是大型架构的必备中间件,下面我重点详解Nginx如何实现高并发@mikechen文章来源:mikechen.cc事件驱动模型Nginx采用事件驱动模型,这是Nginx高并发性能的基石。传统...
- Spring Boot+Vue全栈开发实战,中文版高清PDF资源
-
SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...
- Docker-基础操作_docker基础实战教程二
-
一、镜像1、从仓库获取镜像搜索镜像:dockersearchimage_name搜索结果过滤:是否官方:dockersearch--filter="is-offical=true...
- 你有空吗?跟我一起搭个服务器好不好?
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。昨天闲的没事的时候,随手翻了翻写过的文章,发现一个很严重的问题。就是大多数时间我都在滔滔不绝的讲理论,却很少有涉及动手...
- 部署你自己的 SaaS_saas如何部署
-
部署你自己的VPNOpenVPN——功能齐全的开源VPN解决方案。(DigitalOcean教程)dockovpn.io—无状态OpenVPNdockerized服务器,不需要持久存储。...
- Docker Compose_dockercompose安装
-
DockerCompose概述DockerCompose是一个用来定义和管理多容器应用的工具,通过一个docker-compose.yml文件,用YAML格式描述服务、网络、卷等内容,...
- 京东T7架构师推出的电子版SpringBoot,从构建小系统到架构大系统
-
前言:Java的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论...
- Kubernetes (k8s) 入门学习指南_k8s kubeproxy
-
Kubernetes(k8s)入门学习指南一、什么是Kubernetes?为什么需要它?Kubernetes(k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...
欢迎 你 发表评论:
- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
