
大猫学python
文章平均质量分 70
南郭竽
这个作者很懒,什么都没留下…
展开
-
windows 上 python open函数打开文件夹报错提示权限不足
为了实现第二种不互相影响的实现,因为不能互相影响导致前面执行的内存数据,在下次执行的时候无法读取,因为上一次的程序已经执行结束了,这些内存里面的数据也就消失了。那么,我就搞一个文本文件,相当于数据库一样,去记录上一次执行的结果,然后第二次执行的时候可以去读这个文件的内容,然后再执行具体的逻辑。这一块的文档不是很多,然后也有一些文档写的比较详情,但是里面的专业术语太多了,看不懂。哎,贴一下代码,不过,因为一直失败,所以前面有的代码没有保留,直接被删除了。还有一些其他的无效的命令,就没有记录了。原创 2024-03-15 07:54:46 · 2887 阅读 · 1 评论 -
python 带颜色输出,print
之前在 https://www.cnblogs.com/fangbei/p/python-print-color.html 这里看到别人的实现。貌似已经不能访问了。一直使用这个实现很方便。最近发现有时候输出的内容跟原生的 print 方法输出的内容不一致,差异很大。于是就看了一下具体逻辑。发现这个实现把全部的参数转成字符串然后打印了。就是这个原因了,我就改了一下,然后现在就能跟 print 输出是完全一样的内容了。核心代码很短:def _color(*args, color='[0;', sep=' '原创 2020-10-31 16:15:52 · 603 阅读 · 0 评论 -
python3 自定义颜色输出工具
先看效果:格式化输出 字典,元祖,字典等。[对长度大于5的可迭代对象,显示长度]各种颜色都有,调用简单,参数和print()完全一致。代码很少,只是涉及到一个颜色输出的问题,以及 格式化打印的问题。#!/usr/bin/env python3# -*- coding: utf-8 -*-"""<a href="https://www.jetbrains.com/he...原创 2018-11-24 23:48:48 · 1229 阅读 · 0 评论 -
python: 发送内容带图片的邮件
强推:Python 菜谱,里面对 python发送带图片的邮件讲的比较清楚。刚好我有一个需求,就发送一个网页形式的邮件,而且网页中有图片。下面是我自己的发送带图片的邮件的代码:def send_email(subject, to_address_list, cc_address_list): import smtplib from email.mime.multip...原创 2018-04-23 20:47:12 · 16009 阅读 · 0 评论 -
python: python3.0中的函数注解
python中有很多奇怪的概念,语法很丑陋。若是论起简洁和优雅,python不及shell的万一。def func(a: 'spam') -> int: print(a) return 3def foo(a: 'spam' = 8) -> int: print(a) return 3以上两个函数就是给参数和返回值添加了注解,可以说毫无实...原创 2018-04-23 10:41:03 · 686 阅读 · 0 评论 -
python 函数属性的使用场景一
之前看python教程的时候,看到一个内容是:python中任何对象都可以添加属性,包括函数。当时想,给函数添加属性有什么意义吗?难道把函数当成数据对象去使用?没想到,今天遇到了一个场景就需要用到这个。场景如下: 就是求一个给定参数的阿克曼函数(Ackermann的结果是 2 的几次方的问题。比如 ackermann(2,4)的结果将是2的几次方?函数原型很简单:用py...原创 2018-02-24 00:29:25 · 454 阅读 · 0 评论 -
python 函数中定义函数
一直不明白这样写具体有什么意义。直到我准备实现一个类似与 java 中的 Timer#schedule(TimerTask task,long delay, long period)才发现,似乎 python中没有提供这种内置的重复定时器。而要实现这种重复定时器,似乎需要使用 “函数中定义函数的”的方式才可以。def scheduler_build(delay, cmd): def b原创 2018-02-02 16:02:23 · 5528 阅读 · 0 评论 -
python3 读写git log 遭遇中文的崩溃及乱码的解决
之前使用python3 调用shell 命令的时候,都是使用my_str=os.popen(bash_command).read().strip()这句代码来实现的。但是发现遭遇中文的时候好像会出现崩溃。于是找了一个新的可行的方法,就是使用bstr=subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).stdout.read(原创 2018-01-16 13:21:47 · 1681 阅读 · 0 评论 -
python:使用web.py实现最简易的web服务器
对于web服务器,大家的第一印象是什么?tomcat/nginx?我的第一印象是tomcat。想当年,使用的是tomcat。现在python基于web.py框架也可以实现web服务器的需求。短短几行代码,即可实现最简易的web服务器了。#!/usr/bin/env python2# -*- coding: utf-8 -*-# @name : code.py# @author : cat原创 2017-08-13 13:09:50 · 3780 阅读 · 0 评论 -
python:通过python脚本快速执行 bash 命令
最近公司将源码从svn切换到git上去管理了。但是不幸的是,貌似git没有配置好,没有忽略文件的mode。 aaa 这样一来就麻烦了,一旦你修改了文件权限,git就会认为你修改了该文件。这样,你就得回退,或者提交很多无关文件。正确的姿势是:git config --global core.filemode false但是源码下面的.git仓库很多,如果要一个个找到,然后一个个修改是很麻烦的事情。原创 2017-08-03 00:19:27 · 9770 阅读 · 1 评论 -
python: 用把自己蠢哭的方式求3*3幻方
先来看一下幻方在百度百科上面的定义: 幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。好,就根据这个概念,理论上通过穷举法就可以求出k*k的幻方了。今天突发奇想,尝试了一下。果然很蠢。 ps:本来准备使用c++的,但是,下面的unique()函数,使用c++的话,会产生大量重复代码,或者得使用指针了,遂作罢。#!/usr/bin/原创 2017-07-17 23:46:58 · 2454 阅读 · 0 评论 -
python:类与oop->装饰器的使用
python中的oop其实与class|type关键字是无关的。相对java而言,python的oop程度更深。但是java的oop更纯粹。python基于装饰器,可以实现AOP,也就是切面编程。 下面看一段简单对代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-# @name : oops.py# @author : cat# @da原创 2017-07-03 00:19:19 · 599 阅读 · 0 评论 -
python:类是对象,通用对象的工厂
在python中通用对象的工厂函数是很容易实现的。这得益于python的动态语言特性,以及python中,类亦是对象的设计。下面看一个简单的通用对象的工厂函数:def factory(aCalss,*args): return aClass(*args)就这样简单的两句代码,就实现了一个对象工厂函数。如果使用lambda,甚至可以使用一句代码来完成:factory = (lambda a原创 2017-06-27 23:58:26 · 1500 阅读 · 0 评论 -
python: 字符串占位符的“{0:2} 以及 {:02}“
看到这么奇怪的占位符,估计都是一脸懵逼。而且网上搜不到。其实很简单,试一下就知道了。print("{0:2}".format(10, 20, 30, 40))# 10# 1print("{:2}: {}".format(1, 2, 3, 4))# 1: 2通过简单是打印就明白了:{0:2}表示的是一个占位符{0:2}表示至少占两个位。为了方便,可以省略0,直接表示为{:2}。原创 2017-06-25 21:14:02 · 16171 阅读 · 1 评论 -
python:委托->包装对象
python中,有委托的概念。委托,字面理解就是,假装这件事是我在做,但是事实上我委托了其他人来帮我处理这件事。python中的委托,和现实中的委托是何其相似!来看这样一段简单的代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-# @name : warper.py# @author : cat# @date : 2017/6/25原创 2017-06-25 20:25:18 · 3991 阅读 · 0 评论 -
python:oop范式
就oop来说,必然逃不过两个概念:继承与组合。什么时候使用继承,使用时候组合?在写简单的代码的时候,谁都清楚该怎么区分。但是,一旦业务逻辑复杂,就很难确定当前情况该使用继承还是组合了。相信使用过任意oop语言做过实际项目的人都对此深有体会。就我个人而言,也是经常在业务代码中,很难去判断当前情况该使用哪一种方式。之前我的一位老师说过,代码没有对错,只有好坏。所以,该如何使用,有时候真的只能用一句原创 2017-06-25 17:42:25 · 895 阅读 · 0 评论 -
python:爬虫系列-02
接上一篇python:爬虫系列-01,按照当时的想法做了一个根据一个入口,爬出全部链接,以及这些链接里面的全部链接。基于python3 涉及的知识点如下:http 请求 / 数据编码 / 字符串处理 / 遍历 / 递归存在的问题点:做的不是很成熟,爬出来的链接没有存本地,就打印显示了一下。有些链接访问不了,会返回403或者其他的状态码还有一些网页不是utf-8编码的,使用utf-8转码会原创 2017-06-25 15:38:45 · 1054 阅读 · 0 评论 -
python:爬虫系列-01
看了《Learning Python》有一段时间了,差不多看到类的样子,一直没有去动手实践过。 于是决定动手写点小东西。也不知道该写点什么,于是打算入手爬虫。参照网上的爬虫教程,写了一个简单爬取网页中链接的小练习。 common_var.py#!/usr/bin/env python# -*- coding: utf-8 -*-# @author : cat# @date : 20原创 2017-06-25 02:06:31 · 895 阅读 · 0 评论 -
python:自定义类中迭代行为的实现
python迭代器-csdn博客Python 中 Iterator和Iterable的区别#!/usr/bin/env python# -*- coding: utf-8 -*-# @author : cat# @date : 2017/6/23.class Squares: """ 单(个活跃的)迭代器的实现 """ def __init__(self,原创 2017-06-23 01:59:26 · 3060 阅读 · 0 评论 -
python:抽象超类的实现
在python中,如何去实现一个抽象超类? 看如下代码,实现了一个简单的超类模型。#!/usr/bin/env python# -*- coding: utf-8 -*-# @author : cat# @date : 2017/6/21.class SuperClass: def method(self): print("method in suer class原创 2017-06-21 22:17:49 · 1497 阅读 · 0 评论 -
python:对象属性与类属性
python中的继承概念和java中的继承概念是不同。 从我个人角度来理解就是:python中,类也是一个对象;实例可以继承类的属性。而java中,类并不是一个对象,只是一个对象的生成模板。实例的属性完全来自于类中对于属性的定义。 python中类的属性,有点类似于java中的静态变量/静态属性。下面看一个简单的例子:#!/usr/bin/env python# -*- codin原创 2017-06-20 23:38:45 · 3320 阅读 · 0 评论 -
python:自定义对象的打印
在python中,如果不重写自定义对象的__str__方法,打印出来的对象是一串类似于<__main__.Bean object at 0x1007da470>的字符串。这当然不是我们想要的结果。于是:通过对__str__方法的重写,就可以返回我们想要的数据的展示。 但是,一个新的问题出现了。以后,如果要修改这个类,那么想要显示想要的对象打印。还得修改__str__方法。 有没有办法原创 2017-06-19 23:49:37 · 14968 阅读 · 3 评论 -
python:将一个外部函数,转化为类中的方法
python作为一门动态语言,在对于oop的实现上,相比Java,就少了很多限制。也多了很多的“随意性”。当然,这种随意性和动态特性,也让python代码在后续的维护变得更加困难。在非必要的情况下,个人不建议这些做法。但是对这些操作,了解一下还是有必要的。 第一,在阅读代码的时候,不会对这种操作感到困惑第二,在特定的场景下,可能需要进行这种操作# -*- coding: UTF-8 -*原创 2017-06-16 22:08:33 · 4766 阅读 · 0 评论 -
Python 中的 if __name__ == '__main__' 该如何理解
转自:http://blog.konghy.cn/2017/04/24/python-entry-program/Apr 24, 2017 |Python| python这个问题来自于知乎用户的提问,当时看到这个问题,我只是做了下简单的回答。后来我发现,对于很多人来说,更准确的说应该是大部分的 Python 初学者,对这个问题理解的不是很深刻。所以这里我来做下总结,并试图把转载 2017-06-10 22:55:29 · 454 阅读 · 0 评论 -
python:模拟内置函数map的实现
python 的内置函数map可以对一个迭代器/序列中的每个元素进行操作,然后返回一个被操作后的迭代器对象。 * map函数默认是c实现的。map函数非常方便,类似于map的概念在Java8中也有使用到。以及java中的著名开源框架rxjava也有大量使用到这个概念。如何在python中模拟map的实现呢?def mymap(func, *seqs): res = [] # *原创 2017-06-09 22:04:00 · 5749 阅读 · 1 评论 -
Python: 函数参数魔法
转载自:FunHacks:Python: 函数参数魔法函数参数在 Python 中,定义函数和调用函数都很简单,但如何定义函数参数和传递函数参数,则涉及到一些套路了。总的来说,Python 的函数参数主要分为以下几种:必选参数默认参数可变参数关键字参数必选参数必选参数可以说是最常见的了,顾名思义,必选参数就是在调用函数的时候要传入数量一致的参数,比如:>>> def add(x, y):转载 2017-06-07 23:44:59 · 937 阅读 · 0 评论 -
python:工厂函数应该全部设置默认参数
python 中的工厂函数,简单理解就是:高阶函数的一种,可以返回函数的函数。一般我们可以写出这样的工厂函数:def func(x): return lambda: x然后验证一下:print(func(2)())# 2输出为2。没错,就是我们期待的结果。然后,再来一个带循环体的(错误的示范!):def multi(x): ret = [] for ele in range原创 2017-06-04 11:12:51 · 941 阅读 · 0 评论 -
python 小计算
输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]。# -*- coding: UTF-8 -*-"""Created on 2017/4/8@author: cat利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam',原创 2017-04-08 12:31:51 · 1035 阅读 · 0 评论 -
python:计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上? a) 1900.1.1是星期一 b) 1月,3月,5月,7月,8月,10月和12月是31天 c) 4月,6月,9月和11月是30天 d) 2月是28天,在闰年是29天 e) 公元年数能被4整除且又不能被100整除是闰年原创 2017-04-02 02:13:17 · 4350 阅读 · 0 评论 -
假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。 一年后,你的账户余额为: 1000 * ( 1 + 0.047) = 1047 元 第二年初你又存入1000元,则两年后账户余额为: (
假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。 一年后,你的账户余额为: 1000 * ( 1 + 0.047) = 1047 元 第二年初你又存入1000元,则两年后账户余额为: (1047 + 1000) * ( 1 + 0.047) = 2143.209 元 以此类推,第10年年末,你的账户上有多少余额? 注:结果保留2位小数(四舍五入)。这一题我又是想了很久才找原创 2017-03-16 23:28:06 · 7929 阅读 · 2 评论 -
一个很有意思的问题:“ 有1000瓶啤酒,每喝完一瓶得到一个空瓶子,每3个空瓶子又能换1瓶啤酒, 喝掉以后又得到一个空瓶子。问总共能喝多少瓶啤酒?还剩多少空瓶子”
确实想了很久才想出来,解决方案如下:# -*- coding: UTF-8 -*-"""Created on 2017/3/12@author: cat“ 有1000瓶啤酒,每喝完一瓶得到一个空瓶子,每3个空瓶子又能换1瓶啤酒,喝掉以后又得到一个空瓶子。问总共能喝多少瓶啤酒?还剩多少空瓶子”"""def compute(beer_count): drink = 0 # 表示一共原创 2017-03-13 00:28:37 · 4317 阅读 · 1 评论