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

news2024/11/25 12:44:13
给我家憨憨写的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. 变量中的英文字母全部小写

三 程序控制结构

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

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

相关文章

elk日志某个时间节点突然搜索不到了

elk日志某个时间节点突然搜索不到了,检查filebeat正常 Kibana手动上传数据: 响应: Error: Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [2000]/[2000] maximum shards open 原因:ElasticSearch总分片数量导致的异常,ES…

语言建模的发展阶段以及大规模语言模型的背景介绍

语言本质上是一个由语法规则控制的复杂、精密的人类表达系统&#xff0c;开发能够理解和掌握语言的AI 算法是一个重大挑战。作为一种主要方法&#xff0c;语言建模在过去两十年中已被广泛研究&#xff0c;从统计语言模型发展到神经语言模型&#xff0c;用于语言理解和生成。从技…

服务网格和性能优化:介绍如何通过服务网格提高微服务架构的性能和可扩展性

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

使用Jaeger进行分布式跟踪:学习如何在服务网格中使用Jaeger来监控和分析请求的跟踪信息

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

竹云董事长董宁受邀出席香港第三届湾区元宇宙大会暨AIGC、RWA发展高峰论坛并作主题演讲

“一元初分&#xff0c;宇宙万仪”。9月16日&#xff0c;第三届湾区元宇宙大会暨AIGC、RWA发展高峰论坛在香港圆满落幕。全球权威机构、顶级专家学者、杰出企业家代表齐聚一堂&#xff0c;畅所欲言&#xff0c;全面总结分析元宇宙现状&#xff0c;综合研判元宇宙未来发展趋势。…

DJYOS开源往事二:DJYOS开源工作室时期

2010年&#xff0c;罗侍田、王建忠等人在南山科技园创建都江堰操作系统工作室。通过自有资金、网友赞助资源等各种形式&#xff0c;从2010年开始建立了一支全职的民间组织的国产操作系统开发者团队。

vite构建的本地开发环境请求第三方接口时如何解决跨域问题

前言 在vite构建的本地开发环境中&#xff0c;请求第三方接口时如何解决跨域问题呢&#xff1f; 本地开发环境,只要请求接口,如果没有做代理配置,都会存在同源策略,跨域的问题,要么在本地做代理,要么在服务器做代理,要么在请求头中设置允许跨域,下面我们来介绍下如何解决vite构…

keil报错:Flash Download failed - Could not load file‘..\..\Output\Template.axf

keil报错&#xff1a;Flash Download failed - Could not load file’…\Output\Template.axf&#xff0c;如下图所示&#xff1a; 原因是很多.h文件没有定义位置&#xff0c;可以按照下图操作&#xff1a; 而且&#xff0c;如果是想使用压缩包&#xff0c;那一定要关闭keil后…

Re0: 从零实现一个解除文件占用的小工具

前言 相信大家或多或少都遇到过想删除一个文件&#xff0c;却提示被占用的情况&#xff1a; 不知道各位都是如何处理的&#xff0c;反正我一直都是用的火绒&#x1f604;。但是作为一名程序员&#xff0c;自己写一个小程序实现多有意思&#xff0c;是吧。况且为了一个小工具去…

【微信小程序开发】宠物预约医疗项目实战-注册实现

【微信小程序开发】宠物预约医疗项目实战-注册实现 第二章 宠物预约医疗项目实战-注册实现 文章目录 【微信小程序开发】宠物预约医疗项目实战-注册实现前言一、打开项目文件二、编写wxss代码2.1 什么是wxss2.2 配置主程序全局样式 三. 在sign文件下的wxml文件中编写如下代码并…

使用qt完善对话框功能

1、 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两…

【深度学习实验】线性模型(五):使用Pytorch实现线性模型:基于鸢尾花数据集,对模型进行评估(使用随机梯度下降优化器)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 线性模型linear_model 2. 损失函数loss_function 3. 鸢尾花数据预处理 4. 初始化权重和偏置 5. 优化器 6. 迭代 7. 测试集预测 8. 实验结果评估 9. 完整代码 一、实验介…

大语言模型的机遇和挑战

自然语言处理包含自然语言理解和自然语言生成两个方面, 常见任务包括文本分类, 结构分析 (词法分析, 分词, 词性标注, 句法分析, 篇章分析), 语义分析, 知识图谱, 信息提取, 情感计算, 文本生成, 自动文摘, 机器翻译, 对话系统, 信息检索和自动问答等. 在神经网络方法出现之前,…

Vue3_vite

使用Vue-cli创建 使用vite创建 Composition API 组合API setup 1.Vue3中的一个新的配置项,值为一个函数 2.可以将组件中所用到的数据,方法等配置在setup中. 3.setup函数的两种返回值 3.1若返回一个对象,则对象中的属性,方法,在模板中均可以直接使用. 3.2若返回一个渲染函数…

Leetcode.337 打家劫舍 III

题目链接 Leetcode.337 打家劫舍 III mid 题目描述 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口&#xff0c;我们称之为 root 。 除了 root 之外&#xff0c;每栋房子有且只有一个“父“房子与之相连。一番侦察之后&#xff0c;聪明的小偷意识到“这个地方的所有…

「聊设计模式」之建造者模式(Builder)

&#x1f3c6;本文收录于《聊设计模式》专栏&#xff0c;专门攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎持续关注&&收藏&&订阅&#xff01; 前言 设计模式是众多优秀软件开发实践的总结和提炼&#xff0c;…

STM32 ADC介绍和应用

目录 1.ADC是什么&#xff1f; 2.ADC的性能指标 3.ADC特性 4.ADC通道 5.ADC转换顺序 6.ADC触发方式 7.ADC转化时间 8.ADC转化模式 扫描模式 单次转换/连续转换 9.ADC实验 使用ADC读取烟雾传感器的值 代码实现思路&#xff1a; 1.ADC是什么&#xff1f; 全称&#…

DMNet复现(一)之数据准备篇:Density map guided object detection in aerial image

一、生成密度图 密度图标签生成 采用以下代码&#xff0c;生成训练集密度图gt&#xff1a; import cv2 import glob import h5py import scipy import pickle import numpy as np from PIL import Image from itertools import islice from tqdm import tqdm from matplotli…

UG NX二次开发(C#)-计算直线到各个坐标系轴向的投影角度

文章目录 1、前言2、需求分析3、NXOpen方法实现3.1 创建基准坐标系3.2 然后计算直线到基准坐标系的轴向角度3.3 代码调用4、测试效果为:1、前言 最近有个粉丝问我如何计算直线到坐标系各个轴向的角度,这里用UG NX二次开发(C#)实现。当然,这里的内容是经验之谈,如果有更好的…

基于matlab实现的船舶横摇运动仿真程序

完整程序&#xff1a; clc clear syms w we; w0.4:0.05:1.6;mu90;v6;%kb1;kt1;%航速6m/s&#xff0c;航向90度&#xff0c;即横浪&#xff0c;cos(90)0 T3;B10;Sw0.785;%船宽10米&#xff0c;吃水3米,水线面系数假设为0.785 weww.^2.*v/9.8; for i1:24 delta_we(i)we(i1)-…