python
剥泐
这个作者很懒,什么都没留下…
展开
-
python
Python类的定义与实例化在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义: class Person: pass注意,在这个Person类的定义里面,并没有继承任何类,除了这样定义以外,还可以有以下两种定义方式。 class Person(): pass class Person(object): pass定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如原创 2020-12-19 15:32:41 · 100 阅读 · 1 评论 -
if __name__ == ‘__main__‘ 的简单理解
if name == ‘main’ 就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 name 的值。不被运行。if name == ‘main’ 我们简单的理解就是: 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块...原创 2020-12-13 23:38:12 · 175 阅读 · 0 评论 -
Python中lambda的解释
lambda的意思lambda表达式其实就是一个函数,这段代码:f=lambda x:x<0和下面这段:def f(x): return x<0是一样的意思。很多时候用lambda是因为有一些函数非常简单(比如x<0这个例子),并且只会在这一个地方被用到,所以单独拿出来命名和定义显得非常啰嗦。所以lambda表达式也叫匿名函数。h = lambda x:3print(h(1)) #3...原创 2020-11-21 17:48:15 · 1727 阅读 · 1 评论 -
python中可变与不可变数据结构的集合元素问题
简要的说可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects);同理,不可哈希的数据类型,即可变的数据结构 (集合set,列表list,字典dict)列表不可以作为集合的元素.集合可以作为列表的元素。元组(tuple)(可哈希的数据类型)可以作为集合元素的。集合可以作为元组的元素。因为字典是可变的数据结构(不可哈希),所以自然也不能作为集合的元素。首先列表与集合都是不可变的。其次元祖是可变的,集合是不可变的。字典和集合都是不可变的。不可变可以作为可变的集原创 2020-11-21 17:39:12 · 1744 阅读 · 0 评论 -
已知函数定义def demo(x, y, op): return eval(str(x)+op+str(y))那么表达式demo(3, 5, ‘*‘)的值为15
eval() 函数用来执行一个字符串表达式,并返回表达式的值。以下是 eval() 方法的语法:eval(expression[, globals[, locals]])expression – 表达式。globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y))那么表达式demo(3,原创 2020-11-21 17:28:25 · 5717 阅读 · 6 评论 -
已知函数定义 def func(**p): return ‘‘.join(sorted(p)) 那么表达式 func(x=1, y=2, z=3)的值为 xyz
下列解析def func(**p): return p print(func(x=1, y=2, z=3)) # {'x': 1, 'y': 2, 'z': 3}def func(**p): return sorted(p) print(func(x=1, y=2, z=3)) #['x', 'y', 'z']def func(**p): return ''.join(sorted(p)) print(func(x=1, y=2,原创 2020-11-21 16:50:00 · 7630 阅读 · 0 评论 -
表达式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值为[2,4]
for *index, value* in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])]index最后在列表中输出与value对应的index原创 2020-11-21 16:39:59 · 9524 阅读 · 0 评论 -
python中*的用法
1、表示乘号2、表示倍数,例如:def T(msg,time=1):print((msg+’ ')*time)T(‘hi’,3)打印结果(打印3次):hi hi hi3、单个 * (1)、如:*parameter是用来接受任意多个参数并将其放在一个元组中。>>> def demo(*p): print(p) >>> demo(1,2,3)(1, 2, 3)(2)、函数在调用多个参数时,在列表、元组、集合、字典及其他可迭代对象作为实原创 2020-11-21 16:19:24 · 1707 阅读 · 0 评论 -
g=(map(int,range(10))) a=5 in g b=1 in g 为什么y=false?
首先, map()得到的是一个生成器. 生成器有个特点, 它是一次性的. 比如你这里的g里面就是(0,1,2,3,4,5,6,7,8,9) 当你进行5 in g的时候需要从g中拿出数据. 拿到5发现有这个数据 in的过程就结束了. 此时g中只有(6,7,8,9)这几个数了. 此时你再进行1 in g 返回的肯定是False啊可以做个试验来验证这个现象g = map(int, range(10))print(5 in g) # 经过这一行的运行 g中只有6,7,8,9了print(list(原创 2020-11-21 16:01:40 · 945 阅读 · 0 评论 -
Python中的可变对象和不可变对象
什么是可变/不可变对象不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变。Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。而列表list、字典dict、集合set是可变转载 2020-11-21 15:35:11 · 439 阅读 · 0 评论 -
python字符串关键点总结
python字符串关键点有下面几点:1.一些引号分隔的字符你可以把字符串看出是Python的一种数据类型,在Python单引号或者双引号之间的字符数组或者连续的字符集合。在python中最常用的引号为(’’)和("")。两者的功能是一样的,字符串的实际内容是引号之间的字符,不包含引号本身。2.不可分字符类型字符串是唯一的字面上的字符序列类型。不过,字符本身并不是一种类型,所以,字符串是字符存储操作的最基本单位。3.字符串格式化操作符(%)提供类似printf()的功能字符串格式化操作符提供了一种转载 2020-11-21 15:25:46 · 66 阅读 · 0 评论 -
python中的[:-1]与[-1:-1]
a=‘python’b=a[::-1]print(b) #nohtypc=a[::-2]print© #nhy#从后往前数的话,最后一个位置为-1d=a[:-1] #从位置0到位置-1之前的数print(d) #pythoe=a[:-2] #从位置0到位置-2之前的数print(e) #pyth[-1:-1]:fruits=['aaaaaa','bbbbbb','ccccc']print(fruits[::-1])...原创 2020-11-20 21:21:23 · 605 阅读 · 0 评论 -
python的slice notation的特殊用法
python的slice notation的特殊用法:a = [0,1,2,3,4,5,6,7,8,9]b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象b = a[1:3] 那么,b的内容是 [1,2]当i缺省时,默认为0,即 a[:3]相当于 a[0:3]当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]当i,j都缺省时,a[:]就相当于完整复制一份a了b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.所以a转载 2020-11-20 20:01:05 · 1496 阅读 · 1 评论