day03-运算符

发布时间 2023-09-06 18:31:52作者: 似小陈ya
Python提供了多种类型的运算符,用于执行各种操作,包括算术运算、比较运算、逻辑运算、赋值运算等。

1、算数运算符

运算符
作用
例子
结果
+
7+2
9
-
7+2
5
*
7*2
14
/
除(保留小数点)
7/2
3.5
//
整除(取商)
7//2
3
%
除(取余数)
7%2
1
**
次方
7**2
49
+加法运算符
发现如果是数字的话,+会用于相加
如果是字符串的时候,会将字符串拼接
支持列表和元祖
 
-减法运算符
数字的话,用作减法,字典也能使用
 
*减法运算符
数字的话,用作乘法
如果是字符串*N,会将N 个字符串连接起来
支持列表和元祖
 
///%运算符
 
/属于普通除法,得到的结果是与数学运算中的除法是一致的,比如10/3=3.333333333333333
//%需要一起来看,两者都是除法运算,但是区别的是取的值不同
比如:两个数相除,会得到一个商,还有一个余数,//取的是商,而%取的是余数
暂时无法在飞书文档外展示此内容
如果两个数中有浮点数,最终结果也是浮点数
 
**运算符
**运算符不仅可以实现次方运算,还可以间接地实现开方运算

2、赋值运算符

赋值运算符用来把右侧的值传递给左侧的变量(或者常量)
# 将值赋值给变量
old_age = 5

# 将变量的值赋值给另一个变量
age = old_age

# 将运算后的值赋值给变量
new_age = age + 1
而我们赋值还可以连续赋值,比如a=b=c=5
赋值我们要从右向左看,首先把5这个数值赋给c,所以c就等于5,然后又把c赋给了b,所以b也等于5,以此类推,a、b、c的值都等于5
 
而我们赋值之前也讲过,还可以对多变量进行同时赋值,我们这里在复习下
# 将值赋值给多个变量
a, b = 1, 2

# 给多种数据类型赋值给多个变量
c, d, e, f, = 1, 2.0, "字符串", True

# 给列表、元祖、集合、字典赋值
g, h, i, j = [1, 2, 3, 4], (1, 2, 3, 4), {1, 2, 3, 4}, {1: 1, 2: 2}

print(a, b, c, d, e, f, g, h, i, j)
上述属于最基本的赋值运算符,还有一些结合的运算符,我们来看下:
赋值运算符
作用
例子
等价于
=
基本的赋值运算
x = y
x = y
+=
加赋值
x += y
x = x + y
-=
减赋值
x -= y
x = x - y
*=
乘赋值
x *= y
x = x * y
/=
除赋值
x /= y
x = x / y
%=
取余数赋值
x %= y
x = x % y
**=
幂赋值
x **= y
x = x ** y
//=
取整数赋值
x //= y
x = x // y
我们通过代码来加深下印象
a, b, c, d, e, f, g = 1, 2, 3, 4, 5, 6, 7

a += 1
b -= 1
c *= 2
d /= 2
e %= 2
f **= 2
g //= 3

print(a, b, c, d, e, f, g)


# 输出结果
2 1 6 2.0 1 36 2
 
自己动手练习一下吧!
 
赋值运算符已经掌握,那我们day02-变量中的高级练习题中 a与b的值交换,不用临时变量是不是也可以做了
 
tips:如果我们变量没有赋值
n += 10 想想这种是否可以参与运算

3、比较运算符

在Python中,比较运算符用于比较两个值之间的关系,并返回一个布尔值(True或False)表示比较结果的真假
支持的比较运算符:
比较运算符
作用
>
大于,前者大于后者返回True,否则返回False
<
小于,前者小于后者返回True,否则返回False
==
等于,如果==两边的值相等,则返回 True,否则返回False
>=
大于等于,如果前面的值大>=后面的值,则返回 True,否则返回 False
<=
小于等于,如果前面的值<=等于后面的值,则返回 True,否则返回 False
!=
不等于,如果!=两边的值不相等,则返回 True,否则返回 False
is
判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False
is not
判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False
练习一下:
 
tips:那我们用is来比较一下呢
2 is 1 发现报错了
报错信息:语法警告(SyntaxWarning),is使用了字面值,你是否想用==
 
分析:is是用来判断变量引用的对象是否相同,而1和2都是整数,而整数呢,属于不可变数据类型,所以无法判断对象的是否相同,所以我们判断整数得用==
 
==is的区别
== 是用来判断两边的值是不是相等
is 用来判断两个变量对象是不是相等,也可以说,判断两个对象是否引用同一个内存地址,而在变量中我们学到,查看变量地址用到的是id()这个函数,所以is也可以当成 id(a) == id(b),如果地址相等,返回True
a = "hello"
b = "hello"
print(id(a))
print(id(b))
print(a is b)
print(a == b)

# 输出结果
# 2682889953328
# 2682889953328
# True
# True


a = [1, 2, 3]
b = [1, 2, 3]
print(id(a))   
print(id(b))   
print(a is b)  
print(a == b)  

# 输出结果
# 2581265316736
# 2581266649024
# False
# True

4、逻辑运算符

在我们上学时的数学学习中,学习过"且","或","非",而在我们Python中,也有类似的逻辑运算
逻辑运算符
含义
格式
作用
and
逻辑与运算,等价于"且"
a and b
当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假
or
逻辑或运算,等价于"或"
a or b
当a和b有一个为真, 则为真,都为假时才为假
not
逻辑非运算,等价于"非"
not a
如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反
而逻辑运算符经常与比较运算符结合使用
判断下边代码中返回True还是False
x = 5
y = 10

# 逻辑与(and)
print(x < 10 and y > 5)

# 逻辑或(or)
print(x < 10 or y < 5)

# 逻辑非(not)
print(not x < 10)


# 输出结果
# True
# True
# False
但是逻辑运算符并不都是会返回布尔类型
print(100 and 200)
print(100 or 200)
猜猜会返回什么
运行结果:
200
100
对于and运算符如下:
  • 如果第一个数为False,则直接返回第一个数
  • 如果第一个数为True,那返回第二个数
 
对于or运算符如下:
  • 如果第一个数为True,则直接返回第一个数
  • 如果第一个数为False,那返回第二个数
 
如果还不能太理解,我们可以分析下:
对于and符号,还是两边都为真,才会返回真;
如果有一个假,则就会返回假;
所以第一个数为假的话,就不用计算第二个数,肯定是假,直接返回第一个数了,而如果第一个数为真的话,还需要计算第二个数的值,所以把第二个数返回
 
同理or符号,只要有真就会返回真,第一个数为真那就直接返回,如果第一个数不为真,那值不确定,所以只能返回第二个数了

5、成员运算符

Python还支持成员运算符,具体如下
逻辑运算符
含义
格式
作用
in
如果在指定的序列中找到值返回 True,否则返回 False。
a in b
当 a存在于b中,返回真,否则为假
not in
如果在指定的序列中没有找到值返回 True,否则返回 False。
a not in b
当a不在b中, 则为真,否则为假
# 判断下边表达式返回True还是False
"hello" in "hello world"
"hello" not in "hello world"
[1, 2] in [1, 2, 3]
[1, 2] not in [1, 2, 3]
(1, 2) in (1, 2, 3)
(1, 2) not in (1, 2, 3)
{1, 2} in {1, 2, 3}
{1: 2} in {1: 2, 2: 3}

# 输出结果
# True
# Flase
# True
# Flase
# True
# Flase
# Flase
# 报错
集合为什么返回False,字典报错了,这个交给大家查询下

6、三元运算符

在Python中,三元运算符又称三目运算符,可以认为是条件判断的一种简单写法;
需要3个组成:1个是判断条件(返回True或者False)、1个是为真时的结果、1个是为假时的结果。
组成:为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)
在Python中,三目运算符会返回一个结果
 
我们用实例来学习下:
a = 5,b=10,使用三目运算符得出两数中的较大值
a, b = 5, 10
max_num = a if a > b else b
print(max_num)

# 输出结果 10
max_num = a if a > b else b这个如果a>b 成立就会返回真,那把a放到前边,否则就是假,那就会给到后边,所以把b放到后边,然后赋值给max_num

7、运算符优先级

这个可以看这篇文章Python基础 - 运算符优先级

day03练习

初级:
1.编写一个程序,要求用户输入两个整数,用+,-,*,/,//,%,**符号计算并输出结果
2.给定两个变量a和b的初始值为5和3,使用赋值运算符计算并输出以下表达式的结果:
  • a += b
  • a -= b
  • a *= b
  • a /= b
  • a %=b
  • a **=b
  • a //=b
3.编写一个程序,接受用户输入的两个数字分别赋值给变量a和b,
  1. 判断a是否为正数,如果是正数,返回True,否则返回False
  2. 判断a和b是否相等,如果相等,返回"相等",否则返回"不相等"
  3. 判断a和b的和是否大于等于18,如果大于等于,返回True,否则返回Flase
4.编写一个程序,接受用户输入的一个数字,并判断它是否大于10且小于20。如果是返回"符合",不是就返回"不符合"
 
中级:
1.编写一个程序,接受用户输入的两个数字,并使用赋值运算符实现变量交换,然后输出交换后的结果
2.编写一个程序,接受用户输入的一个正整数,并判断它是否为偶数。如是偶数返回True,是奇数返回False
3.编写一个程序,接受用户输入的一个字符串,并判断它是否包含字母 "a" 或 "b"。如果包含返回True,否则返回False
4.编写一个程序,接受用户输入的一个年份,并判断它是否为闰年且大于2000年(闰年条件:能被4整除且不能被100整除,或者能被400整除),如果符合条件,输出"是闰年且大于2000年",不符合条件,输出"不符合条件"
 
高级:
1.编写一个程序,要求用户输入1个整数,使用三目运算符判断这个整数是奇数还是偶数,如果奇数返回"奇数",如果是偶数,返回"偶数"。
2.编写一个程序,接受用户输入的一个三位数,并计算它的百位、十位和个位数字之和。并打印输出结果
3.编写一个程序,接受用户输入的一个三位数,判断该数是否为水仙花数(水仙花数指一个三位数,其各个位上数字的立方和等于该数本身)。
4.编写一个程序,有列表[1,2,3,4,5,6,7,8,9]和一个整数8,并判断该整数是否在列表的前半部分,且列表长度大于5