Python 面试问题:运算符(python运算符含义)
off999 2024-10-07 12:13 30 浏览 0 评论
运算符是对数据进行各种操作,执行算术和逻辑运算所需的特殊符号。运算符所运算的值称为操作数。
比如:10/5=2,这里 “/” 是执行除法的运算符,10 和 5 是操作数。
Python 为各种操作提供了以下运算符:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 位运算符
- 成员运算符
- 身份运算符
问题 1.什么是算术运算符,Python 中有哪些类型的算术运算符
算术运算符用于执行加法、减法、除法和乘法等数学运算。在 Python 中的各种类型的算术运算符如下:
m = 6
n = 3
print(m + n) # 加法 9
print(m - n) # 减法 6
print(m * n) # 乘法 18
print(m / n) # 除法 2.0
print(m // n) # 整除 2
print(m % n) # 取余 0
print(m ** n) # 幂 216
问题 2.Python 中算术运算符的优先级是多少
当表达式中出现多个算术运算符时,运算将按特定顺序执行。
优先级:(),*,,/,//,%,+,-
问题 3.计算以下表达式结果
A = 2
B = 4
C = 3
D = 6
s1 = A+B+C+D
s2 = A+B*C//3+D
s3 = A/B+C**2/D
s4 = A+B*C+A/B%3
s1:15; s2:12; s3:2.0; s4:14.5;
问题 4.什么是关系运算符
关系运算符也称为条件运算符或比较运算符。
Python 中的关系运算符定义如下:
操作符 | 功能 |
== | 如果两个操作数相等,则返回 True |
!= | 如果两个操作数不相等,则返回 True |
> | 如果左操作数大于右操作数,则返回 True |
< | 如果左操作数小于右操作数,则返回 True |
>= | 如果左操作数大于或等于右操作数,则返回 True |
<= | 如果左操作数小于或等于右操作数,则返回 True |
>>> a = 6
>>> b = 3
>>> a > b
True
>>> a < b
False
>>> a == b
False
>>> a != b
True
>>> a >= b
True
>>> a <= b
False
问题 5.计算以下表达式结果
a = 3
b = 6
c = 8
d = 8
a <= b >= c
-a + b == c > d
b + c == 6 + d >= 13
>>> a = 3
>>> b = 6
>>> c = 8
>>> d = 8
>>> a <= b >= c
False
>>> -a + b == c > d
False
>>> b + c == 6 + d >= 13
True
问题 6.什么是赋值运算符?
赋值运算符用于为变量赋值。
运算符 | 描述 | 示例 |
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c _= a 等效于 c = c _ a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
:= | 海象运算符 | 同时进行赋值和返回赋值的值 |
&= | 按位与赋值 | a &= b 等效于 a = a&b |
|= | 按位或赋值 | a |= b 等效于 a = a|b |
^= | 按位异或赋值 | a ^= b 等效于 a = a^b |
>>= | 右移动赋值 | a >>= b 等效于 a = a>>b |
<<= | 左移动赋值 | a <<= b 等效于 a = a<<b |
问题 7.以下表达式运行结果一样吗
a = a*2 + 6
a *= 2 + 6
不一样,赋值运算符的优先级低于算术运算符。
a *= 2 + 6 等价于 a *= 8
>>> a=2
>>> a = a*2 + 6
>>> a
10
>>> a=2
>>> a *= 2 + 6
>>> a
16
问题 8.什么是逻辑运算符
逻辑运算符通常用于条件语句中,如 if 和 while。逻辑运算符计算条件并返回“True”或“False”。
Python 中的三个逻辑运算符如下:
运算符 | 逻辑表达式 | 描述 |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
>>> a = True
>>> b = False
>>> a and b
False
>>> a or b
True
>>> not a
False
>>> not b
True
>>>
问题 9.什么是成员运算符
成员运算符用于检查序列中是否存在值。
两种的成员运算符如下:
- in:如果在序列中找到值,则返回 True。
- not in:如果在序列中找不到值,则返回 True。
>>> s = "Python"
>>> "t" in s
True
>>> "t" not in s
False
>>> "a" in s
False
>>> "a" not in s
True
问题 10.什么是位运算符
位运算符处理二进制并执行逐位运算。
在 Python 中,定义了以下位运算:
符号 | 描述 | 运算规则 |
& | 与 | 两个位都为 1 时,结果才为 1 |
| | 或 | 两个位都为 0 时,结果才为 0 |
^ | 异或 | 两个位相同为 0,相异为 1 |
~ | 取反 | 0 变 1,1 变 0 |
<< | 左移 | 各二进位全部左移若干位,高位丢弃,低位补 0 |
>> | 右移 | 各二进位全部右移若干位,对无符号数,高位补 0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补 0(逻辑右移) |
问题 11.什么是身份运算符
身份运算符用于验证两个值是否位于内存的同一位置。
有两种类型的标识运算符:
- is:如果两个操作数相同,则返回 true
- is not:如果两个操作数不相同,则返回 true
>>> a = 3
>>> b = 3
>>> a is b
True
>>> id(a)
1842193764
>>> id(b)
1842193764
>>> a = 3
>>> c = 6
>>> b = a - c
>>> a is b
False
>>> id(a)
1842193764
>>> id(b)
1842193668
>>> a is not b
True
问题 12.a = 10 和 a == 10 有什么区别
表达式 a = 10 是将值 10 分配给变量 a,而表达式 a == 10 是检查 a 的值是否等于 10。如果是,则返回“True”,否则将返回“False”。
问题 13.什么是表达式
在编程时编写的逻辑代码行称为表达式。表达式可以分为运算符和操作数。表达式是一个或多个操作数和零个或多个运算符的组合,它们一起用于计算值。
问题 14.Python 中运算符优先级的基本规则是什么
Python 中算子优先级的基本规则如下:
表达式必须从左到右计算。首先执行括号中的表达式。算术运算符的优先级较高,逻辑运算符的优先级较低。
问题 15.将以下运算符的优先级从高到低排列
赋值、指数、加法减法、关系运算符、逻辑运算符、乘法除法
运算符从高到低的优先级如下:
指数、乘法除法、加法减法、关系运算符、赋值、逻辑运算符
问题 16.是否可以更改表达式中的计算顺序
可以更改表达式的计算顺序。假设想在表达式中乘法之前执行加法,那么可以简单地将加法表达式放在括号中。
问题 17.隐式类型转换和显式类型转换有什么区别
转换是将一种数据类型转换为另一种数据类型的过程。
当 Python 自动将一种数据类型转换为另一种数据类型时,称为隐式转换。
>>> a = 3
>>> type(a)
<class 'int'>
>>> b = 1.5
>>> type(b)
<class 'float'>
>>> type(a+b)
<class 'float'>
显式转换是指使用相关函数进行对象数据类型转换后才能执行操作。
>>> a = "3"
>>> b = 1.5
>>> a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "float") to str
>>> int(a) + b
4.5
>>> a + str(b)
'31.5'
问题 18.表达式 100/25 的值是多少
4.0
标准除法的结果总是浮点数。100//25(整除)的值为 4。
问题 19.是否应该使用 == 运算符来确定 float 类型的对象是否相等
Python 中浮点对象的内部表示不精确,不能依靠 == 来判断是否相等。
>>> 1.1 + 2.2 == 3.3
False
问题 20.以下代码输出什么
a = 100
b = 200
a and b
a or b
>>> a = 100
>>> b = 200
>>> a and b
200
>>> a or b
100
?
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
?
相关推荐
- 阿里云国际站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)
