Python基础——运算符

116 阅读7分钟

Python基础——运算符

前言

在前几节课中,我们已经了解了Python中的变量和数据类型。接下来,我们将深入探讨如何使用这些变量进行运算。今天的重点是Python中的**「运算符」**。

运算符是编程语言中用于执行操作的特殊符号。它们允许我们对变量和数据进行各种操作,如加减乘除、比较大小、逻辑判断等。理解和掌握运算符的使用是编写有效Python代码的基础。

1. 算术运算符

算术运算符是我们最常用的一类运算符,用于进行基本的数学运算。Python支持以下算术运算符:

运算符描述示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
//取整除a // b
%取余数a % b
**a ** b

「说明」

  • /用于两个数相除。
  • //用于取整除,结果为除法的整数部分。
  • %用于取余数,结果为除法的余数。
  • **用于计算幂,即ab次方。

「注意」

  • 「使用/进行除法时,结果总是浮点数,即使两个操作数都是整数。」

示例代码:

a = 10
b = 3

print(a + b)  # 输出: 13
print(a - b)  # 输出: 7
print(a * b)  # 输出: 30
print(a / b)  # 输出: 3.3333333333333335
print(a // b) # 输出: 3
print(a % b)  # 输出: 1
print(a ** b) # 输出: 1000

2. 赋值运算符

赋值运算符用于将一个值赋给一个变量。最常见的赋值运算符是=,除此之外,还有复合赋值运算符,用于在赋值的同时进行运算。

运算符描述示例
=赋值x = 5
+=加后赋值x += 2
-=减后赋值x -= 1
*=乘后赋值x *= 3
/=除后赋值x /= 6
//=取整除后赋值x //= 2
%=取余后赋值x %= 2
**=幂后赋值x **= 2

「说明」

  • =用于简单赋值,将右侧的值赋给左侧的变量。
  • +=等复合运算符在赋值的同时进行运算,如x += 2等价于x = x + 2

示例代码:

x = 5
x += 2  # 相当于 x = x + 2
print(x)  # 输出: 7

x -= 1  # 相当于 x = x - 1
print(x)  # 输出: 6

x *= 3  # 相当于 x = x * 3
print(x)  # 输出: 18

x /= 6  # 相当于 x = x / 6
print(x)  # 输出: 3.0

3. 比较运算符

比较运算符用于比较两个值,并返回布尔值(True或False)。常用的比较运算符有:

运算符描述示例
==等于a == b
!=不等于a != b
>大于a > b
<小于a < b
>=大于等于a >= b
<=小于等于a <= b

「注意事项」

  • ===不同,==用于比较相等,而=用于赋值。
  • 当比较不同类型的变量时,要注意可能的**「类型转换」**及其带来的影响(类型转换可以查看上一篇文章)。

示例代码:

a = 10
b = 20

print(a == b)  # 输出: False
print(a != b)  # 输出: True
print(a > b)   # 输出: False
print(a < b)   # 输出: True
print(a >= b)  # 输出: False
print(a <= b)  # 输出: True

4. 逻辑运算符

逻辑运算符用于对布尔值进行操作。Python支持以下逻辑运算符:

运算符描述示例
and与运算x and y
or或运算x or y
not非运算not x

「说明」

  • and运算符:只有当两个操作数都为True时,结果才为True。
  • or运算符:只要有一个操作数为True,结果就为True。
  • not运算符:用于取反,将True变为False,False变为True。

「注意事项」

  • 逻辑运算符通常用于控制流中,如条件语句、循环等。
  • andor运算符是**「短路运算符,如果第一个操作数已经决定了结果,就不会计算第二个操作数。」**

示例代码:

x = True
y = False

print(x and y)  # 输出: False
print(x or y)   # 输出: True
print(not x)    # 输出: False

5. 身份运算符(暂时了解)

身份运算符用于比较两个对象的内存地址,即判断两个对象是否为同一对象。Python支持以下身份运算符:

运算符描述示例
is判断是否为同一个对象a is b
is not判断是否不是同一个对象a is not b

「说明」

  • is运算符用于判断两个变量是否引用同一个对象。
  • is not用于判断两个变量是否引用不同的对象。

「注意事项」

  • isis not运算符常用于比较对象的身份,而不是值的相等性。
  • 即使两个变量的值相同,也可能不是同一个对象。

示例代码:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)     # 输出: True
print(a is c)     # 输出: False
print(a is not c) # 输出: True

6. 成员运算符(暂时了解即可)

成员运算符用于测试一个值是否在序列中。Python支持以下成员运算符:

运算符描述示例
in如果在序列中找到值,则为True3 in numbers
not in如果在序列中没有找到值,则为True6 not in numbers

「说明」

  • in运算符用于检查元素是否在序列(如列表、元组、字符串等)中。
  • not in用于检查元素是否不在序列中。

「注意事项」

  • 成员运算符非常适合用于检查集合、列表或字符串中的成员资格。
  • 检查字符串时,注意大小写敏感性。

示例代码:

numbers = [1, 2, 3, 4, 5]

print(3 in numbers)     # 输出: True
print(6 in numbers)     # 输出: False
print(6 not in numbers) # 输出: True

7. 位运算符

位运算符用于对整数进行二进制位级别的操作。Python支持以下位运算符:

运算符描述示例
&按位与运算符a & b
``按位或运算符a | b
^按位异或运算符a ^ b
~按位取反运算符~a
<<左移运算符a << 2
>>右移运算符a >> 2

「说明」

  • &:按位与运算符,对应位都为1则为1,否则为0。
  • |:按位或运算符,对应位只要有一个为1则为1。
  • ^:按位异或运算符,对应位不同则为1,否则为0。
  • ~:按位取反运算符,所有位取反。
  • <<:左移运算符,按位左移指定的位数。
  • >>:右移运算符,按位右移指定的位数。

「注意事项」

  • 位运算符通常用于底层编程或处理特定的二进制数据。

示例代码:

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101

print(a & b)  # 输出: 12  = 0000 1100
print(a | b)  # 输出: 61  = 0011 1101
print(a ^ b)  # 输出: 49  = 0011 0001
print(~a)     # 输出: -61 = 1100 0011
print(a << 2) # 输出: 240 = 1111 0000
print(a >> 2# 输出: 15  = 0000 1111

在实际编程中,位运算符多用于底层开发或处理特定的二进制数据。

实际应用

运算符在日常编程中有广泛的应用。下面我们来看几个实际例子。

1. 计算折扣价格

假设我们在开发一个电商平台,需要计算商品在打折后的价格:

original_price = 100.0
discount_rate = 0.8  # 20%折扣

discounted_price = original_price * discount_rate
print("折后价格:", discounted_price)  # 输出: 折后价格: 80.0

2. 判断用户输入的数字是否为偶数

我们可以使用取余运算符%来判断一个数字是否为偶数:

num = int(input("请输入一个整数: "))

if num % 2 == 0:
    print(f"{num} 是偶数")
else:
    print(f"{num} 是奇数")

3. 判断用户的年龄是否符合特定范围

使用比较运算符来判断用户的年龄是否在18到60岁之间:

age = int(input("请输入你的年龄: "))

if 18 <= age <= 60:
    print("你的年龄在18到60岁之间")
else:
    print("你的年龄不在18到60岁之间")

总结

通过本篇文章,我们了解了Python中的各种运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、身份运算符、成员运算符和位运算符,并举了一些实际应用的例子。掌握这些运算符的使用是编写有效Python代码的基础。在编程中,合理使用这些运算符可以使我们的代码更加简洁、高效。

在接下来的课程中,我们将进一步探讨Python中的控制结构,如条件判断和循环。希望大家继续保持学习的热情,如果有任何疑问或想法,欢迎在评论中交流~

参考资料:

  • 《Python编程:从入门到实践》
  • 《Python基础教程》

如果文章有错误的地方,欢迎指正!大家可以互相交流学习。如果你想获取更多的Python资源和**「相关书籍」,可以「关注微信公众号:全端工程师」**