python
无法撼动熬夜
这个作者很懒,什么都没留下…
展开
-
Python函数关键字参数及用法
在定义 Python 函数时可定义形参(形式参数的意思),这些形参的值要等到调用时才能确定下来,由函数的调用者负责为形参传入参数值。简单来说,就是谁调用函数,谁负责传入参数值。Python 函数的参数名不是无意义的,Python 允许在调用函数时通过名字来传入参数值。因此,Python 函数的参数名应该具有更好的语义,这样程序可以立刻明确传入函数的每个参数的含义。按照形参位置传入的参...原创 2019-07-06 11:40:58 · 675 阅读 · 0 评论 -
Python逻辑运算符及其用法
逻辑运算符用于操作 bool 类型的变量、常量或表达式,逻辑运算的返回值也是 bool 值。Python 的逻辑运算符有如下三个:and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。 or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False; not:非,只需要一个操作数,如果操作数为 True,则返回 False...原创 2019-06-29 18:08:25 · 328 阅读 · 0 评论 -
Python bool类型和比较运算符(入门必读)
Python 提供了 bool 类型来表示真(对)或假(错),比如常见的5 > 3比较算式,这个是正确的,在程序世界里称之为真(对),Python 使用 True 来代表;再比如4 > 20比较算式,这个是错误的,在程序世界里称之为假(错),Python 使用 False 来代表。由此可见,bool 类型就是用于代表某个事情的真(对)或假(错),如果这个事情是正确的,...原创 2019-06-28 21:17:43 · 324 阅读 · 0 评论 -
Python赋值运算符(入门必读)
运算符是一种特殊的符号,用来表示数据的运算、赋值和比较等。Python 语言使用运算符将一个或多个操作数连接成可执行语句,用来实现特定功能。Python 语言中的运算符可分为如下几种:赋值运算符 算术运算符 位运算符 索引运算符 比较运算符 逻辑运算符本节来系统地介绍赋值运算符。赋值运算符用于为变量或常量指定值,Python 使用“=”作为赋值运算符。通常,使用赋值运...原创 2019-06-28 21:17:00 · 323 阅读 · 0 评论 -
Python算术运算符及用法详解
Python算术运算符Python 支持所有的基本算术运算符,这些算术运算符用于执行基本的数学运算,如加、减、乘、除和求余等。下面是 7 个基本的算术运算符。+:加法运算符,例如如下代码: a = 5.2 b = 3.1 the_sum = a + b # sum的值为8.3 print("the_sum的值为:", the_sum)除此之外,“+”还可以作为字符串(...原创 2019-06-28 21:16:50 · 1695 阅读 · 0 评论 -
Python位运算符详解
位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用。使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效。位运算符对于初学者来说有些难度,因此初学者可先跳过本节内容。Python 支持的位运算符有如下 6 个:&:按位与。 |:按位或。 ^:按位异或。 ~:按位取反。 <<:...原创 2019-06-28 21:16:37 · 465 阅读 · 0 评论 -
Python逻辑运算符及其用法
逻辑运算符用于操作 bool 类型的变量、常量或表达式,逻辑运算的返回值也是 bool 值。Python 的逻辑运算符有如下三个:and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。 or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False; not:非,只需要一个操作数,如果操作数为 True,则返回 False...原创 2019-06-28 21:16:10 · 391 阅读 · 0 评论 -
Python函数(函数定义、函数调用)用法详解
函数是 Python 程序的重要组成单位,一个 Python 程序可以由很多个函数组成。前面我们己经用过大量函数,如 len()、max() 等,使用函数是真正开始编程的第一步。比如在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着每次当程序需要实现该功能时,都要将前面定义的代码复制...原创 2019-07-04 11:39:56 · 4429 阅读 · 1 评论 -
Python函数默认参数设置(超级详细)
在某些情况下,程序需要在定义函数时为一个或多个形参指定默认值,这样在调用函数时就可以省略为该形参传入参数值,而是直接使用该形参的默认值。为形参指定默认值的语法格式如下:形参名 = 默认值从上面的语法格式可以看出,形参的默认值紧跟在形参之后,中间以英文“=”隔开。例如,如下程序为 name、message 形参指定了默认值: # 为两个参数指定默认值 def say_...原创 2019-07-04 11:30:00 · 9744 阅读 · 0 评论 -
Python项目实战:数字转人民币读法
本节实现在实际开发中常用的一个工具函数:将一个浮点数转换成人民币读法的字符串,这个程序需要使用数组。实现这个函数的思路是,首先把这个浮点数分成整数部分和小数部分。提取整数部分很容易,直接将这个浮点数强制类型转换成一个整数即可,这个整数就是浮点数的整数部分;再使用浮点数减去整数就可以得到这个浮点数的小数部分。然后分开处理整数部分和小数部分。小数部分的处理比较简单,直接截断保留 2 位数...原创 2019-07-04 11:39:59 · 1871 阅读 · 1 评论 -
Python项目实战:绕圈圈面试题
下面是来自某知名公司的一道“面试题”:给定 4,应该输出如下形式的数据:01 12 11 1002 13 16 0903 14 15 0804 05 06 07给定 5,应该输出如下形式的数据:01 16 15 14 1302 17 24 23 1203 18 25 22 1104 19 20 21 1005 06 07 08 09仔细观察上面的试题,不难发现程...原创 2019-07-04 11:39:58 · 1266 阅读 · 1 评论 -
Python函数返回多个值的方法(入门必读)
如果程序需要有多个返回值,则既可将多个值包装成列表之后返回,也可直接返回多个值。如果 Python 函数直接返回多个值,Python 会自动将多个返回值封装成元组。如下程序示范了函数直接返回多个值的情形: def sum_and_avg(list): sum = 0 count = 0 for e in list: # 如果元素e是...原创 2019-07-04 11:30:01 · 8621 阅读 · 0 评论 -
Python局部函数及用法
前面所看到的函数都是在全局范围内定义的,它们都是全局函数。Python 还支持在函数体内定义函数,这种被放在函数体内定义的函数称为局部函数。在默认情况下,局部函数对外部是隐藏的,局部函数只能在其封闭(enclosing)函数内有效,其封闭函数也可以返回局部函数,以便程序在其他作用域中使用局部函数。 def get_math_func(type, nn) : # 定义一个...原创 2019-07-04 11:19:58 · 301 阅读 · 0 评论 -
Python函数使用方法(高级用法)
Python 的函数是“一等公民”,因此函数本身也是一个对象,函数既可用于赋值,也可用作其他函数的参数,还可作为其他函数的返回值。使用函数变量Python 的函数也是一种值:所有函数都是 function 对象,这意味着可以把函数本身赋值给变量,就像把整数、浮点数、列表、元组赋值给变量一样。当把函数赋值给变量之后,接下来程序也可通过该变量来调用函数。例如如下代码: # 定...原创 2019-07-04 11:19:56 · 972 阅读 · 0 评论 -
Python运算符优先级一览表
所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。表 1 中列出了包括分隔符在内的所有运算...原创 2019-06-29 18:08:28 · 939 阅读 · 0 评论 -
ython序列(列表list和元组tuple)用法完全攻略
所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引来访问成员。Python 的常见序列类型包括字符串、列表和元组。前一章介绍过的字符串,其实就是一种常见的序列,通过索引访问字符串内的字符程序就是序列的示范程序。本节介绍的序列主要是指列表和元组,这两种类型看起来非常相似,最主要的区别在于:元组是不可变的,元组一旦构建出来,程序就不能修改元...原创 2019-06-29 18:08:30 · 226 阅读 · 0 评论 -
Python函数使用方法(高级用法)
Python 的函数是“一等公民”,因此函数本身也是一个对象,函数既可用于赋值,也可用作其他函数的参数,还可作为其他函数的返回值。使用函数变量Python 的函数也是一种值:所有函数都是 function 对象,这意味着可以把函数本身赋值给变量,就像把整数、浮点数、列表、元组赋值给变量一样。当把函数赋值给变量之后,接下来程序也可通过该变量来调用函数。例如如下代码: # 定...原创 2019-07-06 11:40:03 · 949 阅读 · 0 评论 -
Python局部函数及用法
前面所看到的函数都是在全局范围内定义的,它们都是全局函数。Python 还支持在函数体内定义函数,这种被放在函数体内定义的函数称为局部函数。在默认情况下,局部函数对外部是隐藏的,局部函数只能在其封闭(enclosing)函数内有效,其封闭函数也可以返回局部函数,以便程序在其他作用域中使用局部函数。 def get_math_func(type, nn) : # 定义一个...原创 2019-07-06 11:40:01 · 350 阅读 · 0 评论 -
Python变量作用域(入门必读)
在程序中定义一个变量时,这个变量是有作用范围的,变量的作用范围被称为它的作用域。根据定义变量的位置,变量分为两种:局部变量:在函数中定义的变量,包括参数,都被称为局部变量。 全局变量:在函数外面、全局范围内定义的变量,被称为全局变量。每个函数在执行时,系统都会为该函数分配一块“临时内存空间”,所有的局部变量都被保存在这块临时内存空间内。当函数执行完成后,这块内存空间就被释放了,这...原创 2019-07-06 11:39:59 · 175 阅读 · 0 评论 -
Python函数参数传递机制(超级详细)
Python 的参数值是如何传入函数的呢?这是由 Python 函数的参数传递机制来控制的。Python 中函数的参数传递机制都是“值传递”。所谓值传递,就是将实际参数值的副本(复制品)传入函数,而参数本身不会受到任何影响。Python 里的参数传递类似于《西游记》里的孙悟空,它复制一个假孙悟空,假孙悟空具有的能力和真孙悟空相同,可除妖或被砍头。但不管这个假孙悟空遇到什么事,真孙悟空都不...原创 2019-07-06 11:39:58 · 4093 阅读 · 3 评论 -
Python可变参数函数用法详解
很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数。Python 当然也不例外,Python 允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入。下面程序定义了一个形参个数可变的函数: # 定义了支持参数收集的函数 def test(a, *books) : print(books) # b...原创 2019-07-06 11:39:56 · 787 阅读 · 0 评论 -
Python函数默认参数设置(超级详细)
在某些情况下,程序需要在定义函数时为一个或多个形参指定默认值,这样在调用函数时就可以省略为该形参传入参数值,而是直接使用该形参的默认值。为形参指定默认值的语法格式如下:形参名 = 默认值从上面的语法格式可以看出,形参的默认值紧跟在形参之后,中间以英文“=”隔开。例如,如下程序为 name、message 形参指定了默认值: # 为两个参数指定默认值 def say_...原创 2019-07-06 11:39:54 · 918 阅读 · 0 评论 -
Python函数返回多个值的方法(入门必读)
如果程序需要有多个返回值,则既可将多个值包装成列表之后返回,也可直接返回多个值。如果 Python 函数直接返回多个值,Python 会自动将多个返回值封装成元组。如下程序示范了函数直接返回多个值的情形: def sum_and_avg(list): sum = 0 count = 0 for e in list: # 如果元素e是...原创 2019-07-06 11:39:51 · 1563 阅读 · 0 评论 -
Python函数(函数定义、函数调用)用法详解
函数是 Python 程序的重要组成单位,一个 Python 程序可以由很多个函数组成。前面我们己经用过大量函数,如 len()、max() 等,使用函数是真正开始编程的第一步。比如在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着每次当程序需要实现该功能时,都要将前面定义的代码复制...原创 2019-07-06 11:39:50 · 904 阅读 · 0 评论 -
Python list列表删除元素(3种方法)
删除列表元素使用del语句。del 语句是 Python 的一种语句,专门用于执行删除操作,不仅可用于删除列表的元素,也可用于删除变量等。使用 del 语句既可删除列表中的单个元素,也可直接删除列表的中间一段。例如如下代码: a_list = ['crazyit', 20, -2.4, (3, 4), 'fkit'] # 删除第3个元素 del a_list[2] pr...原创 2019-06-29 18:09:37 · 2701 阅读 · 0 评论 -
Python字典及基本操作(超级详细)
字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 k...原创 2019-06-29 18:08:40 · 28960 阅读 · 4 评论 -
Python list常用方法(count、index、pop、reverse和sort)快速攻略
除前面章节介绍的增加元素、删除元素、修改元素方法之外,列表还包含了一些常用的方法。例如,在交互式解释器中输入 dir(list) 即可看到列表包含的所有方法,如下所示:>>> dir(list)['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 're...原创 2019-06-29 18:08:38 · 986 阅读 · 0 评论 -
Python list列表添加元素的3种方法
Python list 列表增加元素可调用列表的append() 方法,该方法会把传入的参数追加到列表的最后面。append() 方法既可接收单个值,也可接收元组、列表等,但该方法只是把元组、列表当成单个元素,这样就会形成在列表中嵌套列表、嵌套元组的情形。例如如下代码: a_list = ['crazyit', 20, -2] # 追加元素 a_list.append('f...原创 2019-06-29 18:08:34 · 7707 阅读 · 0 评论 -
Python list()和tuple()函数用法
前面己经提到,列表与元组最大的区别在于:元组是不可改变的,列表是可改变的。元组支持的操作,列表基本上都支持;列表支持对元素的修改,而元组则不支持。从这个角度来看,可以认为列表是增强版的元组。虽然大部分时候都可使用列表来代替元组,但如果程序不需要修改列表所包含的元素,那么使用元组代替列表会更安全。list() 函数除使用前面介绍的方括号语法创建列表之外,Python 还提供了一个内...原创 2019-06-29 18:08:31 · 183 阅读 · 0 评论 -
Python可变参数函数用法详解
很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数。Python 当然也不例外,Python 允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入。下面程序定义了一个形参个数可变的函数: # 定义了支持参数收集的函数 def test(a, *books) : print(books) # b...原创 2019-07-04 11:20:00 · 1422 阅读 · 0 评论 -
Python lambda表达式及用法
lambda 表达式是现代编程语言争相引入的一种语法,如果说函数是命名的、方便复用的代码块,那么 lambda 表达式则是功能更灵活的代码块,它可以在程序中被传递和调用。回顾局部函数回顾《Python函数高级用法》一节中,get_math_func() 函数将返回三个局部函数之一。该函数代码如下:def get_math_func(type) : # 定义三个局部函数...原创 2019-07-04 11:19:54 · 2698 阅读 · 0 评论 -
Python list列表修改元素(入门必读)
列表的元素相当于变量,因此程序可以对列表的元素赋值,这样即可修改列表的元素。例如如下代码: a_list = [2, 4, -3.4, 'crazyit', 23] # 对第3个元素赋值 a_list[2] = 'fkit' print(a_list) # [2, 4, 'fkit', 'crazyit', 23] # 对倒数第2个元素赋值 a_list[-2] = 952...原创 2019-07-03 11:14:59 · 1358 阅读 · 0 评论 -
Python循环结构中else用法(入门必读)
Python 的循环都可以定义 else 代码块,当循环条件为 False 时,程序会执行 else 代码块。如下代码示范了为 while 循环定义 else 代码块: count_i = 0 while count_i < 5: print('count_i小于5: ', count_i) count_i += 1 else: print...原创 2019-07-03 11:20:25 · 1692 阅读 · 0 评论 -
Python for循环及用法详解
for-in 循环专门用于遍历范围、列表、元素和字典等可迭代对象包含的元素。for-in 循环的语法格式如下:for 变量 in 字符串|范围|集合等: statements对于上面的语法格式有以下两点说明:for-in 循环中的变量的值受 for-in 循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值。 for-in 循环可用于遍...原创 2019-07-03 11:19:01 · 7030 阅读 · 0 评论 -
Python if else条件语句详解
if 分支使用布尔表达式或布尔值作为分支条件来进行分支控制。Python 的 if 分支既可作为语句使用,也可作为表达式使用。下面先介绍 if 分支作为语句使用的情形。if 语句可使用任意表达式作为分支条件来进行分支控制。Python 的 if 语句有如下三种形式:第一种形式:if expression: statements…第二种形式:if expressio...原创 2019-07-03 11:16:06 · 14394 阅读 · 0 评论 -
浅谈Python类命名空间
再次重申,Python 的类就像命名空间。Python 程序默认处于全局命名空间内,类体则处于类命名空间内,Python 允许在全局范围内放置可执行代码,当 Python 执行该程序时,这些代码就会获得执行的机会。类似地,Python 同样允许在类范围内放置可执行代码,当 Python 执行该类定义肘,这些代码同样会获得执行的机会。例如,如下程序测试了类命名空间: class I...原创 2019-07-08 11:30:02 · 866 阅读 · 0 评论 -
Python @函数装饰器及用法(超级详细)
前面介绍的 @staticmethod 和 @classmethod 的本质就是函数装饰器,其中 staticmethod 和 classmethod 都是 Python 内置的函数。使用 @ 符号引用已有的函数(比如 @staticmethod、@classmethod)后,可用于修饰其他函数,装饰被修饰的函数。那么我们是否可以开发自定义的函数装饰器呢?答案是肯定的。当程序使用“@...原创 2019-07-08 11:30:00 · 402 阅读 · 0 评论 -
Python静态方法和类方法的区别和应用(无师自通)
实际上,Python 完全支持定义类方法,甚至支持定义静态方法。Python 的类方法和静态方法很相似,它们都推荐使用类来调用(其实也可使用对象来调用)。类方法和静态方法的区别在于,Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常建议参数名为 cls)会自动绑定到类本身;但对于静态方法则不会自动绑定。使用 @classmethod 修饰的方法就是类方法;使用 @st...原创 2019-07-08 11:29:58 · 717 阅读 · 0 评论 -
Python类调用实例方法
前面讲过,在 Python 的类体中定义的方法默认都是实例方法,也示范了通过对象来调用实例方法。但要提醒大家的是,Python 的类在很大程度上是一个命名空间,当程序在类体中定义变量、方法时,与前面介绍的定义变量、定义函数其实并没有太大的不同。对比如下代码: # 定义全局空间的foo函数 def foo (): print("全局空间的foo方法") # 全局空间的...原创 2019-07-08 11:29:56 · 4376 阅读 · 2 评论 -
python self用法详解
对于在类体中定义的实例方法,Python 会自动绑定方法的第一个参数(通常建议将该参数命名为 self),第一个参数总是指向调用该方法的对象。根据第一个参数出现位置的不同,第一个参数所绑定的对象略有区别:在构造方法中引用该构造方法正在初始化的对象。 在普通实例方法中引用调用该方法的对象。由于实例方法(包括构造方法)的第一个 self 参数会自动绑定,因此程序在调用普通实例方法、构造方...原创 2019-07-08 11:29:54 · 7306 阅读 · 0 评论