python
文章平均质量分 53
weixin_zdpau
这个作者很懒,什么都没留下…
展开
-
Python学习笔记9(遇到的一些知识点记录)
一,遇到的一些函数1 eval函数1, eval() 函数用来执行一个字符串表达式,并返回表达式的值。eval('pow(2,2)')4>>> eval('2 + 2')42, 将字符串转成相应的对象(如list、tuple、dict和string之间的转换)>>> a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]">>> b = eval(a)>>> b[[1, 2], [3,原创 2021-07-26 21:04:22 · 151 阅读 · 0 评论 -
Python学习笔记8(各种代码技巧及部分数据结构)
https://zhuanlan.zhihu.com/p/435819801, __ future__模块允许用户导入新版 Python 的功能: from future import print_function2, Python 通过许多内置功能支持函数式编程。map() 函数是最有用的函数之一——特别是当它与 lambda 函数结合使用时。x = [1, 2, 3]y = map(lambda x : x + 1 , x)# prints out [2,3,4]print(list(y))原创 2021-07-26 21:00:10 · 127 阅读 · 0 评论 -
对python中一些模块的理解
一,对有关命令行参数的一些总结:https://blog.csdn.net/itlance_ouyang/article/details/52489674Python命令行常见的解析器有两种,一是getopt模块,二是argparse模块。https://blog.csdn.net/itlance_ouyang/article/details/52489674 (Python命令行命令getopt,argparse) https://blog.csdn.net/a1964543590/article/原创 2021-07-26 20:55:38 · 194 阅读 · 0 评论 -
Python学习笔记7(IO编程)
由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。通常,程序完成IO操作会有Input和Output两个数据流。当然也有只用一个的情况,比如,从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作。IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output原创 2021-07-26 20:47:21 · 68 阅读 · 0 评论 -
Python学习笔记6(面向对象编程)
1面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递原创 2021-07-26 20:46:47 · 174 阅读 · 2 评论 -
Python学习笔记5(模块)
1,在Python中,一个.py文件就称之为一个模块(Module)。如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。2,注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。init.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是mycompany。#!/usr/bin/env p原创 2021-07-26 20:46:13 · 167 阅读 · 2 评论 -
Python学习笔记4(函数式编程)
1, 函数式编程函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。我们首先要搞明白计算机(Computer)和计算(Compute)的概念。在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判原创 2021-07-26 20:45:36 · 76 阅读 · 0 评论 -
Python学习笔记3 (高级特性开始)
1,切片L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。记住倒数第一个元素的索引是-1。2,迭代字典的迭代:d = {'a': 1, 'b': 2, 'c': 3}>>> for key in d:... print(key)...acb因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。如果要迭代value,可以用for value in d.values(),如果要同时原创 2021-07-26 20:25:38 · 46 阅读 · 0 评论 -
Python学习笔记2 (函数)
1,print(hex(255)+"\n"+hex(1000)) 实现了一条print换行输出。2,return None可以简写为return。3,数据类型检查可以用内置函数isinstance()4,函数可以同时返回多个值,但其实就是一个tuple。在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值。5,def enroll(name, gender): name,gender就是位置参数def enroll(name, gender, age原创 2021-07-25 22:45:53 · 59 阅读 · 0 评论 -
Python学习笔记1
1,用任何编程语言来开发程序,都是为了让计算机干活,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。2,Python适合开发哪些类型的应用呢?首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便原创 2021-07-25 22:44:46 · 99 阅读 · 0 评论 -
用map()把名字变为首字母大写,其他小写
def normalize(n): # 基本想到了,但是对MAP函数还是不了解,通过map函数其实就会将normalize函数依次作用到序列的每个元素。 return n[0].upper() + n[1:].lower() # 也可以直接names.title() L1 = ['adam', 'LISA', 'barT']L2 = list(map(normalize, L1))print(L2)...原创 2021-07-25 22:43:09 · 309 阅读 · 0 评论 -
用filter()求素数
# 这个简单,但有一个问题就是2出不来import mathimport sysdef prime(n):# n的取值2,3,4,5。。。。 if n <= 1: return 0 for i in range(2,n): if n % i == 0:#相当于3%2;4%2,4%3;5%2,5%3,5%4 。。。。。 return 0 return 1if __name__ == "__main__":原创 2021-07-25 22:42:32 · 225 阅读 · 0 评论 -
查找一个list中最小和最大值,并返回一个tuple
# 查找一个list中最小和最大值,并返回一个tupledef findMinAndMax(L): if len(L)<=0: return(None,None) else: min=L[0] max=L[0] for x in L[1:]: if x<min: min=x elif x>max:原创 2021-07-25 22:41:59 · 75 阅读 · 0 评论 -
杨辉三角实现
def triangles(): l = [1] while True: yield l l = [1] + [l[k] + l[k+1] for k in range(len(l)-1)] + [1]n = 0results = [] # 这行可以不要for t in triangles(): print(t) results.append(t) # 这行可以不要 n = n + 1 if n == 10:原创 2021-07-25 22:32:14 · 45 阅读 · 0 评论 -
接受一个list并利用reduce()求积
# Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积from functools import reducedef prod(L): def pro(x,y): return x*y return reduce(pro,L) # return reduce(lambda x,y:x*y, L)print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9原创 2021-07-25 22:09:39 · 276 阅读 · 0 评论 -
把字符串转换成浮点数
# 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456from functools import reducedef str2float(s): DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} s1, s2 = s.split('.') def fn1(x, y): retu原创 2021-07-25 22:09:05 · 437 阅读 · 0 评论 -
去除字符串首尾的空格
# 利用切片操作,实现一个trim()函数,去除字符串首尾的空格def trim(s): if(s[:1] == ' '): s = trim(s[1:]) #通过递归可以消除前面有很多空格 elif(s[-1:] == ' '): s = trim(s[0:-1]) return s原创 2021-07-25 22:08:01 · 257 阅读 · 0 评论 -
利用filter()筛选出回数
# 回数是指从左向右读和从右向左读都是一样的数,例如12321,909。# -*- coding: UTF-8 -*-def is_palindrome(n): return str(n)==str(n)[::-1] # str(n)[::-1]实现字符串翻转 # return n == int(str(n)[::-1]) output = filter(is_palindrome, range(1, 1000))print('1~1000:', list(output))...原创 2021-07-25 19:07:48 · 223 阅读 · 0 评论 -
修改列表生成式,使列表中的字符串小写
如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错.使用内建的isinstance函数可以判断一个变量是不是字符串:>>> x = 'abc'>>> y = 123>>> isinstance(x, str)True>>> isinstance(y, str)False请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:(当时写的)L1 = ['Hello',原创 2021-07-24 22:50:55 · 156 阅读 · 0 评论 -
while True学习练习
d = {"zhang":'666',"duo":777}while True: n = input("请输入你的用户名:") if n in d: break else: print('您输入的用户名不存在,请重新输入') # continue count = 5while True: # 也可以while count x = input("请输入您的密码:") if x == d[n]:原创 2021-07-24 22:48:45 · 72 阅读 · 0 评论 -
generator yield,send理解
https://www.cnblogs.com/xhcdream/p/8304953.html1, 第一种创建生成器的方法:使用()创建生成器,如果使用[]则创建列表。然后可以通过next一直产生新的数据,直到最后一个报异常,通过for遍历不会报异常, 也可以使用a.next(), 就是next(a)=a.next(), 也可以通过for遍历生成器.最开始next(t)=t.send(None)其实next()和send()在一定意义上作用是相似的,区别是send()可以传递yield表达式的值进去,而原创 2021-07-24 22:45:40 · 40 阅读 · 0 评论 -
defaultdict函数以及工厂函数的理解
1,defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值。defaultdict(function_factory)接受一个工厂函数作为参数,构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如defaultdict(int)则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d原创 2021-07-24 22:45:12 · 1009 阅读 · 0 评论 -
Python实现子类调用父类的方法
class A: def __init__(self): self.namea="aaa" def funca(self): print "function a : %s"%self.nameaclass B(A): def __init__(self): self.nameb="bbb" def funcb(self): print "function b : %s"%self.namebb=B()pri原创 2021-07-24 22:43:56 · 504 阅读 · 0 评论 -
进程与线程、多线程协程并行并发概念理解
1,进程与线程的区别:1,线程是程序执行的最小单位,是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,而进程是操作系统分配资源的最小单位 (这句话一定要理解);2,一个进程可以有多个线程,多个线程也可以并发执行;3,进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程4,不可见;一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。原创 2021-07-24 22:43:07 · 128 阅读 · 0 评论 -
python asyncio文档学习
https://docs.python.org/3/library/asyncio-task.html?highlight=asyncio%20sleep#asyncio.sleepCoroutines and TasksCoroutines declared with async/await syntax is the preferred way of writing asyncio applications. For example, the following snippet of code (r原创 2021-07-24 22:42:04 · 380 阅读 · 0 评论 -
yield的理解
1,协程有四个状态,可以使用inspect.getgeneratorstate(…)函数确定:GEN_CREATED # 等待开始执行GEN_RUNNING # 解释器正在执行(只有在多线程应用中才能看到这个状态)GEN_SUSPENDED # 在yield表达式处暂停GEN_CLOSED # 执行结束import inspect# 协程使用生成器函数定义:定义体中有yield关键字。def simple_coroutine(): print('->原创 2021-07-24 22:38:49 · 56 阅读 · 0 评论 -
coroutine,task,future的理解
Awaitables我们说如果一个对象可以在await表达式中使用,那么它就是一个awaitable对象。许多asyncio API旨在接受awaitable。There are three main types of awaitable objects: coroutines, Tasks, and Futures.coroutinePython coroutines are awaitables and therefore can be awaited from other coroutines原创 2021-07-24 22:37:29 · 286 阅读 · 0 评论 -
python asyncio 一些函数
async def 用来定义异步函数,其内部有异步操作。每个线程有一个事件循环,主线程调用asyncio.get_event_loop()时会创建事件循环,你需要把异步的任务丢给这个循环的run_until_complete()方法,事件循环会安排协同程序的执行。await 关键字加在需要等待的操作前面。如果我们需要请求多个URL该怎么办呢,同步的做法访问多个URL只需要加个for循环就可以了。但异步的实现方式并没那么容易,在之前的基础上需要将hello()包装在asyncio的Future对象中,然.原创 2021-07-24 22:36:39 · 227 阅读 · 0 评论