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

Python——我愿称之为最简单的语言

Python——我愿称之为最简单的语言

    • 开发工具
    • 基础语法
      • 变量和数据类型
      • 列表和元组
      • 字典
      • if语句
      • while语句
      • 函数
      • 文件与异常
      • 测试代码

参考书籍:《python编程从入门到实践》

开发工具

python编程环境分为两个部分:python解释器和文本编辑器。运行.py文件时,末尾的.py指出这是一个python程序,因此编辑器将使用python解释器来运行该文件,python解释器读取整个程序并执行相应的操作。pycharm是一个在python解释器上运行的应用程序,其提供了一个集成开发环境的界面和工具。

基础语法

《python编程从入门到实践》第1~11章。

变量和数据类型

1、变量名的命名规则。

  • 变量名只能包含数字、字母、下划线,但是不能以数字开头。
  • 不要将python关键字和函数名用作变量名。
  • 变量名应该既简短又具有描述性,一般使用小写,并且使用下划线_划分。
  • 类名应该使用驼峰命名法,即每个单词的首字母大写。

2、字符串。

  • 字符串使用单引号’'或者双引号""括起来,注意嵌套要使用不同的引号。
  • str.title()表示以首字母大写的方式显示每个单词。
  • str.upper()表示将字符串全部大写。
  • str.lower()表示将字符串全部小写。
  • str=f"{str1}{str2}"表示在字符串中插入变量。
  • str.lstrip()表示删掉字符串开头的空白。
  • str.rstrip()表示删掉字符串末尾的空白。
  • str.strip()表示删掉字符串两边的空白。

3、数。

  • **表示乘方。
  • 书写很大的数时,可以使用下划线将其中的数字分组,每一组划分为几位没有影响。
  • 无论哪一种运算,只要操作数有浮点数,得到的结果就是浮点数。
  • 使用逗号将变量名分开以及将对应赋值分开,可以实现同时给多个变量赋值。
  • 常量一般全部使用大写字母命名。

4、注释。

  • 注释使用#符号。
  • 一般以函数为单位分块注释,如果有某些比较巧妙的细节也可以突出重点注释。

列表和元组

1、列表是什么。

列表是使用方括号[]表示,并使用逗号分割元素。

2、列表的增删改查操作。

  • 查找:var=list[index],注意,列表正向索引是从0开始的,列表逆向索引是从-1开始的。
  • 修改:list[index]=newvar,语法类似查找。
  • 增加:在尾部添加元素使用list.append(value);在任意位置添加元素使用list.insert(position,value)。
  • 删除:删除尾部元素使用var=list.pop();删除任意位置元素使用del list[position]或者var=list.pop(position);根据值删除元素使用list.remove(value)。注意,remove只能删除第一个指定的值。

3、列表的排序操作。

  • 永久排序:排序会改变list,从小到大排序使用list.sort();从大到小排序使用list.sort(reverse=True)。
  • 临时排序:排序不会改变list,而是产生list副本,从小到大排序使用sorted(list),从大到小排序使用sorted(list,reverse=True)。

4、列表的其他操作。

  • 反转列表:list.reverse(),永久改变列表,反转两次可复原。
  • 列表长度:len(list)。

5、列表的遍历操作。

  • 遍历列表:for element in list(注意缩进)。

6、列表的批量操作。

  • range(a,b,step):产生[a,b)区间且步长为step的整数,a默认为0,step默认为1。
  • list(range(a,b,step)):将range产生的一组数转换为列表。
  • min(list):求列表的最小值。
  • max(list):求列表的最大值。
  • sum(list):求列表的总和。
  • newlist=[value for element in list]:将for循环和创建新元素的代码合并成一行并自动附加新元素从而完成列表解析。
  • list[begin:end]:切片可实现列表复制,正序begin默认为列表起始位置,end默认为列表结束位置,逆序end默认为列表结束位置。

7、元组是什么。

元组是使用圆括号()表示,并使用逗号分割元素。列表与元组的区别在于,列表的元素可以改变,而元组的元素不可以改变。注意,虽然元组的元素不可以改变,但是元组变量是可以改变的。

字典

1、字典是什么。

字典是使用花括号{}表示,并使用逗号分割元素,字典元素由键值对key-value组成,且key与value使用冒号:隔开。字典可以用于存储一种对象的多种信息或者多种对象的一种信息。

2、字典的增删改查操作。

  • 查找:value=dictionary[key]。
  • 修改:dictionary[key]=newvalue。
  • 增加:dictionary[key]=value。
  • 删除:del dictionary[key]。
  • 函数:dictionary.get(key,default),如果指定的键不存在则返回默认值,反之存在则返回对应的值。

3、字典的遍历操作。

  • 遍历所有键值对:for key,value in dictionary.items(),其中items返回一个键值对列表。
  • 遍历所有键:for key in dictionary.keys(),其中keys返回所有的键,默认遍历字典时也会遍历所有的键,即for key in dictionary也可以遍历所有的键,使用for key in sorted(dictionary.keys())可以实现按特定顺序遍历字典中的所有键。
  • 遍历所有值:for value in dictionary.values(),其中values返回所有的值,使用for value in set(dictionary.values())可以实现值的去重,花括号可以直接创建集合,其中元素使用逗号间隔,注意区分字典和集合。

4、字典和列表的嵌套使用。

  • 字典列表:列表里面套字典,适用于存储多个对象的多种信息。
  • 列表字典:字典里面套列表,即字典的键值对中的值使用列表,适用于存储某一种信息描述了多个属性。
  • 字典字典:字典里面套字典,即字典的键值对中的值使用字典,适用于存储唯一关键字和相关信息。

if语句

1、if语句对应的条件测试。

  • 相等测试:if element == condition。
  • 不等测试:if element != condition。

2、if语句对应的多个条件测试。

  • and:多个条件均要满足。
  • or:至少一个条件要满足。
  • in:检查是否在列表中。
  • not in:检查是否不在列表中。

3、if语句对应的多种形式。

  • if语句:每次测试一个条件语句。
  • if-else语句:每次测试一个条件语句,只不过两种情况。
  • if-elif-else语句:每次测试一个条件语句,只不过多种情况。
  • 多个if语句:一次可以测试多个条件语句。

while语句

1、用户输入。

  • 输入字符串:message=input(提示语)。
  • 输入数值:message=input(提示语),然后message=int(message),或者message=float(message)。

2、while循环。

  • while语句:while condition。
  • break语句:跳出最近的一层循环。
  • continue语句:继续下一次循环。

使用while循环修改列表,而不使用for循环修改列表,否则会导致难以跟踪其他元素。

函数

1、如何定义函数。

def function(),其中使用三引号"“”……“”"来描述函数功能。

2、函数的参数传递方式。

  • 位置实参:形参与实参按照顺序一一对应,带有默认值的参数要放在最后。
  • 关键字实参:传递给函数名称值对,即类似传递字典。

3、如何传递任意数量。

  • 任意数量位置实参:*args,相当于创建了一个名为args的空元组。
  • 任意数量关键字实参:**args,相当于创建了一个名为args的空字典。

可以结合位置实参和关键字实参等多种传参方式。

4、函数与模块。

  • 导入整个模块:import pyname,使用时调用pyname.pyfunction()。
  • 导入特定函数:from pyname import pyfunction,使用时调用pyfunction()。
  • 指定函数别名:import pyname as name,或者from pyname import pyfunction as function。
  • 导入多个函数:from pyname import pyfunction1,pyfunction2,pyfunction3……。
  • 导入所有函数:from pyname import *。

一般运算符两边均留一个空格,但是函数形参默认值中的等号两边一般不要留有空格。

1、如何定义类。

class Class,其中类名要使用驼峰命名法,即每个单词的首字母要大写。

2、类的实例初始化方法。

def _init_(self),其中参数self必不可少,而且必须位于其他形参的前面,当python调用初始化方法来创建实例时,将自动传入实参self,也可以根据需求选择性的传入其他实参来进行初始化。每一个与实例相关的方法调用都自动传递实参self,它指向实例本身的引用,让实例能够访问类中的属性和方法。

3、类的使用方法。

  • 创建对象:my_class=Class(实参列表)。

  • 获取属性:my_class.attribute。

  • 调用方法:my_class.method()。

4、类的继承。

class Son(Father),其中使用括号中填写父类来实现继承。一个类继承另一个类时,将自动获得另一个类的所有属性和方法。在子类的初始化函数中,可以调用super()._init_()来进行初始化,也可以使用self.attribute=attribute来新增属性。在子类的方法中,可以通过重写一个父类方法同名的函数来更改方法。

5、类与模块。

格式同函数与模块。

文件与异常

1、文件的常见操作。

  • 打开文件:with open(文件路径) as file_object,其中open返回一个表示文件的对象,并将该对象赋值给file_object供以后使用。
  • 读取文件:content=file_object.read()。
  • 写入文件:with open(文件路径,‘w’) as file_object,file_object.write(content)。
  • 按行读取:lines=file_object.readlines(),其从文件中读取每一行,并且存储在一个列表中。
  • 多种模式:'r’只读,'w’写入,'a’附加,'r+'读写。

2、异常。

try:可能出现异常的语句
except e: //e表示一种异常类型相应的错误处理语句  //pass表示占位符即什么都不处理
else:相应的正确处理语句

3、存储数据。

  • json.dump(content,file_object):将content写入file_object。
  • content=json.load(file_object):从file_object中读取content。

4、一些概念。

  • 重构:重构指的是将代码划分为一系列完成具体工作的函数,从而使得代码更清晰,更易于理解,更容易扩展。
  • 异常:如果未对异常进行处理,将显示traceback,反之如果编写了处理异常的代码,程序将继续进行。

测试代码

1、代码测试工具unittest。

import unittest //代码测试工具
from pyname import function1 //待测试函数
class exampleTestCase(unittest.TestCase): //测试类"""测试pyname.py"""def test_function1(self): //测试函数result=function1(测试参数) //函数结果self.assertEqual(result,contrast) //对比结果if _name_ == '_main_':unittest.main()

如果某个文件作为主程序执行,那么变量_name_将被设置为_main_,于是调用unittest.main()来运行测试用例。注意,测试类中只有以test_开头的方法才会在运行测试文件时运行。

2、常用的断言方法。

  • assertEqual(a,b):核实a==b。
  • assertNotEqual(a,b):核实a!=b。
  • assertTrue(x):核实x为True。
  • assertFalse(x):核实x为False。
  • assertIn(item,list):核实item在list中。
  • assertNotIn(item,list):核实item不在list中。

3、创建一个实例供多个测试方法使用。

def setUp(self):"""创建一个对象一个参数列表供使用的测试方法使用"""self.my_object=Object()self.parameter=[……]

多加练习,熟能生巧。

相关文章:

Python——我愿称之为最简单的语言

Python——我愿称之为最简单的语言开发工具基础语法变量和数据类型列表和元组字典if语句while语句函数类文件与异常测试代码参考书籍:《python编程从入门到实践》 开发工具 python编程环境分为两个部分:python解释器和文本编辑器。运行.py文件时&#…...

java.io.IOException: Broken pipe

1、问题出现的场景 线上环境,拉取对账单,走的接口的形式,当天单量比较大,就出现了,拉取订单超时,报了个错java.io.IOException: Broken pipe。 2、解决方案 我们设置的超时时间是100S,由于当…...

Python——列表排序和赋值

(1)列表排序: 列表排序方法 ls.sort() 对列表ls 中的数据在原地进行排序 ls [13, 5, 73, 4, 9] ls.sort()ls.sort(reverseFalse) 默认升序,reverseTrue,降序 ls [13, 5, 73, 4, 9] ls.sort(reverseTrue)key指定排序时…...

python+pytest接口自动化(7)-cookie绕过登录(保持登录状态)

在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证码会比较复杂,比如有些图形验证码,难以通过接口的方式去处理;再者&#xff0c…...

【连接池】什么是HikariCP?HikariCP 解决了哪些问题?为什么要使用 HikariCP?

文章目录什么是连接池什么是HikariCPHikariCP 解决了哪些问题?为什么要使用 HikariCP?HikariCP 的使用Maven支持数据库什么是连接池 数据库连接池负责分配、管理和释放数据库的连接。 数据库连接复用:重复使用现有的数据库长连接&#xff0…...

Tapdata Cloud 基础课:新功能详解之「微信告警」,更及时的告警通知渠道

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 60 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作…...

【巨人的肩膀】JAVA面试总结(四)

💪、JVM 目录💪、JVM1、说一下JVM的主要组成部分及其作用2、什么是JVM内存结构(谈谈对运行时数据区的理解)3、堆和栈的区别是什么4、堆中存什么?栈中存什么?5、为什么不把基本类型放堆中呢?6、为…...

攒了一冬的甜,米易枇杷借力新电商走出川西大山

“绿暗初迎夏,红残不及春。魏花非老伴,卢橘是乡人。”苏轼文中的卢橘,就是枇杷,在苏轼看来,相较于姚黄魏紫,来自故乡四川的枇杷更为亲近。 四川省攀枝花市米易县是全国枇杷早熟产区之一,得益于…...

python-测试相关基础知识-补充

文章目录 1.面向对象1.1 基础概念1.2 面向对象关键字1.2.1 class关键字1.2.2 __init__初始化方法1.2.3 __del__销毁方法1.2.4 __str__输出字符串方法1.3 面向对象三大特点1.3.1 封装1.3.2 继承1.3.3 多态1.4 类属性和类方法1.5 静态方法2.文件操作2.1 文件基本操作2.2 按行读取…...

论文推荐:ScoreGrad,基于能量模型的时间序列预测

能量模型(Energy-based model)是一种以自监督方式执行的生成式模型,近年来受到了很多关注。本文将介绍ScoreGrad:基于连续能量生成模型的多变量概率时间序列预测。如果你对时间序列预测感兴趣,推荐继续阅读本文。 为什…...

RabbitMq(具体怎么用,看这一篇即可)

RabbitMq汇总1.RabbitMq的传统实现方式2.SpringAMQP简化RabbitMq开发2.1 基本消息队列(BasicQueue)2.2 工作消息队列(WorkQueue)2.3 发布订阅 -- 广播(Fanout)2.4 发布订阅 -- 路由(Direct&…...

第九届蓝桥杯省赛 C++ A/B组 - 全球变暖

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:蓝桥杯题解集合 📝原题地址:全球变暖 📣专栏定位:为想参加蓝桥杯的小伙伴整理常考算法题解,祝大家…...

Leetcode.2359 找到离给定两个节点最近的节点

题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating : 1715 题目描述 给你一个 n个节点的 有向图 ,节点编号为 0到 n - 1,每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示,表示节点 i有一条…...

DCDC/LDO Auto-Discharge

1、概念 When using a capacitor with large capacity value in VOUT side, the VOUT pin voltage might not immediately fall to the ground level when the EN(CE,CONTROL) pin is switched from the active mode to the standby mode. By adding N-channel transistor to …...

linux 中的log

linux 中的log 由于内核的特殊性,我们不能使用常规的方法查看内核的信息。下面介绍几种方法。 1 printk()打印内核消息。 2 管理内核内存的daemon(守护进程) Linux系统当中最流行的日志记录器是Sysklogd,Sysklogd 日志记录器由…...

基于ubuntu的STM32嵌入式软件开发(四)——应用软件工程的修改、Makefile及编译脚本的编写

本文主要介绍基于标准库函数移植的STM32的应用软件工程的修改,主要涉及到文件内容修改、Makefile文件编写、编译脚本编写等内容,其中编译脚本是基于arm-none-eabi-gcc的交叉编译器撰写的。程序亲测可以正常编译,生成.bin和.hex的可烧录镜像文…...

MQTT协议分析

目录 一、前言 二、MQTT协议概述 概念 基本原理 MQTT协议的结构 MQTT的QoS机制 QoS 0:最多一次传输 QoS 1:至少一次传输 QoS 2:恰好一次传输 三、MQTT的应用场景 四、MQTT的优点和缺点 五、MQTT协议的实现 六、实战体验MQTT …...

基于树莓派4B设计的音视频播放器(从0开始)

一、前言 【1】功能总结 选择树莓派设计一款家庭影院系统,可以播放本地视频、网络视频直播、游戏直播、娱乐直播、本地音乐、网络音乐,当做FM网络收音机。 软件采用Qt设计、播放器引擎采用ffmpeg。 当前的硬件选择的是树莓派4B,烧写官方系统,完成最终的开发。 本篇文章主…...

MSF手机渗透实验(未成功)(CVE-2019-2215 Binder UA)

1. 前言 最近想利用metasploit对手机进行依次渗透实验。 通过查看最近三年的安卓漏洞,我对CVE-2019-2215这个漏洞很感兴趣。 幸运的是,metasploit里就有这个漏洞的攻击payload,于是我就开始试试了。 msf6 > search binderMatching Mod…...

系列十二、MySQL管理

一、系统数据库 Mysql数据库安装完成后,自带了一下四个数据库,具体作用如下:二、常用工具 2.1、mysql 2.1.1、概述 该mysql不是指mysql服务,而是指mysql的客户端工具。 2.1.2、语法 # 语法 : mysql [options] [dat…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

如何在网页里填写 PDF 表格?

有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据&#xff…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键&#xff…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...

window 显示驱动开发-如何查询视频处理功能(三)

​D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...

华为云Flexus+DeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手

华为云FlexusDeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手 一、构建知识库问答助手引言二、构建知识库问答助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建知识库问答助手实战3.1 配置Dify环境3.2 创建知识库问答助手3.3 使用知…...

循环语句之while

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…...