Python 基础语法详解(三)

Python 运算符

Python 算术运算符

①理论讲解:

下表假设变量: a=10,b=20:

请添加图片描述
②实操讲解:
#coding=utf-8
# __author__ = 帅小柏

a, b = 21, 10
print("a=", a, "b=", b)
print("a + b的值为:", a + b)
print("a - b的值为:", a - b)
print("a * b的值为:", a * b)
print("a / b的值为:", a / b)
print("a % b的值为:", a % b)
print("2**3的值为:", 2**3)
print("10//2的值为:", 10//2)
请添加图片描述

温馨小提示

  1. Python中除法结果向后精确一位;
    在这里插入图片描述
  2. 除(/)和取模(%)运算符经常一起使用,会有很多有趣的操作哦~

Python 比较运算符

(False 虚假的,假的;True 真实的,真的)

①理论讲解:

下表假设变量: a=10,b=20:

在这里插入图片描述

拓展:字符串之间的比较运算

  1. 大写字母 < 小写字母
  2. 数字: 1 < 2 < 3…
  3. 字母: a < b < c…
    (核心就是字母间按对应 ASCII 码大小进行比较;数字按大小进行比较)
②实操讲解:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏

a = "1ab"
b = "1abc"
print(a < b)
在这里插入图片描述

Python 赋值运算符

在这里插入图片描述

Python 位运算符

①理论讲解:

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

在这里插入图片描述
②实操讲解:

实操一

下表中变量 a 为 60,b 为 13,对应二进制格式如下:

a = 0011 1100

b = 0000 1101

运算 结果
a&b 0000 1100
a b
a^b 0011 0001
~a 1100 0011
a<<2 1111 0000
a>>2 0000 1111

实操二

# -*- coding: utf-8 -*-
# __author__ = 帅小柏

def decInt2Bin(string_num):
    num = int(string_num)
    if (num < 0):
        num = abs(num) ^ 0xFF - 1
    result = bin(num)[2:]
    return result.zfill(8)

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
print('dec:a=', a, 'bin:a=', decInt2Bin(a))
print('dec:b=', b, 'bin:b=', decInt2Bin(b))
print('dec:a&b=', a & b, 'bin:a&b=', decInt2Bin(a & b))
print('dec:a|b=', a | b, 'bin:a|b=', decInt2Bin(a | b))
print('dec:a^b=', a ^ b, 'bin:a^b=', decInt2Bin(a ^ b))
print('dec:a<<2=', a << 2, 'bin:a<<2=', decInt2Bin(a << 2))
print('dec:a>>2=', a >> 2, 'bin:a>>2=', decInt2Bin(a >> 2))
print('dec:~a=', ~a, 'bin:~a=', decInt2Bin(~a))  # -61 = 1100 0011


Python 逻辑运算符

①理论讲解:
运算符 描述
与(and) 连接的两个条件,如果都满足,就返回 True,如果有一个不满足就返回 False
或(or) 连接的两个条件,如果两个条件有一个满足,就返回 True
非(not) 取反

注意:对于数值,Python 认为非 0 表示 True,0 表示 False!

②实操讲解:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏

a, b = 10, 20

if (a and b):
    print("1 - 变量 a 和 b 都为 true")
else:
    print("1 - 变量 a 和 b 有一个不为 true")

if (a or b):
    print("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
    print("2 - 变量 a 和 b 都不为 true")

# 修改变量 a 的值
a = 0
if (a and b):
    print("3 - 变量 a 和 b 都为 true")
else:
    print("3 - 变量 a 和 b 有一个不为 true")

if (a or b):
    print("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
    print("4 - 变量 a 和 b 都不为 true")

if not (a and b):
    print("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
    print("5 - 变量 a 和 b 都为 true")


Python 成员运算符

①理论讲解:

除了以上的一些运算符之外,Python 还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表以及元组。

在这里插入图片描述
②实操讲解:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏

a = 10
b = 20
list = [1, 2, 3, 4, 5]

if (a in list):
    print("1 - 变量 a 在给定的列表中 list 中")
else:
    print("1 - 变量 a 不在给定的列表中 list 中")

if (b not in list):
    print("2 - 变量 b 不在给定的列表中 list 中")
else:
    print("2 - 变量 b 在给定的列表中 list 中")

# 修改变量 a 的值
a = 2
if (a in list):
    print("3 - 变量 a 在给定的列表中 list 中")
else:
    print("3 - 变量 a 不在给定的列表中 list 中")


Python 身份运算符

①理论讲解:

身份运算符用于比较两个对象的存储单元是否引用自一个对象

在这里插入图片描述

知识点补给站

身份运算符是通过判断内存地址(即 id)是否相等来进行比较的~

②实操讲解:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏

a, b = 20, 20

print("a is b:", a is b)
print("id(a) == id(b):", id(a) == id(b))
b = 30
print("a is b:", a is b)
print("a is not b:", a is not b)
在这里插入图片描述

不过上面这个实例一出,可能有些有其它语言底子的同学会有所疑问—为什么变量 a 和变量 b 我们是单独赋予的值,但是它俩的 id 一样呢!

这里就涉及到了 Python 内存池这一知识点,此处我就先简单讲解一下,让大家好解决上述这个疑问:

a = 1
b = 1
id(a)       输出为:1402582080
id(b)       输出为:1402582080

结论:Python 中有个自带的内存池,数值比较小的值已经在这个内存池中定义好了,那么我们创建的时候,就直接指向了内存池当中的这个内存空间。

拓展—is 与 == 区别

is 用于判断两个变量引用对象是否为同一个,== 用于判断引用变量的值是否相等。

【可能,我是说可能啊,有些许小伙伴不是很能理解下面这几行代码,后面我会出一篇专门讲解关于 Python 深浅复制的文章,莫着急~】

>>> a = [1, 2, 3] 
>>> b = a 
>>> b is a 
True 
>>> b == a 
True 
>>> b = a[:] 
>>> b is a 
False 
>>> b == a 
True

Python 运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:(一元加号和减号就是俗称的正负号~)

在这里插入图片描述

注意事项

  1. 相同等级的运算顺序为从左到右
  2. 可以使用括号改变运算顺序
  3. 三大逻辑运算符分优先级:not > and > or
  4. 整数除整数,运算结果为小数(重要知识点,需牢牢记住!)

欢迎通过点击关注下公众号【帅小柏】,加入我们的 Python 大家庭,共同学习进步(非诚勿扰)。

加入我们,一起学习 Python,互相学习,共同进步。

相关推荐

  1. Python 基础语法详解(二)

    2024-06-10 16:24:03       11 阅读
  2. Python基础知识详解

    2024-06-10 16:24:03       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 16:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 16:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 16:24:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 16:24:03       20 阅读

热门阅读

  1. 线程安全应用:

    2024-06-10 16:24:03       8 阅读
  2. 01-今日课程介绍

    2024-06-10 16:24:03       10 阅读
  3. 软件测试之黑盒测试与白盒测试

    2024-06-10 16:24:03       13 阅读
  4. 在WSL2的Ubuntu中安装和使用Docker/Podman

    2024-06-10 16:24:03       8 阅读
  5. [AIGC] 图论在LeetCode算法题中的应用

    2024-06-10 16:24:03       11 阅读
  6. 6_1 Linux 用户管理

    2024-06-10 16:24:03       8 阅读
  7. Migrate a WordPress database using MariaDB to another server

    2024-06-10 16:24:03       11 阅读
  8. Linux

    2024-06-10 16:24:03       9 阅读
  9. K8s 集群高可用master节点ETCD全部挂掉如何恢复?

    2024-06-10 16:24:03       14 阅读