Python 基础语法详解(三)

news2024/9/20 21:38:09

Python 基础语法详解(三)

    • Python 运算符
      • Python 算术运算符
        • ①理论讲解:
        • ②实操讲解:
      • Python 比较运算符
        • ①理论讲解:
        • ②实操讲解:
      • Python 赋值运算符
      • Python 位运算符
        • ①理论讲解:
        • ②实操讲解:
      • Python 逻辑运算符
        • ①理论讲解:
        • ②实操讲解:
      • Python 成员运算符
        • ①理论讲解:
        • ②实操讲解:
      • Python 身份运算符
        • ①理论讲解:
        • ②实操讲解:
      • 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&b0000 1100
ab
a^b0011 0001
~a1100 0011
a<<21111 0000
a>>20000 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,互相学习,共同进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1808686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM学习-JVM运行时参数

JVM参数选项 标准参数选项 特点 稳定&#xff0c;后续版本不会变化以【-】开头 各种选项 运行java或者java -help可以看到所有的标准选项 补充内容 -server&#xff1a;64位机器上只支持Server模式的JVM&#xff0c;适用于需要大内存的应用程序&#xff0c;默认用并行垃圾回…

【微信小程序】事件传参的两种方式

文章目录 1.什么是事件传参2.data-*方式传参3.mark自定义数据 1.什么是事件传参 事件传参:在触发事件时&#xff0c;将一些数据作为参数传递给事件处理函数的过程&#xff0c;就是事件传参 在微信小程序中&#xff0c;我们经常会在组件上添加一些自定义数据&#xff0c;然后在…

【前端】使用window.print() 前端实现网页打印详细教程(含代码示例)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

云服务平台仿真-身份认证/授权/申请和释放IT资源[云计算3]

实验名称 云服务平台仿真--身份认证/授权/申请和释放IT资源 实验目的 通过CloudSim仿真&#xff0c;熟悉云服务平台的构建。通过CloudSim仿真&#xff0c;熟悉各种云机制在云服务中的实现原理。 实验原理 CloudSim可以模拟云服务的各类底层方法。在省略技术细节的前提下&a…

tkinter菜单栏

tkinter菜单栏 菜单栏效果代码 菜单栏 在 Tkinter 中&#xff0c;Menu 组件用于创建菜单栏、下拉菜单和上下文菜单&#xff0c;是构建图形用户界面&#xff08;GUI&#xff09;应用程序的常见需求。 效果 代码 import tkinter as tk from tkinter import messagebox# 创建主…

linux安装jdk + docker+dockercompose+aliyunACR

下载安装包 链接&#xff1a;https://pan.baidu.com/s/1AyFvPA5qwy4IxfZoTQohrQ 提取码&#xff1a;6666 安装jdk jdk-8u411-linux-x64.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1BZ7J4L5PY-9nuQyxBMDGTA 提取码&#xff1a;6666 1、解压jdk tar -xvf jdk-8u411-li…

上市公司短视主义数据集(2001-2022年)

数据简介&#xff1a;上市公司短视主义是指公司管理层过于关注短期业绩和股价表现&#xff0c;而忽视公司的长期发展和战略规划。这种短视行为可能会导致公司投资决策的失误&#xff0c;影响公司的长期竞争力。 在上市公司年度报告年度中&#xff0c;通过已有的反映管理者“短…

SpringBoot的Mybatis-plus实战之基础知识

文章目录 MybatisPlus 介绍一、MyBatisPlus 集成步骤第一步、引入依赖第二步、定义mapper 二、注解TableNameTableldTableField 三、配置文件四、加解密实现步骤 在SpringBoot项目中使用Mybatis-plus&#xff0c;记录下来&#xff0c;方便备查。 MybatisPlus 介绍 为简化开发而…

C语言 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一.配置开发环境 二…

晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册

晨控CK-UR12-E01与欧姆龙NX/NJ系列EtherNet/IP通讯手册 晨控CK-UR12-E01 是天线一体式超高频读写器头&#xff0c;工作频率默认为902MHz&#xff5e;928MHz&#xff0c;符合EPC Global Class l Gen 2&#xff0f;IS0-18000-6C 标准&#xff0c;最大输出功率 33dBm。读卡器同时…

41 mysql subquery 的实现

前言 sub query 是一个我们经常会使用到的一个 用法 我们这里 看一看各个场景下面的 sub query 的相关处理 查看 本文, 需要 先看一下 join 的相关处理 测试数据表如下, 两张测试表, tz_test, tz_test03, 表结构 一致 CREATE TABLE tz_test (id int(11) unsigned NOT NUL…

HTML静态网页成品作业(HTML+CSS)—— 名人霍金介绍网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

千万别买BBA 有40万+预算冲它就对了

文 | Auto芯球 作者 | 擎天 如果现在买BBA 不是纯纯大冤种吗&#xff1f; 有钱就无脑冲M9啊 不然肯定会后悔 这话说给所有有40万预算的朋友听 别不信 今天我才看到一组数据 从4月29号到6月2号 短短五周时间 问界M9就卖了1.82万辆 在40万以上的国产车中遥遥领先 比…

ChatTTS改良版 - 新增精选高品质音色,新增超长文本推理,新增api接口

这个版本是ChatTTS的一个分支&#xff0c;基于ChatTTS修改&#xff0c;由6drf21e大佬改良&#xff0c;大佬GitHub地址 GitHub - 6drf21e/ChatTTS_colab: &#x1f680; 一键部署&#xff08;含离线整合包&#xff09;&#xff01;基于 ChatTTS &#xff0c;支持音色抽卡、长音频…

港中文斯坦福提出SD加速模型PCM,一步即可生成图像和视频,可直接与SD1.5,SDXL,AnimateLCM结合!

又有新的SD加速模型可以用了&#xff0c;PCM解决了原来LCM模型的各种问题。并且对 AnimateLCM 也做了优化&#xff0c;用PCM直接生成动画也可以保证质量了。 PCM从这三个角度说明了LCM的设计空间是有限的并很好地解决了这些限制。 PCM主要改善了三个LCM原有的问题&#xff1a;…

【Labview】通过串口通信从上位机读取和写入数据

最近博主需要通过Labview的上位机控制一个温控仪表&#xff0c;主要实现在上位机读取实时温度和设定的目标温度&#xff0c;以及通过上位机设定目标温度。这里将其中遇到的问题和心得分享给大家&#xff0c;博主自己也做一个记录。 由于温控仪表采用的485通讯&#xff0c;modb…

阿里云邮件推送服务配置教程:怎么做批发?

阿里云邮件推送的API配置步骤&#xff1f;配置教程有哪些步骤&#xff1f; 阿里云邮件推送服务凭借其高并发、稳定性强和安全性高等特点&#xff0c;成为众多企业的首选。Aok将详细介绍如何使用阿里云邮件推送服务进行批发配置&#xff0c;并简要提及AokSend的优势。 阿里云邮…

DeepSORT(目标跟踪算法)中的数值表格与调参的关系

DeepSORT&#xff08;目标跟踪算法&#xff09;中的数值表格与调参的关系 flyfish DeepSORT&#xff08;目标跟踪算法&#xff09;中的马氏距离详解&#xff08;很详细&#xff09; DeepSORT&#xff08;目标跟踪算法&#xff09;中 可以设置阈值进行异常检测或目标跟踪的原…

Xilinx(AMD) vivado对FPGA网表文件进行功能仿真的方法

1 概述 在FPGA开发中很多商用IP核出于知识产权保护的目的&#xff0c;不提供源代码&#xff0c;而是提供综合后的FPGA网表。由于没有源代码&#xff0c;也无法对网表文件直接进行仿真的操作来验证功能&#xff0c;此时需要独立的仿真模型文件。 本文介绍在Xilinx(AMD) vivado软…

阻塞队列和线程池

一、什么是阻塞队列 1.1 什么是队列 队列是先进先出。 队列是一种特殊的线性表&#xff0c;特殊之处在于它只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;进行插入操作&#xff0c;和栈一样&#xff0c;队…