百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 面试问题:运算符(python运算符代码)

wxin55 2024-11-09 14:40 13 浏览 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

?

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

?

相关推荐

Java框架 —— Spring简介

简介一般来说,Spring指的是SpringFramework,它提供了很多功能,例如:控制反转(IOC)、依赖注入(DI)、切面编程(AOP)、事务管理(TX)主要jar包org.sprin...

Monkey自动化测试

Monkey1.通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常;2.Monkey主要用于Android的压力...

十年之重修SpringBoot启动&amp;自动装载&amp;Bean加载过程

总结Springboot的自动装载,完全是依赖Bean的自动注册,其中默认的规则,是把需要自动装载的bean全名称编辑在spring.factories(2.7之后的版本,还支持.imports文件)...

一些可以显著提高大型 Java 项目启动速度的尝试

我们线上的业务jar包基本上普遍比较庞大,动不动一个jar包上百M,启动时间在分钟级,拖慢了我们在故障时快速扩容的响应。于是做了一些分析,看看Java程序启动慢到底慢在哪里,如何去优化,...

class 增量发包改造为 jar 包方式发布

大纲class增量发包介绍项目目录结构介绍jar包方式发布落地方案class增量发包介绍当前项目的迭代修复都是通过class增量包来发版本的将改动的代码class增量打包,如下图cla...

Flink架构及其工作原理(很详细)

原文链接:https://www.cnblogs.com/code2one/p/10123112.html关键词:Flink架构、面试杀手锏!更多大数据架构、实战经验,欢迎关注【大数据与机器学习】,...

大促系统优化之应用启动速度优化实践

作者:京东零售宋维飞一、前言本文记录了在大促前针对SpringBoot应用启动速度过慢而采取的优化方案,主要介绍了如何定位启动速度慢的阻塞点,以及如何解决这些问题。希望可以帮助大家了解如何定位该类问...

Maven工程如何使用非Maven仓库jar包

使用Maven之前,一直都是自己手工在网上搜索需要的jar包,然后添加到工程中。以这样的方式开发,工作了好多年,曾经以为以后也会一直这样下去。直到碰上Maven,用了第一次,就抛弃老方法了。Maven...

【推荐】一款开源免费、功能强大的短链接生成平台

项目介绍reduce是一款开源免费、功能强大的短链接生成平台。部署在服务器,使用短域名解析即可提供服务。CoodyFramework首秀,自写IOC、MVC、ORM、TASK、JSON、DB连接池、...

K8S官方java客户端之七:patch操作

欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;...

Java 的业务逻辑验证框架 之-fluent-validator

开发人员在维护核心业务逻辑的同时,还需要为输入做严格的校验。当输入不合法时,能够给caller一个明确的反馈,最常见的反馈就是返回封装了result的对象或者抛出exception。一些常见...

互联网大厂后端必看!手把手教你替换 Spring Boot 中的日志框架

在互联网大厂的后端开发工作中,SpringBoot框架是搭建项目的“得力助手”,使用十分普遍。但不少开发者都遇到过这样的困扰:SpringBoot默认集成的Logback日志框架,在实际...

测试经理教你如何用monkey进行压力测试!

一、monkey是什么1、monkey程序由android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar2、Mo...

Java-Maven详解

一、什么是Maven?ApacheMaven是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,提供了帮助管理构建、文档、报告、依赖、发布等方法,Maven简化和标准化项目建设过程。处理...

SpringBoot打包部署最佳实践

springboot介绍SpringBoot目前流行的javaweb应用开发框架,相比传统的spring开发,springboot极大简化了配置,并且遵守约定优于配置的原则即使0配置也能正常运...

取消回复欢迎 发表评论: