11 2022 档案

摘要:csv(Comma Separated Values)是逗号分隔符文本格式,常用于数据交换、Exce文件和数据库数据的导入和导出。与 Excel 文件不同,CSV 文件中: 值没有类型,所有值都是字符串 不能指定字体颜色等样式 不能指定单元格的宽高,不能合并单元格 没有多个工作表 不能嵌入图像图表 阅读全文
posted @ 2022-11-22 17:06 竹蜻蜓vYv 阅读(262) 评论(0) 推荐(0) 编辑
摘要:###使用 pickle 序列化 Python 中,一切皆对象,对象本质上就是一个“存储数据的内存块”。有时候,我们需要将“内存块的数据”保存到硬盘上,或者通过网络传输到其他的计算机上。这时候,就需要“对象的序列化和反序列化”。 对象的序列化机制广泛的应用在分布式、并行系统上。 序列化指的是:将对象 阅读全文
posted @ 2022-11-22 16:44 竹蜻蜓vYv 阅读(34) 评论(0) 推荐(0) 编辑
摘要:文件对象封装了文件相关的操作。在前面我们学习了通过文件对象对文件进行读写操作。本节我们详细列出文件对象的常用属性和方法,并进行说明。 ###文件对象的属性 ###文件对象的打开模式 ###文件对象的常用方法 with open("e.txt", "r", encoding="utf-8") as f 阅读全文
posted @ 2022-11-22 16:29 竹蜻蜓vYv 阅读(47) 评论(0) 推荐(0) 编辑
摘要:二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,不过,我们需要指定二进制模式,从而创建出二进制文件对象。例如: f = open(r"d:\a.txt", 'wb') #可写的、重写模式的二进制文件对象 f = open(r"d:\a.txt", 'ab') #可写的、追加模式的二进 阅读全文
posted @ 2022-11-22 16:20 竹蜻蜓vYv 阅读(116) 评论(0) 推荐(0) 编辑
摘要:【操作】为文本文件每一行的末尾增加行号 with open("e.txt","r",encoding="utf-8") as f: lines = f.readlines() lines = [ line.rstrip()+" #"+str(index+1)+"\n" for index,line 阅读全文
posted @ 2022-11-22 16:14 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:###文本文件的读取 文件的读取一般使用如下三个方法: 1. read([size]) 从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。读取到文件末尾,会返回空字符串。 2. readline() 读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。 阅读全文
posted @ 2022-11-22 16:13 竹蜻蜓vYv 阅读(284) 评论(0) 推荐(0) 编辑
摘要:###with 语句(上下文管理器) with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。 【操作】使用 with 管理文件写入操作 s = ["高淇\n", "高老三\n", "高老 阅读全文
posted @ 2022-11-21 20:33 竹蜻蜓vYv 阅读(39) 评论(0) 推荐(0) 编辑
摘要:###write()/writelines()写入数据 write(a):把字符串 a 写入到文件中 writelines(b):把字符串列表写入文件中,不添加换行符 【操作】添加字符串列表数据到文件中 f = open(r"d:\bb.txt","w",encoding="utf-8") s = 阅读全文
posted @ 2022-11-21 20:25 竹蜻蜓vYv 阅读(44) 评论(0) 推荐(0) 编辑
摘要:在操作文本文件时,经常会操作中文,这时候就经常会碰到乱码问题。为了让大家有能力解决中文乱码问题,这里简单介绍一下各种编码之间的关系 常用编码之间的关系如下: ###ASCII 全称为 American Standard Code for Information Interchange,美国信息交换标 阅读全文
posted @ 2022-11-21 20:20 竹蜻蜓vYv 阅读(221) 评论(0) 推荐(0) 编辑
摘要:一个完整的程序一般都包括数据的存储和读取;我们在前面写的程序数据都没有进行实际的存储,因此 python 解释器执行完数据就消失了。实际开发中,我们经常需要从外部存储介质(硬盘、光盘、U 盘等)读取数据,或者将程序产生的数据存储到文件中,实现“持久化”保存。 有基础的同学知道,很多软件系统是将数据存 阅读全文
posted @ 2022-11-21 19:56 竹蜻蜓vYv 阅读(176) 评论(0) 推荐(0) 编辑
摘要:Pycharm 开发环境的调试进行调试的核心是设置断点。程序执行到断点时,暂时挂起,停止执行。就像看视频按下停止一样,我们可以详细的观看停止处的每一个细节。 断点 程序运行到此处,暂时挂起,停止执行。我们可以详细在此时观察程序的运行情况,方便做出进一步的判断。 1. 设置断点:(1) 在行号后面单击 阅读全文
posted @ 2022-11-21 18:46 竹蜻蜓vYv 阅读(136) 评论(0) 推荐(0) 编辑
摘要:程序开发中,有时候我们也需要自己定义异常类。自定义异常类一般都是运行时异常,通常继承 Exception 或其子类即可。命名一般以 Error、Exception 为后缀。 自定义异常由 raise 语句主动抛出。 【示例】自定义异常类和 raise 语句 #coding=utf-8 #测试自定义异 阅读全文
posted @ 2022-11-21 18:42 竹蜻蜓vYv 阅读(99) 评论(0) 推荐(0) 编辑
摘要:trackback 模块【示例】使用 Traceback 模块打印异常信息 #coding=utf-8 import traceback try: print("step1") num = 1/0 except: traceback.print_exc() 运行结果: 运行结果: step1 Tra 阅读全文
posted @ 2022-11-21 18:34 竹蜻蜓vYv 阅读(97) 评论(0) 推荐(0) 编辑
摘要:finally 块由于是否发生异常都会执行,通常我们放释放资源的代码。其实,我们可以通过 with 上下文管理,更方便的实现释放资源的操作。 with 上下文管理的语法结构如下: with context_expr [ as var]: 语句块 with 上下文管理可以自动管理资源,在 with 代 阅读全文
posted @ 2022-11-21 18:29 竹蜻蜓vYv 阅读(18) 评论(0) 推荐(0) 编辑
摘要:由于 return 有两种作用:结束方法运行、返回值。我们一般不把 return 放到异常处理结构中,而是放到方法最后。 【示例】return 和异常结构的正确处理方式 def test01(): print("step1") try: x = 3 / 0 # return "a" except: 阅读全文
posted @ 2022-11-21 18:17 竹蜻蜓vYv 阅读(68) 评论(0) 推荐(0) 编辑
摘要:try...except...finally 结构try...except...finally 结构中,finally 块无论是否发生异常都会被执行;通常用来释放 try 块中申请的资源。 【示例】try...except...finally 结构简单测试 try: a = input("请输入一个 阅读全文
posted @ 2022-11-21 18:12 竹蜻蜓vYv 阅读(57) 评论(0) 推荐(0) 编辑
摘要:try...except...else 结构 try...except...else 结构增加了“else 块”。如果 try 块中没有抛出异常,则执行 else 块。如果try 块中抛出异常,则执行 except 块,不执行 else 块。 【示例】try...except...else 结构执行 阅读全文
posted @ 2022-11-21 18:00 竹蜻蜓vYv 阅读(31) 评论(0) 推荐(0) 编辑
摘要:上面的结构可以捕获所有的异常,工作中也很常见。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。为了避免遗漏可能出现的异常,可以在最后增加 BaseException。结构如下: try: 被监控的、可能引发异常的语句块 except 阅读全文
posted @ 2022-11-21 17:57 竹蜻蜓vYv 阅读(70) 评论(0) 推荐(0) 编辑
摘要:try...一个 except 结构try...except 是最常见的异常处理结构。结构如下: try: 被监控的可能引发异常的语句块except BaseException [as e]: 异常处理语句块 try 块包含着可能引发异常的代码,except 块则用来捕捉和处理发生的异常。执行的时候 阅读全文
posted @ 2022-11-21 17:50 竹蜻蜓vYv 阅读(110) 评论(0) 推荐(0) 编辑
摘要:###导引问题 在实际工作中,我们遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求;你的程序要打开某个文件,这个文件可能不存在或者文件格式不对;你要读取数据库的数据,数据可能是空的;我们的程序再运行着,但是内存或硬盘可能满了等等。软件程序在运行过程中,非常可能遇到刚刚提 阅读全文
posted @ 2022-11-21 17:32 竹蜻蜓vYv 阅读(51) 评论(0) 推荐(1) 编辑
摘要:1. 阅读全文
posted @ 2022-11-21 11:12 竹蜻蜓vYv 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1. 阅读全文
posted @ 2022-11-21 11:11 竹蜻蜓vYv 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1. 阅读全文
posted @ 2022-11-21 11:11 竹蜻蜓vYv 阅读(14) 评论(0) 推荐(0) 编辑
摘要:1.虚拟环境安装 pip install virtualenv 2.切换数据源 pip install virtualenv -i https://国内数据源 3.创建虚拟环境 virtualenv --system-site-packages 虚拟环境的名字 virtualenv -p /usr/ 阅读全文
posted @ 2022-11-21 11:11 竹蜻蜓vYv 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1.Pycharm优点 方便的环境管理 自动导入包 方便的代码调试 git管理 2.Pycharm缺点 刚开始打开,索引包慢 内存占用比高,大约2G多一点 3.Pycharm环境配置 选择-先前配置的解释器(空白的话,添加解释器-->添加本地解释器-->系统解释器) 阅读全文
posted @ 2022-11-21 11:10 竹蜻蜓vYv 阅读(230) 评论(0) 推荐(0) 编辑
摘要:1.优点 启动超快 内存占用小 界面好看,丰富的主题色彩 2.缺点 插件需要安装多 不支持python自动导包 3.vscode环境配置 阅读全文
posted @ 2022-11-21 11:10 竹蜻蜓vYv 阅读(32) 评论(0) 推荐(0) 编辑
摘要:单例模式(Singleton Pattern)的核心作用是确保一个类只有一个实例,并且提供一个访问该实例的全局访问点。 单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的产生需要比较多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个“单例对象”,然后永久驻留内存中,从而极大的降 阅读全文
posted @ 2022-11-21 11:07 竹蜻蜓vYv 阅读(20) 评论(0) 推荐(0) 编辑
摘要:设计模式是面向对象语言特有的内容,是我们在面临某一类问题时候固定的做法,设计模式有很多种,比较流行的是:GOF(Goup Of Four)23 种设计模式。当然,我们没有必要全部学习,学习几个常用的即可。 对于初学者,我们学习两个最常用的模式:工厂模式和单例模式。工厂模式实现了创建者和调用者的分离, 阅读全文
posted @ 2022-11-21 11:04 竹蜻蜓vYv 阅读(18) 评论(0) 推荐(0) 编辑
摘要:###组合 “is-a”关系,我们可以使用“继承”。从而实现子类拥有的父类的方法和属性。 “is-a”关系指的是类似这样的关系:狗是动物,dog is animal。狗类就应该继承动物类。 “has-a”关系,我们可以使用“组合”,也能实现一个类拥有另一个类的方法和属性。 "has-a”关系指的是这 阅读全文
posted @ 2022-11-21 11:00 竹蜻蜓vYv 阅读(19) 评论(0) 推荐(0) 编辑
摘要:###对象的浅拷贝和深拷贝 ·变量的赋值操作只是形成两个变量,实际还是指向同一个对象。·浅拷贝Python 拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象和拷贝对象会引用同一个子对象。·深拷贝使用 copy 模块的 deepcopy 函数,递归拷贝对象中包含的子对象。源对象和拷 阅读全文
posted @ 2022-11-21 10:53 竹蜻蜓vYv 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Python 对象中包含了很多双下划线开始和结束的属性,这些是特殊属性,有特殊用法。这 里我们列出常见的特殊属性: # 测试特殊属性 class A: pass class B: pass class C(B, A): def __init__(self, nn): self.nn = nn def 阅读全文
posted @ 2022-11-21 10:48 竹蜻蜓vYv 阅读(91) 评论(0) 推荐(0) 编辑
摘要:###特殊方法和运算符重载 Python 的运算符实际上是通过调用对象的特殊方法实现的。比如: a = 20 b = 30 c = a+b d = a.__add__(b) print("c=",c) print("d=",d) 输出结果: c= 50 d= 50 常见的特殊方法统计如下: 每个运算 阅读全文
posted @ 2022-11-21 10:42 竹蜻蜓vYv 阅读(23) 评论(0) 推荐(0) 编辑
摘要:多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。在现实生活中,我们有很多例子。比如:同样是调用人的休息方法,张三的休息是睡觉,李四的休息是玩游戏,高淇老师是敲代码。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。关于多态要注意以下 2 点:1 阅读全文
posted @ 2022-11-21 10:33 竹蜻蜓vYv 阅读(22) 评论(0) 推荐(0) 编辑
摘要:在子类中,如果想要获得父类的方法时,我们可以通过 super()来做。super()代表父类的定义,不是父类对象。 # super() class A: def say(self): print("A: ", self) print("say AAA") class B(A): def say(se 阅读全文
posted @ 2022-11-21 10:29 竹蜻蜓vYv 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Python 支持多继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左向右”按顺序搜索。MRO(Method Resolution Order):方法解析顺序。 我们可以通过 mro()方法获得“类的层次结构”,方法解析顺序也是按照这个“类的层次结构”寻找的。 # 多重继承 c 阅读全文
posted @ 2022-11-21 10:25 竹蜻蜓vYv 阅读(29) 评论(0) 推荐(0) 编辑
摘要:###多重继承 Python 支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点。但是由于,这样会被“类的整体层次”搞的异常复杂,尽量避免使用。 运行结果: 运算结果: cc bb aa 阅读全文
posted @ 2022-11-21 10:20 竹蜻蜓vYv 阅读(20) 评论(0) 推荐(0) 编辑
摘要:###重写__str__()方法 object 有一个__str__()方法,用于返回一个对于“对象的描述”,对应于内置函数 str()经常用于 print()方法,帮助我们查看对象的信息。__str__()可以重写。 class Person: def __init__(self, name, a 阅读全文
posted @ 2022-11-21 10:17 竹蜻蜓vYv 阅读(21) 评论(0) 推荐(0) 编辑
摘要:###object 根类 object 类是所有类的父类,因此所有的类都有 object 类的属性和方法。我们显然有必要深入研究一下 object 类的结构。对于我们继续深入学习 Python 很有好处。 为了深入学习对象,我们先学习内置函数 dir(),他可以让我们方便的看到指定对象所有的属性 【 阅读全文
posted @ 2022-11-21 10:13 竹蜻蜓vYv 阅读(23) 评论(0) 推荐(0) 编辑
摘要:###类成员的继承和重写 1. 成员继承:子类继承了父类除构造方法之外的所有成员。2. 方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写” 【操作】继承和重写的案例 class Person: def __int__(self, name, age): self.name 阅读全文
posted @ 2022-11-20 15:58 竹蜻蜓vYv 阅读(46) 评论(0) 推荐(0) 编辑
摘要:###集成 继承是面向对象程序设计的重要特征,也是实现“代码复用”的重要手段。如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,就大大降低了工作难度。已有的类,我们称为“父类或者基类”,新的类,我们称为“子类或者派生类”。 ###语法格式 Python 支持多重继承,一个子类可以继承多个父 阅读全文
posted @ 2022-11-20 15:51 竹蜻蜓vYv 阅读(26) 评论(0) 推荐(0) 编辑
摘要:###面向对象三大特征介绍 Python 是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。 ###封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装起来”,只对外暴露“相关调用方法”。通过前面学习的“私有属性、私有方法”的方式,实现“封装”。P 阅读全文
posted @ 2022-11-19 16:58 竹蜻蜓vYv 阅读(46) 评论(0) 推荐(0) 编辑
摘要:###@property 装饰器 @property 可以将一个方法的调用方式变成“属性调用”。下面是一个简单的示例,让大家体会一下这种转变: # 简单测试@property class Employee: @property def salary(self): return 30000 emp1 阅读全文
posted @ 2022-11-19 16:49 竹蜻蜓vYv 阅读(45) 评论(0) 推荐(0) 编辑
摘要:###私有方法的调用 # 测试私有属性、私有方法 class Employee: def __init__(self, name, age): self.name = name self.__age = age # 私有实例属性 def __work(self): print("好好学习,天天向上" 阅读全文
posted @ 2022-11-19 16:41 竹蜻蜓vYv 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Python 对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:1. 通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。2. 类内部可以访问私有属性(方法)3. 类外部不能直接访问私有属性(方法)4. 类外部 阅读全文
posted @ 2022-11-19 16:31 竹蜻蜓vYv 阅读(135) 评论(0) 推荐(0) 编辑
摘要:###方法没有重载 在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可。方法签名包含 3个部分:方法名、参数数量、参数类型。Python 中,方法的的参数没有声明类型(调用时确定参数的类型),参数的数量也可以由可变参数控制。因此,Python 中是没有方法的重载的。定义一个方法即可有多种 阅读全文
posted @ 2022-11-19 16:18 竹蜻蜓vYv 阅读(29) 评论(0) 推荐(0) 编辑
摘要:###__call__方法和可调用对象 定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用。 # 测试__call__,可调用对象 class SalaryAccount: '''工资计算类''' def __call__(self, salary): yearSal 阅读全文
posted @ 2022-11-19 16:08 竹蜻蜓vYv 阅读(27) 评论(0) 推荐(0) 编辑
摘要:###__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作。比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。 Python 实现自动的垃圾回收,当对象没有被引用时(引用计数为 0),由垃圾回收器调用__del__方法。 我们也可 阅读全文
posted @ 2022-11-19 16:03 竹蜻蜓vYv 阅读(41) 评论(0) 推荐(0) 编辑
摘要:###类方法 类方法是从属于“类对象”的方法。类方法通过装饰器@classmethod 来定义,格式如下: @classmethod def 类方法名(cls [,形参列表]) : 函数体要点如下:1. @classmethod 必须位于方法上面一行2. 第一个 cls 必须有;cls 指的就是“类 阅读全文
posted @ 2022-11-19 15:25 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:类属性是从属于“类对象”的属性,也称为“类变量”。由于,类属性从属于类对象,可以被所有实例对象共享。 类属性的定义方式: class 类名: 类变量名= 初始值 在类中或者类的外面,我们可以通过:“类名.类变量名”来读写。 【操作】 类属性的使用测试 class Student: company = 阅读全文
posted @ 2022-11-19 15:17 竹蜻蜓vYv 阅读(20) 评论(0) 推荐(0) 编辑
摘要:我们在前面讲的类定义格式中,“class 类名:”。实际上,当解释器执行 class 语句时,就会创建一个类对象。 【操作】测试类对象的生成 class Student: pass # 空语句 print(type(Student)) print(id(Student)) Stu2 = Studen 阅读全文
posted @ 2022-11-19 15:14 竹蜻蜓vYv 阅读(39) 评论(0) 推荐(0) 编辑
摘要:###实例方法 实例方法是从属于实例对象的方法。实例方法的定义格式如下:def 方法名(self [, 形参列表]): 函数体方法的调用格式如下:对象.方法名([实参列表]) ###要点: 1. 定义实例方法时,第一个参数必须为 self。和前面一样,self 指当前的实例对象。2. 调用实例方法时 阅读全文
posted @ 2022-11-19 15:07 竹蜻蜓vYv 阅读(23) 评论(0) 推荐(0) 编辑
摘要:###实例属性和实例方法 ###实例属性 实例属性是从属于实例对象的属性,也称为“实例变量”。他的使用有如下几个要点:1. 实例属性一般在__init__()方法中通过如下代码定义: self.实例属性名 = 初始值2. 在本类的其他实例方法中,也是通过 self 进行访问: self.实例属性名3 阅读全文
posted @ 2022-11-19 15:01 竹蜻蜓vYv 阅读(17) 评论(0) 推荐(0) 编辑
摘要:###__init__构造方法和__new__方法 类是抽象的,也称之为“对象的模板”。我们需要通过类这个模板,创建类的实例对象,然后才能使用类定义的功能。我们前面说过一个 Python 对象包含三个部分:id(identity 识别码)、type(对象类型)、value(对象的值)。现在,我们可以 阅读全文
posted @ 2022-11-19 14:58 竹蜻蜓vYv 阅读(54) 评论(0) 推荐(0) 编辑
摘要:###类的定义 我们把对象比作一个“饼干”,类就是制造这个饼干的“模具”。 我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打包在一起”。 对象是类的具体实体,一般称为“类的实例”。类看做“饼干模具”,对象就是根据这个“模具”制造出的“饼干”。 从一个类创建对象时,每个 阅读全文
posted @ 2022-11-19 14:54 竹蜻蜓vYv 阅读(245) 评论(0) 推荐(0) 编辑
摘要:###对象的进化 随着编程面临的问题越来越复杂,编程语言本身也在进化,从主要处理简单数据开始,随着数据变多进化“数组”; 数据类型变复杂,进化出了“结构体”; 处理数据的方式和逻辑变复杂,进化出了“对象”。 1. 简单数据 像 30,40,50.4 等这些数字,可以看做是简单数据。最初的计算机编程, 阅读全文
posted @ 2022-11-19 14:48 竹蜻蜓vYv 阅读(29) 评论(0) 推荐(0) 编辑
摘要:###第 6 章(1) 面向对象初步 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型软件设计而来的。面向对象编程使程序的扩展性更强、可读性更好,使的编程可以像搭积木一样简单。面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更 阅读全文
posted @ 2022-11-19 14:44 竹蜻蜓vYv 阅读(45) 评论(0) 推荐(0) 编辑
摘要:###LEGB 规则 Python 在查找“名称”时,是按照 LEGB 规则查找的: Local-->Enclosed-->Global-->Built inLocal 指的就是函数或者类的方法内部Enclosed 指的是嵌套函数(一个函数包裹另一个函数,闭包)Global 指的是模块中的全局变量B 阅读全文
posted @ 2022-11-19 14:35 竹蜻蜓vYv 阅读(28) 评论(0) 推荐(0) 编辑
摘要:###nonlocal 关键字 nonlocal 用来声明外层的局部变量。global 用来声明全局变量。 【操作】使用 nonlocal 声明外层局部变量 # 测试 nonlocal、global 关键字的用法 a = 100 def outer(): b = 10 def inner(): no 阅读全文
posted @ 2022-11-19 14:31 竹蜻蜓vYv 阅读(16) 评论(0) 推荐(0) 编辑
摘要:###嵌套函数(内部函数) 嵌套函数:在函数内部定义的函数! def f1(): print('f1 running...') def f2(): print('f2 running...') f2() f1() 输出结果: f1 running... f2 running... 上面程序中,f2( 阅读全文
posted @ 2022-11-19 14:24 竹蜻蜓vYv 阅读(54) 评论(0) 推荐(0) 编辑
摘要:【操作】 使用递归函数计算阶乘(factorial) def factorial(n): if n == 1: return 1 return n * factorial(n - 1) for i in range(1, 6): print(i, '!=', factorial(i)) 输出结果: 阅读全文
posted @ 2022-11-19 14:16 竹蜻蜓vYv 阅读(68) 评论(0) 推荐(0) 编辑
摘要:###递归函数 递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。递归类似于大家中学数学学习过的“数学归纳法”。 每个递归函数必须包含两个部分:1. 终止条件表示递归什么时候结束。一般用于返回值,不再调用自己。2. 递归步骤把第 n 步的值和第 n-1 步相关联。 递归函数由 阅读全文
posted @ 2022-11-19 14:13 竹蜻蜓vYv 阅读(36) 评论(0) 推荐(0) 编辑
摘要:###eval()函数 功能:将字符串 str 当成有效的表达式来求值并返回计算结果。 语法: eval(source[, globals[, locals]]) -> value 参数:source:一个 Python 表达式或函数 compile()返回的代码对象globals:可选。必须是 d 阅读全文
posted @ 2022-11-19 14:09 竹蜻蜓vYv 阅读(81) 评论(0) 推荐(0) 编辑
摘要:###lambda 表达式和匿名函数 lambda 表达式可以用来声明匿名函数。lambda 函数是一种简单的、在同一行中定义函数的方法。lambda 函数实际生成了一个函数对象。lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。lambda 表达式的基 阅读全文
posted @ 2022-11-19 14:07 竹蜻蜓vYv 阅读(31) 评论(0) 推荐(0) 编辑
摘要:###可变参数 可变参数指的是“可变数量的参数”。分两种情况:1. *param(一个星号),将多个参数收集到一个“元组”对象中。2. **param(两个星号),将多个参数收集到一个“字典”对象中。 【操作】测试可变参数处理(元组、字典两种方式) def f1(a, b, *c): print(a 阅读全文
posted @ 2022-11-19 14:00 竹蜻蜓vYv 阅读(39) 评论(0) 推荐(0) 编辑
摘要:###参数的几种类型 ###位置参数 函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为:“位置参数”。 【操作】测试位置参数 def f1(a, b, c): print(a, b, c) f1(2, 3, 4) f1(2, 3) # 报错,位置参数不匹配 输出结果: 阅读全文
posted @ 2022-11-19 13:58 竹蜻蜓vYv 阅读(99) 评论(0) 推荐(0) 编辑
摘要:###传递不可变对象包含的子对象是可变的情况 # 传递不可变对象时。不可变对象里面包含的子对象是可变的。则方法内修改了这个可变对象,源对象也发生了变化。 a = (10, 20, [5, 6]) print("a:", id(a)) def test01(m): print("m:", id(m)) 阅读全文
posted @ 2022-11-19 13:46 竹蜻蜓vYv 阅读(32) 评论(0) 推荐(0) 编辑
摘要:###浅拷贝和深拷贝 为了更深入的了解参数传递的底层原理,我们需要讲解一下“浅拷贝和深拷贝”。我们可以使用内置函数:copy(浅拷贝)、deepcopy(深拷贝)。 浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象 # 测试浅拷贝 阅读全文
posted @ 2022-11-19 13:41 竹蜻蜓vYv 阅读(21) 评论(0) 推荐(0) 编辑
摘要:###传递不可变对象的引用 传递参数是不可变对象(例如:int、float、字符串、元组、布尔值),实际传递的还是对象的引用。在”赋值操作”时,由于不可变对象无法修改,系统会新创建一个对象。 【操作】参数传递:传递不可变对象的引用 a = 100 def f1(n): print("n:", id( 阅读全文
posted @ 2022-11-19 13:36 竹蜻蜓vYv 阅读(69) 评论(0) 推荐(0) 编辑
摘要:###参数的传递 函数的参数传递本质上就是:从实参到形参的赋值操作。 Python 中“一切皆对象”,所有的赋值操作都是“引用的赋值”。所以,Python 中参数的传递都是“引用传递”,不是“值传递”。具体操作时分为两类:1. 对“可变对象”进行“写操作”,直接作用于原对象本身。2. 对“不可变对象 阅读全文
posted @ 2022-11-19 13:32 竹蜻蜓vYv 阅读(21) 评论(0) 推荐(0) 编辑
摘要:###局部变量和全局变量效率测试 局部变量的查询和访问速度比全局变量快,优先考虑使用,尤其是在循环的时候。在特别强调效率的地方或者循环次数较多的地方,可以通过将全局变量转为局部变量提高运行速度。 【操作】测试局部变量和全局变量效率 # 测试局部变量、全局变量的效率 import math impor 阅读全文
posted @ 2022-11-19 13:21 竹蜻蜓vYv 阅读(68) 评论(0) 推荐(0) 编辑
摘要:###变量的作用域(全局变量和局部变量) 变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。 全局变量:1. 在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块结束。2. 全局变量降低了函数的通用性和可读性。应尽量避免全局变量的使 阅读全文
posted @ 2022-11-19 13:17 竹蜻蜓vYv 阅读(264) 评论(0) 推荐(0) 编辑
摘要:###函数也是对象,内存底层分析 Python 中,“一切都是对象”。实际上,执行 def 定义函数后,系统就创建了相应的函数对象。我们执行如下程序,然后进行解释: def print_star(): print("*********") print(print_star()) print(" ") 阅读全文
posted @ 2022-11-19 13:04 竹蜻蜓vYv 阅读(52) 评论(0) 推荐(0) 编辑
摘要:###返回值 return 返回值要点:1. 如果函数体中包含 return 语句,则结束函数执行并返回值;2. 如果函数体中不包含 return 语句,则返回 None 值。3. 要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。 【操作】定义一个打印 n 个星号的无返回值的函数 阅读全文
posted @ 2022-11-19 12:51 竹蜻蜓vYv 阅读(127) 评论(0) 推荐(0) 编辑
摘要:###形参和实参 形参和实参的要点,请参考上一节中的总结。在此不再赘述 【操作】定义一个函数,实现两个数的比较,并返回较大的值。 def printMax(a, b): """实现两个数的比较,并返回较大的值""" if a > b: print(a, '较大值') else: print(b, ' 阅读全文
posted @ 2022-11-19 12:46 竹蜻蜓vYv 阅读(65) 评论(0) 推荐(0) 编辑
摘要:###函数简介 ###函数的基本概念 1. 一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。2. 函数是代码复用的通用机制。 ###Python 函数的分类 Python 中函数分为如下几类:1. 内置函数我们前面使用的 str()、list()、len()等这些都是内置函数,我们可以拿 阅读全文
posted @ 2022-11-19 12:23 竹蜻蜓vYv 阅读(258) 评论(0) 推荐(0) 编辑
摘要:1. 【操作】绘制多个同心圆 import turtle t = turtle.Pen() my_colors = ("red", "green", "yellow", "black") t.width(4) t.speed(1) for i in range(10): # 0 1 2 3 4 t. 阅读全文
posted @ 2022-11-18 15:09 竹蜻蜓vYv 阅读(57) 评论(0) 推荐(0) 编辑
摘要:###推导式创建序列 推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的 Python 风格,会使用它代表你已经超过 Python 初学者的水平。 ###列表推导式 列表推导式生成列表对象,语法如下: [表达式 for item in 阅读全文
posted @ 2022-11-18 15:03 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:###使用 zip()并行迭代 我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。 【操作】测试 zip()并行迭代 names = ("高淇", "高老二", "高老三", "高老四") ages = (18, 16, 20, 25) jobs = ( 阅读全文
posted @ 2022-11-18 14:55 竹蜻蜓vYv 阅读(16) 评论(0) 推荐(0) 编辑
摘要:###循环代码优化 虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算: 1. 尽量减少循环内部不必要的计算 2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。 3. 局部变量查询较快,尽量使用局部变量 阅读全文
posted @ 2022-11-18 14:51 竹蜻蜓vYv 阅读(68) 评论(0) 推荐(0) 编辑
摘要:###else 语句 while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句结束,则会执行 else 子句,否则不执行。语法格式如下: while 条件表达式: 循环体 else: 语句块 或者: for 变量 in 可迭代对象: 循环体 阅读全文
posted @ 2022-11-18 14:47 竹蜻蜓vYv 阅读(114) 评论(0) 推荐(0) 编辑
摘要:###continue 语句 continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最近的一层循环。 【操作】要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资 empNum = 0 salarySum = 0 阅读全文
posted @ 2022-11-18 14:39 竹蜻蜓vYv 阅读(158) 评论(0) 推荐(0) 编辑
摘要:###break 语句 break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只能跳出最近一层的循环。 【操作】使用 break 语句结束循环 while True: a = input("请输入一个字符(输入 Q 或 q 结束)") if a.up 阅读全文
posted @ 2022-11-18 14:34 竹蜻蜓vYv 阅读(166) 评论(0) 推荐(0) 编辑
摘要:【操作】利用嵌套循环打印九九乘法表 for m in range(1, 10): for n in range(1, m+1): print("{0}*{1}={2}".format(m, n, (m*n)), end="\t") print() 输出结果: 1*1=1 2*1=2 2*2=4 3* 阅读全文
posted @ 2022-11-18 14:30 竹蜻蜓vYv 阅读(117) 评论(0) 推荐(0) 编辑
摘要:###嵌套循环和综合练习 一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。 【操作】打印如下图案 for x in range(5): for y in range(5): print(x, end="\t") print() 输出结果: 0 0 0 0 0 1 1 1 1 阅读全文
posted @ 2022-11-18 14:24 竹蜻蜓vYv 阅读(27) 评论(0) 推荐(0) 编辑
摘要:###for 循环和可迭代对象遍历 for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下:for 变量 in 可迭代对象: 循环体语句 【操作】遍历一个元组或列表 for x in (20,30,40): print(x*3) 输出结果: D:\work\python\one\venv\ 阅读全文
posted @ 2022-11-18 14:12 竹蜻蜓vYv 阅读(183) 评论(0) 推荐(0) 编辑
摘要:###循环结构 循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一次条件是否为 True,如果为 True 则重复执行循环体里的语句。图示如下: 循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就会变成一个死 阅读全文
posted @ 2022-11-18 13:45 竹蜻蜓vYv 阅读(195) 评论(0) 推荐(0) 编辑
摘要:###选择结构嵌套 选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系。语法格式如下: if 表达式 1: 语句块 1 if 表达式 2: 语句块 2 else: 语句块 3 else: if 表达式 4: 语句块 4 【操作】输入一个分数。分数在 0-1 阅读全文
posted @ 2022-11-18 13:35 竹蜻蜓vYv 阅读(138) 评论(0) 推荐(0) 编辑
摘要:多分支选择结构的语法格式如下:if 条件表达式 1 : 语句 1/语句块 1elif 条件表达式 2: 语句 2/语句块 2 elif 条件表达式 n : 语句 n/语句块 n[else: 语句 n+1/语句块 n+1] 【注】计算机行业,描述语法格式时,使用中括号[]通常表示可选,非必选。 多分支 阅读全文
posted @ 2022-11-18 13:23 竹蜻蜓vYv 阅读(144) 评论(0) 推荐(0) 编辑
摘要:###双分支选择结构 双分支结构的语法格式如下:if 条件表达式 : 语句 1/语句块 1else: 语句 2/语句块 2 【操作】输入一个数字,小于 10,则打印该数字;大于 10,则打印“数字太大” num = input("请输入一个数字") if int(num) < 10: print(n 阅读全文
posted @ 2022-11-18 13:05 竹蜻蜓vYv 阅读(134) 评论(0) 推荐(0) 编辑
摘要:###选择结构 选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支、多分支。流程图如下: 但分支结构 双分支结构 多分支结构 ###单分支选择结构 if 语句单分支结构的语法形式如下:if 条件表达式:语句/语句块其中:1 .条件表达式:可以是逻辑表达式、关系 阅读全文
posted @ 2022-11-18 12:57 竹蜻蜓vYv 阅读(333) 评论(0) 推荐(0) 编辑
摘要:###PyCharm 开发环境的使用 开始学习控制语句,就会有大量的练习,我们开始学习更加强大的 IDE。目前,比较流行的IDE 是 PyCharm。当然,还有其他 IDE 可供我们使用: 1. IDLE2. PyCharm3. wingIDE4. Eclipse5. IPython ###PyCh 阅读全文
posted @ 2022-11-18 12:17 竹蜻蜓vYv 阅读(71) 评论(0) 推荐(0) 编辑
摘要:###集合 集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。 ###集合创建和删除 1. 使用{}创建集合对象,并使用 add()方法添加元素 >>> a = {3,5,7} >>> a {3, 5, 7} >>> a.add 阅读全文
posted @ 2022-11-17 20:25 竹蜻蜓vYv 阅读(81) 评论(0) 推荐(0) 编辑
摘要:###根据键查找“键值对”的底层过程 我们明白了,一个键值对是如何存储到数组中的,根据键对象取到值对象,理解起来就简单了。 >>> a.get("name") 'gaoqi' 当我们调用 a.get(“name”),就是根据键“name”查找到“键值对”,从而找到值对象“gaoqi”。第一步,我们仍 阅读全文
posted @ 2022-11-17 20:21 竹蜻蜓vYv 阅读(35) 评论(0) 推荐(0) 编辑
摘要:###字典核心底层原理(重要) 字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做 bucket。每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用。由于,所有 bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket。 ### 阅读全文
posted @ 2022-11-17 20:17 竹蜻蜓vYv 阅读(41) 评论(0) 推荐(0) 编辑
摘要:###表格数据使用字典和列表存储,并实现访问 源代码(mypy_09.py): r1 = {"name":"高小一","age":18,"salary":30000,"city":"北京"} r2 = {"name":"高小二","age":19,"salary":20000,"city":"上海" 阅读全文
posted @ 2022-11-17 20:00 竹蜻蜓vYv 阅读(23) 评论(0) 推荐(0) 编辑
摘要:###序列解包 序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。 >>> x,y,z=(20,30,10) >>> x 20 >>> y 30 >>> z 10 >>> (a,b,c)=(9,8,10) >>> a 9 >>> [a,b,c]=[10,20,30] >>> 阅读全文
posted @ 2022-11-17 19:32 竹蜻蜓vYv 阅读(19) 评论(0) 推荐(0) 编辑
摘要:###字典元素添加、修改、删除 1. 给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”。 >>>a = {'name':'gaoqi','age':18,'job':'programmer'} >>> a['address']='西三旗 1 号院' >> 阅读全文
posted @ 2022-11-17 19:30 竹蜻蜓vYv 阅读(169) 评论(0) 推荐(0) 编辑
摘要:###字典元素的访问 为了测试各种访问方法,我们这里设定一个字典对象: a = {'name':'gaoqi','age':18,'job':'programmer'} 1. 通过 [键] 获得“值”。若键不存在,则抛出异常。 >>> a = {'name':'gaoqi','age':18,'jo 阅读全文
posted @ 2022-11-17 19:25 竹蜻蜓vYv 阅读(91) 评论(0) 推荐(0) 编辑
摘要:###字典介绍 字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数、浮点 阅读全文
posted @ 2022-11-17 19:15 竹蜻蜓vYv 阅读(101) 评论(0) 推荐(0) 编辑
摘要:###生成器推导式创建元组 从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__()方法进行遍历,或者直接作为迭代 阅读全文
posted @ 2022-11-17 19:09 竹蜻蜓vYv 阅读(46) 评论(0) 推荐(0) 编辑
摘要:###元组的元素访问和计数 1. 元组的元素不能修改 >>> a = (20,10,30,9,8) >>> a[3]=33 Traceback (most recent call last): File "<pyshell#313>", line 1, in <module> a[3]=33 Typ 阅读全文
posted @ 2022-11-17 19:06 竹蜻蜓vYv 阅读(20) 评论(0) 推荐(0) 编辑
摘要:###元组 tuple 列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如下操作:1. 索引访问2. 切片操作3. 连接操作4. 成员 阅读全文
posted @ 2022-11-17 19:00 竹蜻蜓vYv 阅读(91) 评论(0) 推荐(0) 编辑
摘要:###多维列表 ###二维列表 一维列表可以帮助我们存储一维、线性的数据。二维列表可以帮助我们存储二维、表格的数据。例如下表的数据: 源码: a = [ ["高小一",18,30000,"北京"], ["高小二",19,20000,"上海"], ["高小一",20,10000,"深圳"], ] 内存 阅读全文
posted @ 2022-11-17 18:51 竹蜻蜓vYv 阅读(103) 评论(0) 推荐(0) 编辑
摘要:###列表排序 ###修改原列表,不建新列表的排序 >>> a = [20,10,30,40] >>> id(a) 46017416 >>> a.sort() #默认是升序排列 >>> a [10, 20, 30, 40] >>> a = [10,20,30,40] >>> a.sort(rever 阅读全文
posted @ 2022-11-17 18:46 竹蜻蜓vYv 阅读(17) 评论(0) 推荐(0) 编辑
摘要:###切片操作 我们在前面学习字符串时,学习过字符串的切片操作,对于列表的切片操作和字符串类似。切片是 Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的格式如下:切片 slice 操作可以让我们快速提取子列表或修改。标准格式为: [起始偏移量 start:终止偏移量 end[: 阅读全文
posted @ 2022-11-17 18:40 竹蜻蜓vYv 阅读(66) 评论(0) 推荐(0) 编辑
摘要:###列表元素访问和计数 ###通过索引直接访问元素 我们可以通过索引直接访问元素。索引的区间在[0, 列表长度-1]这个范围。超过这个范围则会抛出异常。 >>> a = [10,20,30,40,50,20,30,20,30] >>> a[2] 30 >>> a[10] Traceback (mo 阅读全文
posted @ 2022-11-17 18:35 竹蜻蜓vYv 阅读(38) 评论(0) 推荐(0) 编辑
摘要:###列表元素的删除 ###del 删除 删除列表指定位置的元素。 >>> a = [100,200,888,300,400] >>> del a[1] >>> a [100,200,300,400] ###pop()方法 pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。 阅读全文
posted @ 2022-11-17 18:28 竹蜻蜓vYv 阅读(98) 评论(0) 推荐(0) 编辑
摘要:###列表元素的增加和删除 当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及列表元素的大量移动,效率较低。除非必要,我们一般只在列表的尾部添加元素或删除元素,这会大大提高列表的操作效率。 ###append()方法 >>> a = [20,40] >>> a.a 阅读全文
posted @ 2022-11-17 18:20 竹蜻蜓vYv 阅读(105) 评论(0) 推荐(0) 编辑
摘要:###基本语法[ ]创建 >>> a = [10,20,'gaoqi','sxt'] >>> a = [] #创建一个空的列表对象 ###list()创建 使用 list()可以将任何可迭代的数据转化成列表。 >>> a = list() #创建一个空的列表对象 >>> a = list(range 阅读全文
posted @ 2022-11-17 18:13 竹蜻蜓vYv 阅读(256) 评论(0) 推荐(0) 编辑
摘要:###序列 序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。比如一个整数序列[10,20,30,40],可以这样示意表示: 10 20 30 40 由于 Python3 中一切皆对象,在内存中实际是按照如下方式存储的: a = [10,20,30, 阅读全文
posted @ 2022-11-16 18:43 竹蜻蜓vYv 阅读(52) 评论(0) 推荐(0) 编辑
摘要:###运算符优先级问题 如下优先级,从高到低 实际使用中,记住如下简单的规则即可,负责的表达式一定要用小括号组织: 1.乘除优先加减 2.位运算和算数运算>比较运算符>赋值运算符 阅读全文
posted @ 2022-11-16 18:17 竹蜻蜓vYv 阅读(35) 评论(0) 推荐(0) 编辑
摘要:###format()基本用法 Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。 我们通过示例进行格式化的学习。 >>> a = "名 阅读全文
posted @ 2022-11-16 18:16 竹蜻蜓vYv 阅读(116) 评论(0) 推荐(0) 编辑
摘要:###可变字符串 在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO对象或 array 模块。 >>> import io >>> s = "hello, sxt" >>> 阅读全文
posted @ 2022-11-16 18:16 竹蜻蜓vYv 阅读(37) 评论(0) 推荐(0) 编辑
摘要:###字符串驻留机制和字符串比较 字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制驻留机制。 >>> a = "abd_33" >>> b = "abd_ 阅读全文
posted @ 2022-11-16 18:15 竹蜻蜓vYv 阅读(21) 评论(0) 推荐(0) 编辑
摘要:###字符串常用方法汇总 字符串有很多常用的方法,我们需要熟悉。我们通过表格将这些方法汇总起来,方便大家查阅。希望大家针对每个方法都做一次测试。 ###常用查找方法 我们以一段文本作为测试:a='''我是高淇,今年 18 岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他 6 岁了。我是一个编程教育 阅读全文
posted @ 2022-11-16 18:15 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:###split()分割和 join()合并 split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下: >>> a = "to be or not to be" >>> a.split() ['to', 阅读全文
posted @ 2022-11-16 18:12 竹蜻蜓vYv 阅读(37) 评论(0) 推荐(0) 编辑
摘要:###字符串切片 slice 操作 切片 slice 操作可以让我们快速的提取子字符串。标准格式为:[起始偏移量 start:终止偏移量 end:步长 step] 典型操作(三个量为正数的情况)如下: 其他操作(三个量为负数)的情况: 切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个 阅读全文
posted @ 2022-11-16 18:11 竹蜻蜓vYv 阅读(12) 评论(0) 推荐(0) 编辑
摘要:###字符串基本特点 很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上,大多数程序员打交道最多的是“字符串”而不是“数字”。因为,编程是用来解决现实问题的,因此逻辑思维的重要性远远超过数学能力。 字符串的本质是:字符序列。Python 的字符串是不可变的,我们无法对原字符串 阅读全文
posted @ 2022-11-16 18:10 竹蜻蜓vYv 阅读(45) 评论(0) 推荐(0) 编辑
摘要:###空字符串和 len()函数 Python 允许空字符串的存在,不包含任何字符且长度为 0。例如: >>> c = '' >>> len(c) 0 len()用于计算字符串含有多少字符。例如: >>> d = 'abc 尚学堂' >>> len(d) 6 ###转义字符 我们可以使用“\+特殊字 阅读全文
posted @ 2022-11-16 18:10 竹蜻蜓vYv 阅读(37) 评论(0) 推荐(0) 编辑
摘要:###str()实现数字转型字符串 str()可以帮助我们将其他数据类型转换为字符串。例如:str(5.20) ==> ‘5.20’ str(3.14e2)==>’314.0’ str(True) ==> ‘True’ 当我们调用 print()函数时,解释器自动调用了 str()将非字符串的对象转 阅读全文
posted @ 2022-11-16 18:10 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:【操作】定义多点坐标_绘出折线_并计算起始点和终点距离 import turtle import math #定义多个点的坐标 x1,y1 = 100,100 x2,y2 = 100,-100 x3,y3 = -100,-100 x4,y4 = -100,100 #绘制折线 turtle.penup 阅读全文
posted @ 2022-11-16 18:09 竹蜻蜓vYv 阅读(51) 评论(0) 推荐(0) 编辑
摘要:###布尔值 Python2 中没有布尔值,直接用数字 0 表示 False,用数字 1 表示 True。Python3 中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和 0,甚至可以和数字相加。 >>> a = True >>> b = 3 >>> a+b 4 ###比较 阅读全文
posted @ 2022-11-16 18:09 竹蜻蜓vYv 阅读(60) 评论(0) 推荐(0) 编辑
摘要:###同一运算符 同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。 is 与 == 区别:is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。== 用于判断引用变量引用对象的值是否相等,默认调用对象的 __eq__()方法。 ###整数缓存问题 Python 仅仅对比较小的整 阅读全文
posted @ 2022-11-16 18:09 竹蜻蜓vYv 阅读(24) 评论(0) 推荐(0) 编辑
摘要:###时间的表示 计算机中时间的表示是从“1970 年 1 月 1 日 00:00:00”开始,以毫秒(1/1000 秒)进行计算。我们也把 1970 年这个时刻成为“unix 时间点”。这样,我们就把时间全部用数字来表示了。 python 中可以通过 time.time() 获得当前时刻,返回的值 阅读全文
posted @ 2022-11-16 18:08 竹蜻蜓vYv 阅读(109) 评论(0) 推荐(0) 编辑
摘要:###整数 Python 中,除 10 进制,还有其他三种进制:0b 或 0B,二进制 0 10o 或 0O,八进制 0 1 2 3 4 5 6 70x 或 0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f 这三种进制可以非常方便的进行“位运算”操作。位运算知识后续将会 阅读全文
posted @ 2022-11-16 18:07 竹蜻蜓vYv 阅读(77) 评论(0) 推荐(0) 编辑
摘要:###浮点数 浮点数,称为 float。浮点数用a*b10形式的科学计数法表示。比如:3.14,表示成:314E-2 或者 314e-2。这些数字在内存中也是按照科学计数法存储。 ###类型转换和四舍五入 1. 类似于 int(),我们也可以使用 float()将其他类型转化成浮点数。2. 整数和浮 阅读全文
posted @ 2022-11-16 18:07 竹蜻蜓vYv 阅读(65) 评论(0) 推荐(0) 编辑
摘要:###最基本内置数据类型和运算符 每个对象都有类型,python 中最基本的内置数据类型:1. 整型整数,2345,10,502. 浮点型小数,3.14 或者科学计数法 314e-23. 布尔型表示真假,仅包含:True、False4. 字符串型由字符组成的序列。 “abc”,”sxt”,“尚学堂” 阅读全文
posted @ 2022-11-16 18:06 竹蜻蜓vYv 阅读(26) 评论(0) 推荐(0) 编辑
摘要:###变量和简单赋值语句 ###变量的声明和赋值 变量的声明和赋值用于将一个变量绑定到一个对象上,格式如下:变量名 = 表达式 最简单的表达式就是字面量。比如:a = 123 。 运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象;然后,将这个对象地址赋值给左边的变量。 【操作】 阅读全文
posted @ 2022-11-16 18:04 竹蜻蜓vYv 阅读(32) 评论(0) 推荐(0) 编辑
摘要:###链式赋值 链式赋值用于同一个对象赋值给多个变量。x=y=123 相当于:x=123; y=123 >>> x=y=123 >>> x 123 >>> y 123 >>> ###系列解包赋值 系列数据赋值给对应相同个数的变量(个数必须保持一致)>>> a,b,c=4,5,6 相当于:a=4;b= 阅读全文
posted @ 2022-11-16 18:04 竹蜻蜓vYv 阅读(57) 评论(0) 推荐(0) 编辑
摘要:###对象 Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。 1. 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj)可返回对象 obj 的标识。2. 类型用于表示对象存储的“数据”的类型。类型可以限制对 阅读全文
posted @ 2022-11-16 18:03 竹蜻蜓vYv 阅读(70) 评论(0) 推荐(0) 编辑
摘要:###引用 在 Python 中,变量也成为:对象的引用。因为,变量存储的就是对象的地址。变量通过地址引用了“对象”。 变量位于:栈内存(压栈出栈等细节,后续再介绍)。对象位于:堆内存。 ###Python 是动态类型语言 变量不需要显式声明类型。根据变量引用的对象,Python 解释器自动确定数据 阅读全文
posted @ 2022-11-16 18:03 竹蜻蜓vYv 阅读(30) 评论(0) 推荐(0) 编辑
摘要:###标识符 ###基本用法 标识符:用于变量、函数、类、模块等的名称。标识符有如下特定的规则:1. 区分大小写。如:sxt 和 SXT 是不同的2. 第一个字符必须是字母、下划线。其后的字符是:字母、数字、下划线3. 不能使用关键字。比如:if、or、while 等。4. 以双下划线开头和结尾的名 阅读全文
posted @ 2022-11-16 18:03 竹蜻蜓vYv 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1. 建立 Python 开发环境,并完成第一个 Python 程序。将整个过程使用图文描述出来。2. 根据老师代码,完成奥运五环的绘图程序 #导入绘图模块 import turtle #配置画笔粗细 turtle.width(10) #绘制绿环 turtle.color("blue") turtl 阅读全文
posted @ 2022-11-16 18:02 竹蜻蜓vYv 阅读(591) 评论(0) 推荐(0) 编辑
摘要:###Python程序的构成 1. Python 程序由模块组成。一个模块对应 python 源文件,一般后缀名是:.py。2. 模块由语句组成。运行 Python 程序时,按照模块中语句的顺序依次执行。3. 语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。 ## 阅读全文
posted @ 2022-11-16 18:02 竹蜻蜓vYv 阅读(116) 评论(0) 推荐(0) 编辑
摘要:###程序基本格式 1. 恰当的空格,缩进问题 (1) 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 (2) 语句从新行的第一列开始。 (3) 缩进风格统一: 1 每个缩进层次使用 单个制表符 或四个空格(IDE 会自动将制表符设置成 4 个空格) 2 Pytho 阅读全文
posted @ 2022-11-16 18:01 竹蜻蜓vYv 阅读(72) 评论(0) 推荐(0) 编辑
摘要:###学会学习,再去学习 1.守 2.破 3.离 ###要动手,实战吧 1.练习 2.练习 3.练习 阅读全文
posted @ 2022-11-16 18:01 竹蜻蜓vYv 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1.为了让初学者更加容易接受编程,我们这里先从海龟画图开始讲解。这样,大家在不接触其他编程概念时,就能开始做出一些简单的效果。提高兴趣,寓教于乐。 >>> import turtle #导入 turtle 模块>>> turtle.showturtle() #显示箭头 >>> turtle.writ 阅读全文
posted @ 2022-11-16 18:01 竹蜻蜓vYv 阅读(138) 评论(0) 推荐(0) 编辑
摘要:###IDLE介绍 1. IDLE 是 Python 的官方标准开发环境,Python 安装完后同时就安装了 IDLE。2. IDLE 已经具备了 Python 开发几乎所有功能(语法智能提示、不同颜色显示不同类型等等),也不需要其他配置,非常适合初学者使用。3. IDLE 是 Python 标准发 阅读全文
posted @ 2022-11-16 18:00 竹蜻蜓vYv 阅读(359) 评论(0) 推荐(0) 编辑
摘要:###Python 下载安装和配置 1. 进入官网:www.python.org/downloads/2. 下载3. 安装(和安装一般软件区别不大)4. 环境变量问题勾选:“Add Python to environment variable”。 这样就会将 Python 添加到环境变量 Path 阅读全文
posted @ 2022-11-16 17:59 竹蜻蜓vYv 阅读(33) 评论(0) 推荐(0) 编辑
摘要:###交互模式(脚本 shell 模式) 1. 进入命令行窗口,输入:python 2. >>>即为“提示符”3. 关闭交互窗口:(1) Ctrl+Z 和回车(2) 输入 quit()命令(3) 直接关闭命令行窗口4. 中断程序执行:ctrl+C 交互模式工作原理和 Python 处理文件的方式一样 阅读全文
posted @ 2022-11-16 17:59 竹蜻蜓vYv 阅读(81) 评论(0) 推荐(0) 编辑
摘要:###简介: Python是一种解释型,面向对象的语言。由吉多·范罗苏姆(Guido van Rossum)于1989 年发明,1991 年正式公布。官网:www.python.org Python单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提·派森的飞 阅读全文
posted @ 2022-11-16 17:58 竹蜻蜓vYv 阅读(99) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示