<Python的运算符>——《Python》

目录

1.算术运算符

2.关系运算符 

3.逻辑运算符 

4.赋值运算符 


1.算术运算符

像 + - * / % ** // 这种进行算术运算的运算符 , 称为 算术运算符
注意 1 : / 中不能用 0 作为除数 . 否则会 抛出异常
print(10 / 0)

异常 是编程语言中的一种常见机制, 表示程序运行过程中, 出现了一些 "意外情况", 导致程序不能继续往下执行了.

注意 2: 整数 / 整数 结果可能是小数 . 而不会截断
print(1 / 2)

注意 3: % 不是 " 百分数 ", 而是求余数 .
print(7 % 2)
7 除以 2 , 商是 3 , 余数是 1.

注意 4: ** 是求乘方 . 不光能算整数次方 , 还能算小数次方 .
print(4 ** 2)
print(4 ** 0.5)

注意 5: // 是取整除法 ( 也叫地板除 ). 整数除以整数 , 结果还是整数 ( 舍弃小数部分 , 并向下取整 . 不是四舍五 )
print(7 // 2)
print(-7 // 2)

2.关系运算符 

像 < <= > >= == != 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系.

其中
  • <= "小于等于"
  • >= "大于等于"
  • == "等于"
  • != "不等于"

(1) 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False

a = 10
b = 20

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

(2) 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较

a = 'hello'
b = 'world'

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

注意 :
直接使用 == 或者 != 即可对字符串内容判定相等 . ( 这一点和 C / Java 不同 ).
字符串比较大小 , 规则是 " 字典序 "
关于字典序 :
想象一个英文词典 , 上面的单词都是按照字母顺序排列 . 如果首个字母相同 , 就比较第二个字母 . ( 就比如著名单词 abandon).
我们认为一个单词在词典上越靠前 , 就越小 . 越靠后 , 就越大.

(3) 对于浮点数来说 , 不要使用 == 判定相等 .
print(0.1 + 0.2 == 0.3)

注意 : 浮点数在计算机中的表示并不是精确的 ! 在计算过程中 , 就容易出现非常小的误差 .
print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)
 
可以看到 , 0.1 + 0.2 的结果并非是 0.3 , 而是带了个小尾巴 . 虽然这个尾巴非常小了 , 但是 == 是锱铢必较的, 仍然会导致 == 的结果为 False.
不止是 Python 如此 , 主流编程语言都是如此 . 这个是 IEEE754 标准规定的浮点数格式所引入的问题. 此处我们不做过多讨论。

正确的比较方式 : 不再严格比较相等了 , 而是判定差值小于允许的误差范围 .
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

实际工程实践中, 误差在所难免, 只要保证误差在合理范围内即可 .

3.逻辑运算符 

像 and or not 这一系列的运算符称为 逻辑运算符.

and 并且 . 两侧操作数均为 True, 最终结果为 True. 否则为 False. ( 一假则假 )
or 或者 . 两侧操作数均为 False, 最终结果为 False. 否则为 True. ( 一真则真 )
not 逻辑取反 . 操作数本身为 True, 则返回 False. 本身为 False, 则返回 True.
a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)

一种特殊写法
a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同 .

关于短路求值
和其他编程语言类似 , Python 也存在短路求值的规则 .
对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行 .
对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行 .
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

上述代码没有抛出异常, 说明右侧的除以 0 操作没有真正执行.

4.赋值运算符 

(1) = 的使用
= 表示赋值 . 这个我们已经用过很多次了 . 注意和 == 区分 .
= 除了基本的用法之外 , 还可以同时针对多个变量进行赋值 .

链式赋值     a = b = 10

 

多元赋值   a , b = 10 , 20
代码实例 : 交换两个变量
基础写法:
a = 10
b = 20

tmp = a 
a = b 
b = tmp
基于多元赋值

 

a = 10
b = 20
a, b = b, a

 

(2) 复合赋值运算符

Python 还有一些 复合赋值运算符 . 例如 += - = *= /= %=
其中 a += 1 等价于 a = a + 1 . 其他复合赋值运算符也是同理 .
 
a = 10
a = a + 1
print(a)

b = 10
b += 1
print(b)
注意: C++ / Java , 存在 ++ -- 这样的自增 / 自减运算符 . Python 中则不支持这种运算 . 如果需要使用 , 则直接使用 += 1 或者 - = 1
++ -- 最大的问题就是容易分不清前置和后置的区别 . 这一点 Python 语法在设计的时候就进行了规避, 避免出现这种不直观 , 并且容易混淆的语法 .

 

 

其他 ...
除了上述之外 , Python 中还有一些运算符 , 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符 ( & | ~ ^ << >>) 等 .
此处暂时不介绍 .
题目练习:
(1) [ 多选 ] 以下关于变量之间加法运算的说法 , 正确的是 :(ACD)
A. Python 中的字符串之间够能相加 .
B. Python 中的字符串可以和整数相加 .
C. Python 中的整数可以和浮点数相加 .
D. Python 中的整数可以和布尔值相加 .

 

 说明:整数与bool值相加,但这样的操作没有意义!

 

 

(2) [ 单选 ] 以下关于类型的说法 , 正确的是 :   (D)
A. Python 中既有字符串类型 , 也有字符类型 .
B. Python 中既有 float, 也有 double.
C. Python 中既有 int, 也有 long
D. Python 中的整数表示范围无上限 .
(3) [ 单选 ] 以下 Python 代码 , 合法的是(B)
A. int a = 10
B. a = 10 ;
C. a = true
D. a = 'aaa' + 10

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Python中常见的运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等。其中,算术运算符用于执行基本的数学运算,如加减乘除等。赋值运算符用于将一个值赋给一个变量。比较运算符用于比较两个值的大小关系。逻辑运算符用于连接多个条件,并根据条件的结果返回布尔值。位运算符用于对二进制数据进行操作。此外,Python还提供了三目运算符,它可以根据条件的结果返回不同的值。综上所述,Python提供了丰富的运算符来满足不同的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python基础语法——运算符](https://blog.csdn.net/weixin_74093130/article/details/127350435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python运算符](https://blog.csdn.net/m0_56331594/article/details/122682736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值