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. 变量中的英文字母全部小写

三 程序控制结构

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

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

相关文章

【pytest】 pytest拓展功能 PermissionError问题

目录 1. pytest-html 1.1 PermissionError: [Errno 13] Permission denied: D:\\software\\python3\\anconda3\\Lib\\site-packages\\pytest_html\\__pycache__\\tmp_ttoasov 1.2错误原因 2. 失败用例重试 3. 用例并行执行 pytest-parallel 1. pytest-html 管理员打开 A…

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

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

前端VUE---JS实现数据的模糊搜索

实现背景 因为后端实现人员列表返回&#xff0c;每次返回的数据量在100以内&#xff0c;要求前端自己进行模糊搜索 页面实现 因为是实时更新数据的&#xff0c;就不需要搜索和重置按钮了 代码 HTML <el-dialogtitle"团队人员详情":visible.sync"centerDi…

C#通过重写Panel改变边框颜色与宽度的方法

在C#中,Panel控件是一个容器控件,用于在窗体或用户控件中创建一个可用于容纳其他控件的面板。Panel提供了一种将相关控件组合在一起并进行布局的方式。以下是Panel控件的详细使用方法: 在窗体上放置 Panel 控件: 在 Visual Studio 的窗体设计器中,从工具箱中拖动并放置一…

WebGL 视图矩阵、模型视图矩阵

目录 立方体由三角形构成 视点和视线 视点、观察目标点和上方向 视点&#xff1a; 观察目标点&#xff1a; 上方向&#xff1a; 在WebGL中&#xff0c;观察者的默认状态应该是这样的&#xff1a; 视图矩阵程序&#xff08;LookAtTriangles.js&#xff09; 实际上&…

Matlab论文插图绘制模板第114期—带图形标记的图

之前的文章中&#xff0c;分享了Matlab带线标记的图&#xff1a; 带阴影标记的图&#xff1a; 带箭头标记的图&#xff1a; 进一步&#xff0c;分享一下带图形标记的图&#xff0c;先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&…

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单AdaptiveTextSelectionToolba样式UI效果

flutter开发实战-自定义长按TextField输入框剪切、复制、选择全部菜单样式UI效果 在开发过程中&#xff0c;需要长按TextField输入框cut、copy设置为中文“复制、粘贴”&#xff0c;我首先查看了TextField中的源码&#xff0c;看到了ToolbarOptions、AdaptiveTextSelectionToo…

深度学习中安装了包但是依然导入(import)失败这一问题,例如pytorch环境下已经安装了scikit-learn但是import不了

在跑深度学习模型的时候我们要先搭建pytorch环境&#xff0c;这个环境跟windows环境是不同的&#xff0c;我们默认在windows中安装的包在当前的虚拟环境中读取不到&#xff0c;所以导致我们明明安装了包但是依然在实际的导入中(import)报错。解决办法就是我们去虚拟环境中安装包…

linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)

一、IO多路复用--epoll实现 1.核心&#xff1a; 红黑树、一张表以及三个接口、 2.实现过程及API 1&#xff09;创建epoll句柄/创建红黑树根节点 int epfdepoll_create(int size--无意义&#xff0c;>0即可)----------成功&#xff1a;返回根节点对应文件描述符&#xff…

构建无缝的服务网格体验:分享在生产环境中构建和管理服务网格的最佳实践

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

容器的数据卷

容器的数据卷 操作数据卷 # 基本格式 docker volume [common] # 创建一个volume docker volume create # 显示一个或多个volume docker volume inspect # 列出所以的volume docker volume ls # 删除未使用的volume docker volume prune # 删除一个或多个volume docker volume…

双节履带机械臂小车实现蓝牙遥控功能

1.功能描述 本文示例所实现的功能为&#xff1a;采用蓝牙远程遥控双节履带机械臂小车进行运动。 2.结构说明 双节履带机械臂小车&#xff0c;采用履带底盘&#xff0c;可适用于任何复杂地形。 前节履带抬起高度不低于10cm&#xff0c;可用于履带车进行爬楼行进。 底盘上装有一…

mybatis学习记录(三)-----关于SQL Mapper的namespace

关于SQL Mapper的namespace 视频总结笔记&#xff1a; 在SQL Mapper配置文件中<mapper>标签的namespace属性可以翻译为命名空间&#xff0c;这个命名空间主要是为了防止SQL id 冲突的。 创建CarMapper2.xml文件&#xff0c;代码如下&#xff1a; CarMapper2.xml: <?…

用Python判断是否为闰年并计算生肖年

1 问题 润平年以及生肖是新的一年到来我们应该了解的信息。那么如何利用python程序计算快速计算该年为什么年&#xff1f; 2 方法 利用if条件判断语句实现。 代码清单 1 year eval(input(请输入咨询的年份:))if (year % 4 0 and year %100 ! 0) or year % 400 0: print(…

java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

RocketMQ快速实战以及集群架构详解

⼀、 MQ 简介 MQ &#xff1a; MessageQueue &#xff0c;消息队列。是在互联⽹中使⽤⾮常⼴泛的⼀系列服务中间件。 这个词可以分两个部分来看&#xff0c;⼀是Message &#xff1a;消息。消息是在不同进程之间传递的数据。这些进程可以部署在同⼀台机器上&#xff0c;也可以…

17. 电话号码的字母组合

题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路&#xff1a; 数字对应字母用map(这里不好用&#xff09;&#xff0c;还是用数组映射&#xff0c;因为这里的映射表是个静态的 组合的思想。比如2,3就是需要选两个字母即搜…

TCP详解之流量控制

TCP详解之流量控制 发送方不能无脑的发数据给接收方&#xff0c;要考虑接收方处理能力。 如果一直无脑的发数据给对方&#xff0c;但对方处理不过来&#xff0c;那么就会导致触发重发机制&#xff0c;从而导致网络流量的无端的浪费。 为了解决这种现象发生&#xff0c;TCP 提…

一个方法用js生成随机双色球、大乐透

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

网络安全深入学习第六课——热门框架漏洞(RCE— Weblogic反序列化漏洞)

文章目录 一、Weblogic介绍二、Weblogic反序列化漏洞历史三、Weblogic框架特征1、404界面2、登录界面 四、weblogic常用弱口令账号密码五、Weblogic漏洞介绍六、Weblogic漏洞手工复现1、获取账号密码&#xff0c;这是一个任意文件读取的漏洞1&#xff09;读取SerializedSystemI…