Python
ETalien_
足够优秀才能接住上天给的惊喜和机会
展开
-
Python:运行程序报错Empty suite
其实特别简单,这是因为默认情况下,PyCharm将检查以test开头的文件,它们是unittest.TestCase的子类,但是你可以控制模式和子类选项。根据您的测试文件名更改模式,它接受Python正则表达式。解决方法就是:更改程序名字,不要以test开头比如test_list.py你可以改成list_test.py...原创 2021-01-04 16:41:41 · 2772 阅读 · 0 评论 -
Python:正则表达式的使用 / re模块
正则表达式正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。所以我们判断一个字符串是否是合法的Email的方法是创建一个匹配Email的正则表达式用该正则表达式去匹配用户的输入来判断是否合法在正则表达式中,如果直接给出字符,就是精确匹配。\d可以匹配一个数字\w可以匹配一个字母或数字所以‘00\d’可以匹配’007’,但无法匹配’00A’‘\d\d\d’可以原创 2020-12-14 20:52:31 · 258 阅读 · 0 评论 -
Python:多进程和多线程编程
多进程Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程os.fork():创建子进程import osprint('process is start...', os.getpid())child = os.fork()if child == 0: print('I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()))else:原创 2020-12-08 19:14:59 · 152 阅读 · 0 评论 -
Python:IO编程(读写文件)、序列化和反序列化
IO编程同步和异步的区别就在于是否等待IO执行的结果。好比你去麦当劳点餐,你说“来个汉堡”,服务员告诉你,对不起,汉堡要现做,需要等5分钟,于是你站在收银台前面等了5分钟,拿到汉堡再去逛商场,这是同步IO。你说“来个汉堡”,服务员告诉你,汉堡需要等5分钟,你可以先去逛商场,等做好了,我们再通知你,这样你可以立刻去干别的事情(逛商场),这是异步IO。使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。想想看,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如原创 2020-11-30 11:21:04 · 273 阅读 · 0 评论 -
Python:计算1s可以跑多少次while循环 / 计算时间差
计算1s可以跑多少次while循环import datetimestartTick = datetime.datetime.now()i = 0while 1: i = i + 1 endTick = datetime.datetime.now() if (endTick - startTick).seconds >= 1: breakprint(i)运行结果:计算两个时间的时间差import timeimport datetimesta原创 2020-11-19 17:01:18 · 3681 阅读 · 0 评论 -
Python:定制类、枚举类、元类
定制类:①__str__:创建实例打印的时候,若打印该实例可以打印一个好看的字符串class Student(object): def __init__(self, name): self._name = name def __str__(self): return 'Student Object (name: %s)' % self._name __repr__ = __str__ # __str__()返回用户看到的字符串,而__repr原创 2020-11-16 10:49:41 · 261 阅读 · 0 评论 -
Python:@property装饰器的使用
@property:(把方法变成属性调用)Python内置的@property装饰器就是负责把一个方法变成属性调用的Python允许我们在程序中手动设置异常,使用 raise 语句即可把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作# 例1:学生分数设置和获取class Student(object): @proper原创 2020-10-27 17:44:04 · 235 阅读 · 0 评论 -
Python:面向对象编程(类、类属性)
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。类的创建:class Student(object): # 类名一般大写 def __init__(self, name, score): # 注意:特殊方法“__init__”前后分别有两个下划线!!! self.name = name self.score = score def pri原创 2020-10-23 15:11:00 · 260 阅读 · 0 评论 -
Python:函数式编程(map、reduce、filter、sorted、lambda、装饰器、偏函数)
函数式编程允许把函数本身作为参数传入另一个函数,还允许返回一个函数对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数map函数:(作用于每一个元素,参数:函数,序列)map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回a = map(abs, [-10, -20, 30, -40])print(list(a))Iterator是惰性序列,因此通过list()函数让它原创 2020-09-30 18:33:11 · 194 阅读 · 0 评论 -
Python:创建生成器的两种方法
生成器:(一边循环一边计算的机制)生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了第一种创建生成器的方法g = (x * x for x in range(10))for i in g: print(i)第二种创建生成器的方法# 斐波那契正常写法def fib(num): n, a, b = 0, 0, 1 while n < num: print原创 2020-09-24 14:20:50 · 990 阅读 · 0 评论 -
Python:函数可变参数、关键字参数
可变参数:加*def test(*numbers): sum = 0 for i in numbers: sum = sum + i return sumprint(test(4, 5))print(test(4, 5, 5))l4 = [4, 5, 6]print(test(*l4))关键字参数:加**kw关键字参数在函数内部自动组装为一个dictdef test(name, age, **kw): print('name:', name原创 2020-09-01 19:24:53 · 179 阅读 · 0 评论 -
Python:Numpy数组的保存与读取
数组以二进制格式保存np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例np.save(“filename.npy”,a)b = np.load(“filename.npy”)12利用这种方法,保存文件的后缀名字一定会被置为.npy存取文本文件使用 np.savetxt 和 np.l...原创 2020-07-15 12:13:26 · 17654 阅读 · 0 评论 -
Python:让python程序运行在后台
使用SSH连接服务器后,使用如下命令即可:nohup python xxxxx.py &nohup python3 xxxxx.py & #使用python3运行程序使用完nohup后,千万不能直接关闭SSH,要使用exit退出shell。再用外网访问一下flask,发现没有问题了!可以后台启动了!...原创 2020-07-24 15:25:59 · 1436 阅读 · 0 评论 -
Python:Python序列的切片操作
Python序列的切片操作序列(consequence)是 python 中一种数据结构,这种数据结构根据索引来获取序列中的对象。一般说来,具有序列结构的数据类型都可以使用:index, len, max, min, in, +, *, 切片。如:a="abcdefg"print(len(a))#7print(max(a))#gprint(min(a))#aprint(a+a)#ab...原创 2019-11-25 10:36:34 · 880 阅读 · 0 评论 -
Python:一个简单的tornado程序:监听服务器端口,访问时给浏览器返回一个字符串
一个简单的tornado程序tornado是python里的一个模块,它是一种web服务器软件的开源版本它作为web服务器,具有较出色的抗负载能力,它适用于用户量大,高并发,或者大量的HTTP持久连接的情况。我们来看一段简单的程序代码import tornado.webimport tornado.ioloopclass IndexHander(tornado.web.Request...原创 2020-04-10 18:09:22 · 1198 阅读 · 0 评论 -
Python:报错SyntaxError: Non-ASCII character ‘\xe6‘ in file.
1.SyntaxError: Non-ASCII character ‘\xe2’ in file意思是说,在文件中存在非ASCII字符;2.ASCII是8位即一个字符,一共256个字符,随着计算机的发展,现在已经用到2个或者4个字符;3.最重要的原因就是文件中有中文解决办法建议在文件头追加:# -*- coding: cp936 -*-或者# -*- coding: utf-8 ...原创 2020-07-19 15:07:08 · 1185 阅读 · 0 评论 -
Python:numpy和list查询元素个数、定位元素
list查询个数:调用list.count(obj)函数,返回obj在list中的个数。输入:list_a = [2 for x in range(5)]print(list_a)a_count = list_a.count(2)print(a_count)1234输出:[2, 2, 2, 2, 2]512定位元素:调用list.index(obj)函数,返...原创 2020-07-30 09:57:02 · 4144 阅读 · 0 评论 -
Python:numpy打印数组中间省略号
numpy打印数组中间省略号当想要输出一个完整的array时,默认是输不出来的,如那么要想要完整地打印该数组的话该怎么办呢?很简单,加一句代码:import numpy as npnp.set_printoptions(threshold=np.inf)这样就好啦~,可以去试一试...原创 2020-03-31 19:27:24 · 1195 阅读 · 1 评论 -
Python:将GIF图片转换成png图片帧
python里有处理图像的库PIL我们可以利用PIL库中的函数将gif图按帧截取出来from PIL import Image # 导入PIL的Image包import osgifFileName = "./test.gif" # 把gif图赋值给gifFileNameim = Image.open(gifFileName) # 使用Image的open函数打开test.gif图像...原创 2020-07-27 11:51:18 · 1745 阅读 · 0 评论