
培训
文章平均质量分 88
蒙娜丽宁
华为HDE(HUAWEI Developer Experts),UnityMarvel创始人,开放原子基金会银牌讲师,51CTO学堂金牌讲师,IT畅销书作者。从事软件研究和开发超过20年,长期从事编译器、人工智能、Python、Go、JavaScript、Java及跨平台技术的研究和开发工作,曾出版超过40本IT图书。主要著作包括《Python从菜鸟到高手》、《Python爬虫从菜鸟到高手》、《奇妙的Python:神奇代码漫游之旅》。
展开
-
Python高效编程之88条军规(2):你真的会格式化字符串吗?
在Python语言中,字符串有多种用途。可以用于在用户界面和命令行实用程序中显示消息;用于用于将数据写入文件和Socket;用于指定“异常”消息;用于调试程序。原创 2020-09-21 10:24:00 · 8012 阅读 · 0 评论 -
Python高效编程之88条军规(1):编码规范、字节序列与字符串
PEP 8是Python语言官方推荐的编码规范,建议采用该编码规范。字节序列和字符串非常容易弄混,而且其中存在很多坑,想了解有哪些坑吗?原创 2020-09-07 14:02:25 · 1646 阅读 · 0 评论 -
Python编程思想(33):异常类与多异常捕获
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏1. 异常类当 Python解释器接收到异常对象时,如何为该异常对象寻找 except块呢?注意到前面的代码中的except块,这个块是专门用于处理该异常类及其子类的异常实例。当 Python解释器接收到异常对象后,会依次...原创 2020-07-05 22:12:08 · 871 阅读 · 0 评论 -
Python编程思想(31):枚举类型深度详解
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏在很多场景下,一个变量的值是固定且有限的,例如,季节只有4个值(春、夏、秋、冬),性别只有2个值(男和女)。这种值有限且固定的数据类型在Python中称为枚举类型。1. 枚举类型基础在Python中有两种方式来定义枚举类型...原创 2020-07-05 21:55:57 · 863 阅读 · 0 评论 -
Python编程思想(32):异常处理中的try…except
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏现在绝大多数编程语言都支持异常处理,异常处理的通行做法是将正常执行的代码放在特定代码块中,然后再将处理异常的代码放在另一个代码块中,如果正常执行的代码块的某条语句抛出了异常,那么就会直接跳到处理异常的代码块中继续执行。而在正常的代码块中..原创 2020-07-04 13:04:19 · 1305 阅读 · 0 评论 -
小白写了一堆if-else,大神实在看不下去了,竟然用策略模式直接摆平了
这里涉及到一个关键词:策略模式,那么到底什么是策略模式呢?本文就来好好给大家讲讲策略模式,大家可以带着如下几个问题来阅读本文:如何通过策略模式优化业务逻辑代码(可以根据自己从事的工作思考)使用策略模式优化if-else,会不会带来什么副作用呢?实现策略模式是否有更好的方式呢?1. 策略模式如何优化代码解构要会带这个问题,需要先弄清楚策略模式的定义,首先来看策略模式的教科书定义:策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。 策略模式原创 2020-07-02 12:07:20 · 1695 阅读 · 2 评论 -
Python编程思想(30):用 metaclass搞定一批类的特性
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏如果希望创建某一批类全部具有某种特征,则可以通过 metaclass来实现。使用 metaclass可以在创建类时动态修改类定义。为了使用 metaclass动态修改类定义,程序需要先定义 metaclass, metaclass应该继承t..原创 2020-06-29 08:20:21 · 538 阅读 · 0 评论 -
Python编程思想(29):使用type()函数定义类
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏在Python语言中使用 type函数可以查看变量的数据类型,但如果想使用 type直接查看某个类的类型型呢?先看如下程序:示例代码:type_demo. pyclass MyClass: passmy = MyClas..原创 2020-06-29 07:59:27 · 768 阅读 · 0 评论 -
Python编程思想(28):限制类的动态特性(__slots__属性)
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习。《Python编程思想》总目录《Python编程思想》专栏Python是动态语言,动态语言的特征之一就是类、对象的属性、方法都可以动态增加和修改。前面已经简单介绍过为对象动态添加属性和方法,本节将进一步介绍 Python的动态特征。前面介绍了如何为对象动态添加方法,但是所添加的方法只是对当前对原创 2020-06-29 07:54:03 · 745 阅读 · 0 评论 -
Python编程思想(27):类的继承
继承是面向对象的3大特征之一(另两个特性是封装和组合),也是实现软件复用的重要手段。Python的继承是多继承机制,也就是一个子类可以同时有多个直接父类。原创 2020-06-28 08:17:53 · 706 阅读 · 0 评论 -
Python编程思想(26):成员变量
在类体内定义的变量,默认属于类本身。如果把类当成类命名空间,那么该类变量其实就是定义在类命名空间内的变量。原创 2020-06-28 08:10:02 · 985 阅读 · 0 评论 -
Python编程思想(25):方法详解
方法是类或对象行为的抽象,但 Python的方法本章上也是函数,其定义方式、调用方式和函数都非常相似,因此 Python的方法并不仅仅是单纯的方法,它与函数也有莫大的关系。原创 2020-06-28 07:58:08 · 797 阅读 · 0 评论 -
Python编程思想(24):类的实例方法
对于在类中定义的实例方法,Python会自动绑定方法的第1个参数(通常是self),第1个参数总是指向调用该方法的对象。由于实例方法(包括构造方法)的self参数会自动绑定,因此程序在调用普通实例方法、构造方法时不需要为第1个参数传值。原创 2020-06-24 08:19:25 · 839 阅读 · 0 评论 -
Python编程思想(23):类与对象
本文主要介绍Python类的定义、Python对象的创建和使用以及为Python对象动态增加实例变量。原创 2020-06-24 08:14:47 · 1500 阅读 · 2 评论 -
Python编程思想(22):Lambda表达式
现在几乎所有的现代编程语言都支持lambda表达式,如果说函数是命名的、方便复用的代码块,那么 lambda表达式则是功能更灵活的代码块,它可以在程序中被传递和调用。原创 2020-06-24 08:08:34 · 1067 阅读 · 0 评论 -
Python编程思想(21):原来函数内部还可以定义函数(局部函数)
在前面的文章中所有的函数都是在全局范围内定义的,这些函数都称为全局函数。 Python还支持在函数体内定义函数,这种被放在函数体内定义的函数称为局部函数。在默认情况下,局部函数对外部是隐藏的,局部函数只能在函数体内调用。函数也可以返回局部函数,以便程序在其他作用域中使用局部数。示例代码:local_func_test.py在这段代码中定义了一个全局函数multi_math_func,在该函数中定义了3个局部函数,而 multi_math_func()函数则根据参数选择调用不同的局部函..原创 2020-06-24 08:04:32 · 12408 阅读 · 0 评论 -
Python编程思想(20):变量作用域
在程序中定义一个变量时,这个变量是有作用范围的。变量的作用范围被称为它的作用域。根据定义变量的位置,变量分为如下两种:局部变量。在函数中定义的变量,包括参数,都被称为局部变量;全局变量。在函数外面、全局范围内定义的变量,被称为全局变量;原创 2020-06-22 21:58:42 · 784 阅读 · 0 评论 -
Python编程思想(19):可变参数也可以这样玩
很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数。 Python当然也不例外,Python允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入。下面程序定义了一个形参个数可变的函数。原创 2020-06-22 13:29:04 · 1665 阅读 · 0 评论 -
Python编程思想(18):哇!原来Python参数还可以这样用
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏目录1. 关键字( keyword)参数2. 参数默认值在定义 Python函数时可指定形参,为函数指定的参数称为形参,这些形参的值要等到调用时才能确定下来,由函数的调用者负责向形参传入参数值。简单来说,就是谁调用函数,谁负..原创 2020-06-15 13:08:52 · 1093 阅读 · 0 评论 -
Python编程实现(17):必须掌握的函数知识
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏目录1. 函数的定义和调用2. 多返回值函数3. 递归函数函数就是封装代码的单元。如果某一段代码要至少调用2次,通常会将这段代码用函数封装。使用函数的好处如下:1. 方便重复调用同样的代码;2. 避免代码冗余..原创 2020-06-12 16:30:56 · 1035 阅读 · 0 评论 -
Python编程思想(16):压缩与排序列表
使用zip()函数可以把两个列表“压缩”成一个zip对象(可迭代对象),这样可以使用一个循环并行遍历两个列表。为了测试zip()函数的功能,可以使用下面的代码:原创 2020-06-12 12:34:26 · 810 阅读 · 0 评论 -
Python编程思想(15):for循环表达式
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏for表达式可以利用其他元组、列表等集合对象创建列表。for表达式的语法格式如下:[表达式 for 循环计数器 in 可迭代对象]从上面的语法格式可以看出,for表达式与普通for循环的区别有如下两点: 在for关键字之..原创 2020-06-12 07:27:02 · 3649 阅读 · 0 评论 -
Python编程思想(14):嵌套循环
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习。《Python编程思想》总目录《Python编程思想》专栏如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。嵌套循环可以是两层,也可以是多层,但并不建议嵌套循环超过3层。嵌套循环既可以是 for-in循环嵌套while循环,也可以是 while循环嵌套 for-in循环,所在都是...原创 2020-06-12 07:21:02 · 1720 阅读 · 0 评论 -
Python编程思想(13):循环中的else语句
Python的循环都可以定义else代码块,当循环条件为 False时,程序会执行else代码块,通常在else子句中完成循环的收尾工作。下面的代码演示了 while循环中else子句的使用方法。原创 2020-06-08 13:39:59 · 1075 阅读 · 0 评论 -
Python编程思想(12):for-in循环
本文的主要内容如下:1. for-in循环的基础知识2. 用for-in循环变量元组和列表3. 用for-in循环遍历字典4. 统计列表中单词的出现次数原创 2020-06-07 22:01:21 · 3971 阅读 · 0 评论 -
震惊!当Python遇到Excel后,将开启你的认知虫洞
本文主要讲Python与Excel的关系以及集成方案,Office家族的其他成员,如Word、PowerPoint与Excel拥有类似的功能,Python同样可以与Word、PowerPoint等Office成员结合,这些内容我以后会写文章讲解。原创 2020-06-03 08:10:56 · 2050 阅读 · 0 评论 -
Python编程思想(11):while循环
《Python编程思想》总目录上一篇:Python编程思想(10):断言循环语句的作用是重复执行某一段代码,这也是任何编程语言必备的功能之一,因为只有自动重复执行某一段代码,才能真正体现计算机CPU的运算速度。而且循环也是任何复杂程序的重要组成部分,例如AI中就大量包含循环语句,正是这些循环语句,才让基于AI的程序可以快速训练模型,准确识别出猫、狗等图片。在Python中,循环有如下两种:while循环 for-in循环本文主要介绍while循环。在讲解while循环之前,先要了解一个循原创 2020-06-02 18:29:07 · 1485 阅读 · 0 评论 -
Python编程思想(10):断言
断言与if语句的功能类似,都可以对一个表达式进行判断,如果表达式的值是False、0、[]等值时,就被认定为“假”,其他的值就被认定为“真”。只是为“假”时的处理方式不同。当if语句的表达式为“假”时,就不会执行if语句中的代码。而断言如果为“假”,则会抛出异常(AssertionError错误)原创 2020-06-02 18:23:32 · 1281 阅读 · 0 评论 -
【疑难杂症】Android Studio Flutter显示loading,无法使用模拟器测试
最近刚升级到了macOS Catalina,发现Android Studio Flutter无法装载模拟器了,模拟器列表一直是Loading,如下图所示:我看到网上有各种原因的解释,有一些并不是根本原因。其实发生这种情况的原因通常是Android或iOS的开发环境没有配置好,或没有接受Licenses。读者可以使用下面的命令查看一下:flutter doctor -v先看Android的信息:如果无法连接Android模拟器,原因可能是Android SDK或相关资源没有安装好原创 2020-05-27 11:40:04 · 2720 阅读 · 0 评论 -
Python编程思想(9):条件语句(if)
《Python编程思想》总目录上一篇:Python编程思想(8):使用字典目录1. if语句基础2. 由于缩进错误引发的血案3. if条件的类型4. pass语句if语句用于进行条件判断,可以使用布尔表达式或布尔值作为分支条件判断。Python语言的if语句既可以作为普通语句使用,也可以作为表达式使用。下面先介绍if语句作为普通语句使用的方法。1. if语句基础Python语言的ifi语句有如下3种形式。第1种形式:if expression: stat原创 2020-05-26 08:22:04 · 5101 阅读 · 2 评论 -
Python编程思想(8):使用字典
字典是Python提供的一种常用的数据结构,可以用于保存具有映射关系的数据。比如有成绩单数据,语文:92, 数学: 98,英语: 99,体育:87。 从这组数据看,像是两个列表。但这两个列表中的元素之间是有一定的关联关系的(一一对应的关系)。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。原创 2020-05-25 17:25:31 · 1248 阅读 · 0 评论 -
Python编程思想(7):列表的增删改操作
在前文已经提到,列表与元组最大的区别在于:元组是不可改变的,列表是可以改变的。元组支持的操作,列表基本上都支持;列表支持对元素的修改,而元组则不支持。从这个角度来看,可以认为列表是增强版的元组。原创 2020-05-25 17:16:05 · 1534 阅读 · 0 评论 -
挽救数据库性能的30条黄金法则
还不知道如何提升数据库的性能吗?你的数据库系统允许缓慢吗?优化数据库系统有什么具体方法呢?想知道详情,请点击这里学习,别忘了分享哦原创 2020-05-25 12:39:12 · 829 阅读 · 0 评论 -
Python编程思想(6):列表和元组的基础知识
《Python编程思想》总目录目录1. 序列2. 创建列表和元组3. 通过索引访问元素4. 分片与子序列5. 加法6. 乘法7. in 运算符8. 长度、最大值和最小值列表(list)、 元组(tuple) 和字典(dict)是Python中非常常用的三种集合类型数据结构,这三种数据结构都可用于保存多个数据项,这对于编程而言是非常重要的。这是因为程序不仅需要使用单个变量来保存数据,还需要使用多种数据结构来保存大量数据,而列表、元组和字典就可满足保存大量数据的需求。..原创 2020-05-22 20:12:32 · 1457 阅读 · 0 评论 -
Python编程思想(5):格式化字符串
《Python编程思想》总目录目录1. 字符串格式化基础2. 模板字符串3. 字符串的format方法4. 更进一步控制字符串格式化参数前面讲的字符串都是静态的,也就是说,一旦指定一个字符串,就固定不变了。但在很多场景下,需要替换字符串中的某一部分。当然,要实现这种操作最简单的方式就是使用字符串连接,不过这太麻烦。在Python中为了解决这个问题,提供了各种格式化字符串的方式。所谓格式化字符串,其实就是在字符串中包含一些占位符,然后用另外一些字符串来替换这些占位符。本文将介绍Py原创 2020-05-21 08:28:57 · 1500 阅读 · 0 评论 -
Python编程思想(4):字符串类型
《Python编程思想》总目录目录《Python编程思想》总目录1. 字符串和转义符2. 字符串内建函数3. 字符串高级操作 (1)反转字符串(2)字符串切片操作4. 保持字符串的原汁原味5. 长字符串字符串的意思就是“一串字符”,也可以看做是字符的序列。比如“Helo, Mike”是一个字符串,“How are you?”也是一个字符串。Python要求字符串必须使用引号括起来,不过Python与大多数编程语言不同,在Python中,既允许使用单引号(‘...原创 2020-05-21 07:59:48 · 2052 阅读 · 0 评论 -
Python编程思想【系列文章】
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习,或点击「极客起源」公众号下方的「编程思想」>「Python编程思想」原创 2020-05-20 08:13:10 · 5403 阅读 · 1 评论 -
Python编程思想(3):数字及其相关运算
Python 提供了三种数值类型:int(整型),float(浮点型)和complex(复数)。int:通常被称为整型或者整数,如200、299、10都属于整型;float:浮点数包含整数和小数部分,如3.1415926,2.71828都属于浮点数;complex:复数包含实数部分和虚数部分,形如 a+bj,其实部和虚部都是浮点类型;原创 2020-05-19 07:18:32 · 1843 阅读 · 1 评论 -
Python编程思想(2):Python主要特性、命名规则与代码缩进
有很多同学问,Python语言到底能做什么呢?我的回答是:Python几乎什么都能做,包括移动、GUI、Web、数据分析,更是数据挖掘、机器学习、深度学习等技术的首选语言。原创 2020-05-19 07:06:10 · 1550 阅读 · 0 评论 -
把99%的程序员烤得外焦里嫩的JavaScript面试题
最近有学员给出一段令人匪夷所思的JavaScript代码(据说是某某大厂面试题),废话少说,上代码:var a = 10;{ a = 99; function a() { } a = 30;}console.log(a);这段代码运行结果是99,也就是说,a = 99将a的值重新设为99,而由于后面使用a定义了一个函数,a = 30其实是修改的a函数,或者干脆说,函数a将变量a覆盖了,所以在a函数的后面再也无法修改变量a的值了,因为变量a已经不存在了,ok,原创 2020-05-12 12:25:38 · 17390 阅读 · 84 评论