当前位置: 首页 > news >正文

Python运算符、函数与模块和程序控制结构

给我家憨憨写的python教程

——雁丘

Python运算符、函数与模块和程序控制结构

  • 关于本专栏
  • 一 运算符
    • 1.1 位运算符
      • 1.1.1 按位取反
      • 1.1.2 按位与
      • 1.1.3 按位或
      • 1.1.4 按位异或
      • 1.1.5 左移位
    • 1.2 关系运算符
    • 1.3 运算顺序
    • 1.4 运算方向
  • 二 函数与模块
    • 2.1 内建函数
    • 2.2 库函数
      • 2.2.1 标准库函数
      • 2.2.3 第三方库
    • 2.3 包
    • 2.4 标识符
      • 2.4.1 标识符命名的规则
      • 2.4.2 标识符命名的常用方法
  • 三 程序控制结构

关于本专栏

关于Python安装与环境变量配置请查看本专栏文章Python安装与环境变量配置傻瓜式教程(2023年9月)

关于Pycharm的安装部署和基本使用请查看本专栏文章Python解释器和Pycharm的傻瓜式安装部署

一 运算符

Pyihon 提供了四种类型的运算符:算术运算符、位运算符、关系运算符、逻辑运算符。Python 可以处理很大的数,这一特点常常可以降低程序设计的难度。

Pyihon 运算符
类别运算符功能说明优先级目数
/()括号改变运算顺序0/
算术运算符**乘方一般省略不写1双目
+正号一般省略不写2单目
-负号-102
位运算符~按位取反~x=-(x+1)3
算术运算符*乘号4双目
/除号4
//整除5//2=24
%取余5%2=14
+加号5
-减号5
位运算符<<左移位16<<4=16*2*2*2*27双目
>>右移位16>>3=16/2/2/2
&64&15=0
|64|15=79
^异或64^15=78
关系运算符<小于8双目
>大于
<=小于等于
>=大于等于
==等于
!=不等于
逻辑运算符not9双目
and10
or11

1.1 位运算符

位运算就是按整数的二进制位进行的运算,运算对象必须是标准的charint数据类型。

在这里插入图片描述

1.1.1 按位取反

按位取反是对操作数的各位二进制值取反,即0变1,1变0。得到原码的反码。
例如:5按位取反结果为-6
~00000101        /十进制 5/
  11111010      /十进制-6(二进制为补码)/

按位取反的出现与计算机中负数的表示有关

1.1.2 按位与

按位与是双目运算符,参加运算的两个操作数按二进制位进行“与”运算。类似于数学中“交集”。例如:15&3的结果为3。
  00001111
&00000011
  00000011

1.1.3 按位或

按位或是双目运算符,参加运算的两个操作数按二进制位进行“或”运算。类似于数学中“并集”。例如:15|32的结果为47。
  00001111
|00100000
  00101111

1.1.4 按位异或

按位异或也是双目运算符,参加运算的两个操作数按二进制位进行“异或”运算。例如:15^3的结果为12。
利用按位异或可以很容易判断两个数的对应二进制位是相同还是相异,结果为0表示相同,结果为1表示相异。
  00001111
 ^00000011
  00001100

1.1.5 左移位

第一操作数的每一位向左平移第二操作数指定的位数,右边空位补0,左边移出去的位丢弃。例如:15及其左移1位、2位、3位的二进制补码如下表所示。
可见,利用左移位可以快速地实现整数的乘法运算,每左移一位相当于乘以2,左移n位就相当于乘以2n,非常有利于算法的硬件实现。
左移位

(6)右移位
将第一操作数的每一位向右平移第二操作数指定的位数,右边移出去的位丢弃。当第一操作数为有符号数时,左边空位补符号位上的值,这种移位称为算术移位;当第一操作数为无符号数时,左边空位补0,这种移位称为逻辑移位。例如:15和-15分别进行右移1位、2位、3位的二进制补码如下表所示
右移位

可见,利用右移位可以快速地实现整数的除法运算,每右移一位相当于除以21,右移n位相当于除以2n,非常有利于算法的硬件实现。

1.2 关系运算符

关系(Relational)运算是用来比较两个操作数的值的运算,比较的结果是一个逻辑值

比较字符串时则是按 第一个符号的ASCIT码值,如果相同则比较下一位

1.3 运算顺序

按照优先级从低到高计算

总体上的优先级顺序为: 算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符,但按位取反运算符_的优先级位于算术运算符的正负号+-和乘方**之间。

1.4 运算方向

除了关系运算符的运算顺序是从左往右,其他均是从右往左

二 函数与模块

一个能解决大规模问题的程序通常会被分解成若千功能模块,这些功能模块被称为函数。使用函数通常可以使程序的结构更简洁易懂,可以提高程序的可读性和可复用性,Python 中的雨数包括内建函数、标准库函数,第三方库和用户自定义函数。

2.1 内建函数

内建函数就是不需要进行外部导人就能直接使用的函数,可以使用函数 dir(__builtins__)查看。下列为 Python 3.6 中的所有内建函数:
在这里插入图片描述

Python 常用初级内建函数
函数名功能
abs() 返回数字的绝对值
bool() 转换为布尔类型(若没有参数,返回 false)
int() 转换为整数
float() 转换为浮点数
cmplex() 转换为复数
str() 转换为字符串
bin()返回一个整数二进制表示。
otc()返回一个整数 八进制表示。
hex() 返回一个整数十六进制表示。
round() 返回统计学的四舍六入五凑偶
type() 返回参数的数据类型
id() 返回对象的身份标识
all()判断给定的元组或列表是否都为 True(空元组、空列表返回值为 True)
any()判断给定的元组或列表是否有 True空元组、空列表返回值为 True)
ascii()返回字符串(非 ASCII 字符转化为转义字符)
help()查询该函数的帮助信息

2.2 库函数

2.2.1 标准库函数

除了内建函数外, Python 还提供了标准库函数,需要先导入模块再使用函数,每个库有相关的一些函数。使用dir(模块名)查看该模块所有函数

  1. 导入一个模块
>>> import math      # 导入math模块
>>> math.floor(3.5)   # 使用math模块的向下取整函数
3
  1. 导入多个模块
>>> import math ,os ,operator
  1. 只导入模块中一个函数 from...import...
>>> from math import floor
>>> math.floor(3.5)   # 使用math模块的向下取整函数
3

优点:无需再写math.,用from math import *可以导人 math 模块中的所有属性和函数。

  1. 利用as在导入时为模块增加别名,例如import numpy as np表示导人 numpy 模块并为其取一个别名np,后续模块名 numpy 均可用 np 表示。

2.2.3 第三方库

第三方库提前下载后相当于标准库函数

可以在 PyPI 页面上搜索和安装、发布 Python 第三方库(模块)
安装其中的第三方库官方推荐使用Python 库管理工具 pip,只要将第三方库下载到本地然后进行安装即可。
举例
安装安卓自动测试库atx,步骤为:

  1. Python 官网下载文件 get-pip.py(目前 Python IDE 中一般都预装了 pip,不需要另外载和安装,直接使用第3步安装即可)
  2. 在命令提示符方式下运行如下命令安装 pip。
python get-pip. py

3 使用 pip 安装 atx 第三方库。

pip install atx

2.3 包

是由模块和子包组成的一个应用程序执行环境,是一个有层次的文件目录结构

>>> import A. C. cl
>>> A. C. cl. foo(123)

或者

>>> from A. C. cl import foo
>>> foo( 123)

A 是最顶层的包,C 是它的子包,而 c1子包 C 中的模块。

2.4 标识符

在 Python 程序中,我们对于变量、方法、类、用户自定义函数等等可以由用户起名字,这些名字,我们把它统一的称之为标识符

2.4.1 标识符命名的规则

  1. 内容限定:只能用
  • 英文
  • 中文(不建议)
  • 数字(不能用于开头)
  • 下划线_
  1. 大小写敏感
  2. 不可使用关键字

2.4.2 标识符命名的常用方法

  1. 遵循“见名知意”原则,在每一处逻辑断点处标识,两种方法:
      windows风格,驼峰命名法:大写字母标记逻辑断点,如mathGrades
      unix风格,下划线法:   下划线标记逻辑断点,如math_grades

  2. 变量中的英文字母全部小写

三 程序控制结构

相关文章:

Python运算符、函数与模块和程序控制结构

给我家憨憨写的python教程 ——雁丘 Python运算符、函数与模块和程序控制结构 关于本专栏一 运算符1.1 位运算符1.1.1 按位取反1.1.2 按位与1.1.3 按位或1.1.4 按位异或1.1.5 左移位 1.2 关系运算符1.3 运算顺序1.4 运算方向 二 函数与模块2.1 内建函数2.2 库函数2.2.1 标准库…...

微服务保护-Sentinel

初识Sentinel 雪崩问题及解决方案 雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。 如图&#xff0c;如果服务提供者I发生了故障&#xff0c;当前的应用的部分业务因为依赖于服务I&#xff0c;因此也会被阻塞。此时&a…...

Doris 导出表结构或数据

MYSQLDUMP 导出表结构或数据 Doris 在0.15 之后的版本已经支持通过mysqldump 工具导出数据或者表结构 使用示例​ 导出​ 导出 test 数据库中的 table1 表&#xff1a;mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables table1导出 test 数…...

SELECT * from t_user where user_id = xxx,可以从那几个点去优化这句sql

优化SQL查询可以从以下几个方面入手&#xff1a; 1. 索引优化&#xff1a;通过为查询涉及的列添加合适的索引&#xff0c;可以提高查询的效率。在该SQL语句中&#xff0c; user_id 列被用作查询条件&#xff0c;可以为 user_id 列创建一个索引。 2. 避免使用 SELECT *&#xf…...

解决报错 java.lang.IllegalArgumentException: Cannot format given Object as a Date

报错原因&#xff1a;我们在SimpleDateFormat.format转化时间格式的时候&#xff0c;传入的值无法转换成date而报的错 我的代码大概就是下面这种 LocalDate now LocalDate.now();String format1 new SimpleDateFormat("yyyy-MM-dd").format(now); 发现SimpleDateF…...

【Git】03-GitHub

文章目录 1. GitHub核心功能2. GitHub搜索项目3. GitHub搭建个人博客4. 团队项目创建5. git工作流选择5.1 需要考虑的因素5.2 主干开发5.2 Git Flow5.3 GitHub Flow5.4 GitLab Flow(带生产分支)5.4 GitLab Flow(带环境分支)5.4 GitLab Flow(带发布分支) 6. 分支集成策略7. 启用…...

Java手写最短路径算法和案例拓展

Java手写最短路径算法和案例拓展 1. 算法手写的必要性 在实际开发中&#xff0c;经常需要处理图的最短路径问题。虽然Java提供了一些图算法库&#xff0c;但手写最短路径算法的必要性体现在以下几个方面&#xff1a; 理解算法原理&#xff1a;手写算法可以帮助我们深入理解最…...

深度学习实战51-基于Stable Diffusion模型的图像生成原理详解与项目实战

大家好,我是微学AI,今天给大家介绍一下深度学习实战51-基于Stable Diffusion模型的图像生成原理详解与项目实战。大家知道现在各个平台发的漂亮小姐姐,漂亮的图片是怎么生成的吗?这些生成的底层原理就是用到了Stable Diffusion模型。Stable Diffusion是一种基于深度学习的图…...

基于matlab实现的多普勒脉冲雷达回波仿真

完整程序&#xff1a; clear all;clc;close all; fc3e9; %载波频率 PRF2000; Br5e6; %带宽 fs10*Br; %采样频率 Tp5e-6; %脉宽 KrBr/Tp; %频率变化率 c3e8; %光速 lamda…...

Linux服务器中安装Anaconda+Tensorflow+Keras

Anaconda安装 从https://repo.anaconda.com/archive/查看你需要下载的Anaconda版本&#xff0c;例如2020.11的x86_64&#xff08;uname -a 查看linux框架&#xff09;版下载Anaconda到linux服务器&#xff0c; wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Li…...

ubuntu+.net6+docker 应用部署教程

先期工作 1、本地首先安装 Docker Desktop 2、本地装linux in windows 3、生成镜像 后期工作 1、云服务器部署 生成镜像方法 1、生成Dockerfile配置文件 开发工具visual studio 2022 如果项目已经存在&#xff0c;可以选中项目&#xff0c;右键点击->选择添加Docker…...

Spring常见面试题总结

什么是Spring Spring是一个轻量级Java开发框架&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题&#xff0c;以提高开发效率。它是一个分层的JavaSE/JavaEE full-stack&#xff08;一站式&#xff09;轻量级开源框架&#xff0c;为开发Java应用程序…...

Git全套命令使用

日升时奋斗&#xff0c;日落时自省 目录 1、Git安装 1.1、创建git本地仓库 1.2、配置Git 1.3、认识Git内部区分 2、Git应用操作 2.1、添加文件 2.2、查看日志 2.3、查看修改信息 2.4、查看添加信息 3、版本回退 4、撤销修改 4.1、工作区撤销 4.2、已经add&#xf…...

【陕西理工大学-数学软件实训】数学实验报告(8)(数值微积分与方程数值求解)

目录 一、实验目的 二、实验要求 三、实验内容与结果 四、实验心得 一、实验目的 1. 掌握求数值导数和数值积分的方法。 2. 掌握代数方程数值求解的方法。 3. 掌握常微分方程数值求解的方法。 二、实验要求 1. 根据实验内容&#xff0c;编写相应的MATLAB程序&#xff0c…...

Vue3为什么推荐使用ref而不是reactive

为什么推荐使用ref而不是reactive reactive本身具有很大局限性导致使用过程需要额外注意,如果忽视这些问题将对开发造成不小的麻烦;ref更像是vue2时代option api的data的替代,可以存放任何数据类型,而reactive声明的数据类型只能是对象; 先抛出结论,再详细说原因:非必要不用rea…...

JavaScript函数this指向

一、this的指向规则 1.this到底指向什么呢&#xff1f; 我们先来看一个让人困惑的问题&#xff1a; 定义一个函数&#xff0c;我们采用三种不同的方式对它进行调用&#xff0c;它产生了三种不同的结果 // 定义函数 function foo(name) {console.log("foo函数:", …...

Java的序列化

写在前面 本文看下序列化和反序列化相关的内容。 源码 。 1&#xff1a;为什么&#xff0c;什么是序列化和反序列化 Java对象是在jvm的堆中的&#xff0c;而堆其实就是一块内存&#xff0c;如果jvm重启数据将会丢失&#xff0c;当我们希望jvm重启也不要丢失某些对象&#xff…...

计算机二级python简单应用题刷题笔记(一)

计算机二级python简单应用题刷题笔记&#xff08;一&#xff09; 1、词频统计&#xff1a;键盘输入一组我国高校所对应的学校类型&#xff0c;以空格分隔&#xff0c;共一行。2、找最大值、最小值、平均分&#xff1a;键盘输入小明学习的课程名称及考分等信息&#xff0c;信息间…...

Spring注解家族介绍: @RequestMapping

前言&#xff1a; 今天我们来介绍RequestMapping这个注解&#xff0c;这个注解的内容相对来讲比较少&#xff0c;篇幅会比较短。 目录 前言&#xff1a; RequestMapping 应用场景&#xff1a; 总结&#xff1a; RequestMapping RequestMapping 是一个用于映射 HTTP 请求…...

系统架构设计师(第二版)学习笔记----信息安全系统及信息安全技术

【原文链接】系统架构设计师&#xff08;第二版&#xff09;学习笔记----信息加解密技术 文章目录 一、信息安全系统的组成框架1.1 信息安全系统组成框架1.2 信息安全系统技术内容1.3 常用的基础安全设备1.4 网络安全技术内容1.5 操作系统安全内容1.6 操作系统安全机制1.7 数据…...

Pandas数据合并:concat vs append,选哪个?用真实‘幸福指数’数据集测给你看

Pandas数据合并实战&#xff1a;concat与append深度性能对比 在数据分析工作中&#xff0c;数据合并是最基础也最频繁的操作之一。Pandas提供了多种合并数据的方法&#xff0c;其中concat和append是最常用的两种纵向合并方式。但很多开发者并不清楚它们在实际项目中的性能差异和…...

高效Kolmogorov-Arnold网络:PyTorch实现终极指南 [特殊字符]

高效Kolmogorov-Arnold网络&#xff1a;PyTorch实现终极指南 &#x1f680; 【免费下载链接】efficient-kan An efficient pure-PyTorch implementation of Kolmogorov-Arnold Network (KAN). 项目地址: https://gitcode.com/GitHub_Trending/ef/efficient-kan Kolmogor…...

开发者技能日志工具:用CLI与SQLite构建个人技术成长追踪系统

1. 项目概述&#xff1a;一个技能日志记录器的诞生 最近在整理自己的技术栈和项目经验时&#xff0c;我遇到了一个很多开发者都有的痛点&#xff1a;学了那么多东西&#xff0c;做了那么多项目&#xff0c;但真要写简历或者回顾成长路径时&#xff0c;记忆总是模糊的。今天学了…...

AI原生运维体系必须跨越的3道生死线:数据治理、模型可观测性、人机协同SLA(SITS 2026闭门研讨纪要)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生运维体系构建&#xff1a;SITS 2026智能运维专场精华 AI原生运维&#xff08;AIOps Native&#xff09;已从概念验证迈入生产就绪阶段。SITS 2026智能运维专场首次提出“感知-推理-执行-进化”四…...

如何免费解密网易云音乐NCM文件:终极指南释放你的音乐自由

如何免费解密网易云音乐NCM文件&#xff1a;终极指南释放你的音乐自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾在网易云音乐下载了心爱的歌曲&#xff0c;却发现只能在特定客户端播放&#xff1f;那些加密的NCM格式文…...

GLM-ASR开源语音识别引擎:基于GLM架构的端到端实践指南

1. 项目概述&#xff1a;一个开源的、基于GLM架构的语音识别引擎最近在语音识别&#xff08;ASR&#xff09;这个圈子里&#xff0c;一个名为“GLM-ASR”的开源项目引起了我的注意。它来自zai-org组织&#xff0c;顾名思义&#xff0c;其核心是将自然语言处理领域大放异彩的GLM…...

企者不立,跨者不行,在 SAP ABAP 开发里修一颗不踮脚、不跨步、不自矜的工程心

老子这句话放进 SAP ABAP 开发现场里,不是要我们把工程做得玄乎,也不是劝开发者不要进取。它讲的是一种很朴素的稳定性智慧,凡是靠踮脚维持的高度,站不久,凡是靠大跨步抢出来的进度,走不远,凡是只相信自己眼前判断的技术方案,容易看不清系统全貌,凡是过度相信自己经验…...

【信息科学与工程学】【通信工程】第二篇 网络的主要算法10 容器网络

容器与虚拟机对比特征表 特征维度 容器特征函数 虚拟机特征函数 技术实现差异 性能影响 适用场景 1. 资源隔离​ container_isolation(namespace, cgroup) 函数说明:基于Linux命名空间和cgroup的资源隔离 输入:namespace_type, cgroup_config 输出:isolation_level(0…...

Python开发者必备:Awesome清单高效选型与实战指南

1. 项目概述&#xff1a;一份Python开发者的“藏宝图”如果你是一名Python开发者&#xff0c;无论是刚入门的新手&#xff0c;还是摸爬滚打多年的老手&#xff0c;我相信你都曾有过这样的时刻&#xff1a;面对一个具体的开发需求&#xff0c;比如想找一个好用的Web框架、一个高…...

douyin-downloader:抖音内容获取的技术架构与实践应用

douyin-downloader&#xff1a;抖音内容获取的技术架构与实践应用 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…...