Python运算符
1. 什么是运算符
- 举个简单的例子 3 + 3 = 6 。 其中,3 被称为操作数,”+“ 称为运算符
2. Python有哪些类型的运算符?
【算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符、位运算符、成员运算符、身份运算符】
看似很多,实际工作中常用的不多,不用慌2-1. 算数运算
所谓算数运算,就是我们从小学的 ‘加减乘除’。不过不再是我们自己算,而是让计算机去算。
举个栗子:例如创建变量a = 10, b = 20, c = ‘Hello’;Python中是如何进行计算的呢?
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
+ | 加 | 两个对象相加; | a + b 输出结果 30 |
- | 减 | 得到负数;或是两个变量相减 | a - b 输出结果 -10 |
* | 乘 | 两个数相乘;或是返回一个被重复若干次的字符串 | a b 输出结果 200; c2 输出结果为“HelloHello” |
/ | 除 | 两个数字相除 | b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
% | 取余 | 返回除法的余数 | b % a 输出结果 0 |
** | 指数 | a**b 为10的20次方, | a**b 输出结果 100000000000000000000 |
有点懵?直接上代码,一目了然
需求:商品单价5元,买了3件,领了一个2元的优惠劵,有商城8折会员,问实付多少钱
unit_price = 5 # 单价
amount = 3 # 数量
coupon = 2 # 优惠劵
value=0
value = (unit_price*amount - coupon) * 0.8
print(value)
# 执行结果10.4
2-2. 赋值运算符
什么是赋值?
=,就表示赋值。例如:
a = 10,就是把10给到a;
b = a, 就是把a的值给到b;简而言之,就是=右边的值,给到等号左边的变量名
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 = 100
b = 200
b += a # 这句等价于 b = b+a,也就是说,b = 200+100, 结果为b=300;
print(b)
# 执行结果为 300
实际运用,常和循环相结合,做计算。后面会详细讲到
拓展:
海象运算符,表达式为” := “,可在表达式内部为变量赋值。是Python3.8 版本新增运算符。
目前公司在Python版本多数在3.6及以下。暂时还用不到。可以研究研究,很pythonic。节省了不少代码。
2-3. 比较运算符
简单理解,就是小学学的比较大小;比较两个变量的值,注意是“值”
例如:假设 a = 10, b = 20
运算符 | 描述 | 实例 |
---|---|---|
== | 等于(比较对象值是否相等) | (a == b) 返回 False。 |
!= | 不等于(比较两个对象的值是否不相等) | (a != b) 返回 True。 |
> | 大于(返回x是否大于y) | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。 | (a < b) 返回 True。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
- 所有比较运算符返回True表示真,返回False表示假。
- 常常和判断语句(if)相结合使用,后面会详细了解
2-4. 成员运算符与身份运算符
- 成员运算符,顾名思义就是,一个变量是否是指定变量的成员。 | 运算符 | 描述 | 实例 | | :—- | :—- | :—- | | in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 | | not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
例如,判断一下宋江是不是梁山好汉;潘金莲是不是梁山好汉
梁山好汉 = ['宋江', '林冲', '卢俊义', '关胜', '扈三娘']
print('宋江' in 梁山好汉) # True, 宋江在梁山好汉这个变量中
print('潘金莲' in 梁山好汉) # Flase, 潘金莲不在梁山好汉这个变量中
身份运算符,顾名思义,就是是不是同一个内存地址 | 算符 | 描述 | 实例 | | :—- | :—- | :—- | | is | is 是判断两个变量名是不是引用自一个对象,或者说两个变量内存地址是不是一样 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False | | is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
id() 函数用于获取对象内存地址。
经典面试题:聊聊 is 和 == 的区别
2-5. 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔”与”:如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔”或”:如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔”非”:如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
Python类型转换
其实前面不知不觉中已经用过,上一篇输入时,input()函数输入的是字符串,我们需要的是数字类型,是这样写的:age = int(input())
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个 (key, value)元组序列。 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
不用记,了解即可。int(),float(),str()