当前位置: 首页 > 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…...

[游戏架构] 有限状态机的实际应用

什么是有限状态机 有限状态机(Finite State Machine,简称FSM)是一种常用的计算机科学中的建模工具,用于描述由离散状态和状态之间的转换组成的系统。它主要由一个有限的状态集合、一个初始状态、一个输入事件集合、状态之间的转换…...

【站外SEO】如何利用外部链接来提高你的网站排名

随着互联网的快速发展,越来越多的企业开始注重SEO优化,以提升自己的网站排名,增加流量和曝光度。 而站外SEO作为SEO的重要组成部分,对于提升网站排名具有不可忽视的作用。 站外SEO主要是通过外部链接来提高网站的排名。而GPB外链…...

OSCP-课外4(修复web访问、Mysql UDF提权)

目录 难度 一、主机发现与端口扫描 二、Web信息收集 站点目录扫描 搜索phpmailer的漏...

深信服面经---云计算方向(附问题知识点解析)

深信服面经---云计算高级开发一、一面问题概览二、实操相关三、复盘对问题答案进行整理(查漏补缺)3.1、go语言简单了解3.2、项目中成就感最大或挑战最大的地方3.3、项目问题---协议头引入之后,包的大小增加了多少3.4、如何建立缓存3.5、cache…...

MySQL面试题-基础篇

目录 前言 数据库基础 1.什么是关系型数据库和非关系型数据库? 2.什么是 SQL? 3.MySQL 有什么优点? 4.MySQL 的基础架构? 存储引擎 1.MySQL 支持哪些存储引擎?默认使用哪个? 2.MySQL 存储引擎架构了解吗&…...

高通平台开发系列讲解(摄像头篇)QCM6490 上摄像头驱动开发

文章目录 一、Camera 硬件简介二、内核驱动移植2.1、确定设备树2.2、增加 camera 节点2.3、配置相关 GPIO沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 qcm6490 摄像头驱动开发。 一、Camera 硬件简介 摄像头连接器一般会包含 Mipi 信号、mclk、供电、re…...

MOV压敏电阻应用推荐及选型要点说明

ESD器件-MOV压敏电阻是一种非线性的电阻元器件产品,具有瞬态电压抑制功能,能够吸收电路中多余的电流,可保护一些敏感电路及其他电子产品设备的电路不受ESD、雷击瞬态浪涌电流的危害。对于它的一些应用范围,优恩小编在这里举例说明…...

Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)

目录 一、正则化之weight_decay(L2正则) 1.1 正则化及相关概念 1.2 正则化策略(L1、L2) (1)L1正则化 (2)L2正则化 1.3 L2正则项——weight_decay 二、正则化之Dropout 2.1 Dr…...

Azure OpenAI 官方指南 01|GPT-3 的原理揭秘与微调技巧

Azure OpenAI 服务在微软全球 Azure 平台正式发布后,迅速成为众多用户最关心的服务之一。 Azure OpenAI 服务允许用户通过 REST API 访问 OpenAI 的强大语言模型,包括 GPT-3、Codex 和 Embeddings 模型系列。本期,我们将为您揭秘 Azure Open…...

神垕古镇景区三方背后的博弈,争夺许昌第一家5A景区主导权

钧 瓷 内 参 第37期(总第368期) 2023年3月2日 神垕古镇景区景域,建业,孔家三方背后的博弈,争夺许昌第一家5A景区主导权 在博弈论(Game Theory)经济学中,“智猪博弈”是一个著名的…...

网站建设费属于文化事业建设费/百度热搜榜排名今日头条

转载:http://ling0322.info/2014/04/08/introduction-to-keyphrase-extraction.html 关键词提取就是从文本里面把跟这篇文章意义最相关的一些词抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论…...

wordpress如何上传源码/首页优化排名

图片填充整个PictureBox 只需要设置属性 pictureBox.SizeMode PictureBoxSizeMode.StretchImage;转载于:https://www.cnblogs.com/wuhuisheng/archive/2012/04/06/2434394.html...

wordpress主题king/html制作网站

综上,当监测的fd数量较小,且各个fd都很活跃的情况下,建议使用select和poll;当监听的fd数量较多,且单位时间仅部分fd活跃的情况下,使用epoll会明显提升性能。 select系统调用 select函数 1)nfds…...

泊头市做网站/如何推广自己产品

第1关:求图中边或弧的数目 任务描述 本关任务:求给定图中的边(或弧)的数目。 相关知识 实验目的 掌握图的基本概念; 掌握图的存储结构的设计与实现,基本运算的实现; 熟练掌握图的两种遍历算法、遍历生成树及遍历算法的应用。 实验任务 说明:为使实验程序简洁直观,下…...

英语网站如何做社群/sem专业培训公司

quartz---我为什么要使用quartz quartz是什么?怎么使用?本文不做介绍,有兴趣的朋友可以看笔者之前的博客以及自己查阅相关资料。本文笔者主要想介绍一下我为什么使用Quartz以及在“jrkj”这个项目中运用的场景。 应用场景一 更新静态数据 接着…...

编辑网站/搜狗站长工具平台

一般写法: package strategy_mode;/*** 实现起来比较容易,符合一般开发人员的思路* 假如,类型特别多,算法比较复杂时,整个条件语句的代码就变得很长,难于维护.* 如果有新增类型,就需要频繁的修改此处的代码!* 不符合开闭原则!*/ public class TestStrategy {/*** 根据类型,打折…...