Lyanna迎来了新的3.0版本 - 动态

来源:dongwm   |   更新时间: 2月前   |   分类: 


2020 年 Python3 的最后一次大的更新 3.8.1 已经于 12 月 18 日发布,为了迎接这次更新,Lyanna也迎来了新的 3.0 版本。接下来详细的介绍一下本次更新重点

由于使用最新的 Python 3.8 语法海象运算符 (Assignment Expressions) 重构了代码,所以不再支持 Python 3.8 之前的版本。

我过去一直拒绝在动态语言代码中声明参数和返回值的类型,我认为一个合格的 Python 工程师不会在这里踩坑,基于我的编程习惯和对业务的了解,过去这些年几乎没有在类型检查这上面引起过什么线上代码错误。不过由于身边 Python 开发者质量的下降,已经越来越意识到类型检查的重要性。

查看原文

Python 命令行之旅:初探 fire

来源:prodesire   |   更新时间: 2月前   |   分类: Python


在本系列前面所有文章中,我们分别介绍了argparse、docopt和click的主要功能和用法。它们各具特色,都能出色地完成命令行任务。argparse是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。docopt先用声明式的语法定义出参数,再过程式地解析命令行和实现业务逻辑。click则是用装饰器的方式进一步简化显式的命令调用逻辑,但仍然不够面向对象。

而今天要介绍的fire则是用一种面向广义对象的方式来玩转命令行,这种对象可以是类、函数、字典、列表等,它更加灵活,也更加简单。

查看原文

结巴分词快速入门指南

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


结巴分词是Python语言中最流行的一个分词工具,本文将介绍结巴分词快速入门使用

安装

pipinstalljieba

pip install jieba

简单分词

查看原文

如何正序查看微信公众号历史文章

来源:foofish   |   更新时间: 2月前   |   分类: 默认


由于公众号历史消息是倒序展示的,最近发的文章展示在前面,这样导致想要查看某个公众号早期发的文章你需要不断地往后翻,如果想翻到第一篇文章,简直比登天还难。而且,你好不容易翻到了第一篇文章,如果因为其它事打断了,又要重复操作一遍。

所以在微信查看公众号早期的历史文章体验非常糟糕。为了解决这个问题,不得不推荐一个工具,二十次幂

具体使用操作:

第0步:打开网站

查看原文

Python 壹周刊 005

来源:prodesire   |   更新时间: 2月前   |   分类: Python


OpenMined 和 PyTorch 合作启动为保护隐私的 ML 社区提供研究金

PyTorch 团队已投资 25 万美元来支持 OpenMined 进一步发展和扩大隐私保护的 ML。你可以通过三种不同的机会参与该项目的开发。这些奖学金的每一项都进一步促进了我们的共同使命,即降低隐私保护机器学习的进入障碍,并创建一个更具隐私保护的世界。

全栈 NLP:构建和部署端到端的虚假新闻分类器

查看原文

如何给微信设置代理

来源:foofish   |   更新时间: 2月前   |   分类: 工具


可能你会遇到这样的情况:

公司网络不让上QQ,微信等聊天工具

或者作为开发者,你想知道分析这些工具背后的请求数据

也可能是通过这些工具采集数据

解决方案就是用代理工具

一图胜千言

直连方式是APP工具直接连的远程云端服务器,背后有哪些请求用户是完全不知道的。

如果使用代理工具的话,请求都要经过代理,app的网络请求就可以掌握在自己手中了。

查看原文

Daemon Process

来源:kawabangga   |   更新时间: 2月前   |   分类: 程序开发笔记


本文介绍一个从 Linux 的 shell 诞生的进程,要经历怎样的“考验”,才能成为一个 daemon 进程。

后台进程,顾明思议,在后台执行,没有终端,没有 Login shell。当某些 Event 发生的时候进行处理,或者定期执行某项任务。通常,daemon 进程以 d 结尾,但不是必须的,比如 Redis 和 Nginx 的 daemon 进程就没有以 d 结尾。 简单来说,daemon 需要具备以下两项基本条件:

查看原文

Python 命令行之旅:使用 click 实现 git 命令

来源:prodesire   |   更新时间: 2月前   |   分类: Python


在前面五篇介绍click的文章中,我们全面了解了click的强大能力。按照惯例,我们要像使用argparse和docopt一样使用click来实现 git 命令。

本文的关注点并不在git的各种命令是如何实现的,而是怎么使用click去打造一个实用命令行程序,代码结构是怎样的。因此,和git相关的操作,将会使用gitpython库来简单实现。

为了让没读过使用 xxx 实现 git 命令(xxx指argparse和docopt) 的小伙伴也能读明白本文,我们仍会对git常用命令和gitpython做一个简单介绍。

查看原文

为什么每一个爬虫工程师都应该学习 Kafka

来源:kingname   |   更新时间: 2月前   |   分类: 爬虫


这篇文章不会涉及到Kafka 的具体操作,而是告诉你 Kafka 是什么,以及它能在爬虫开发中扮演什么重要角色。

假设我们需要写一个微博爬虫,老板给的需求如下:

开发爬虫对你来说非常简单,于是三下五除二你就把爬虫开发好了:

接下来开始做报警功能,逻辑也非常简单:

再来看看统计关键词的功能,这个功能背后有一个网页,会实时显示抓取数据量的变化情况,可以显示每分钟、每小时的某个关键词的抓取量。

查看原文

Elasticsearch 映射

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


mapping保存的是索引的结构,类似于数据库中的表结构,索引里面有哪些字段、字段是什么类型,用什么分析器等等这些信息都保存在 mapping 中。 查询 mapping 结构如下:

GET/customer/_mapping?pretty{"customer":{"mappings":{"properties":{"address":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"age":{"type":"long"},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}

GET /customer/_mapping?pretty

{
    "customer": {
        "mappings": {
            "properties": {
                "address": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                },
                "age": {
                    "type": "long"
                },
                "name": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
        }
    }
}
查看原文

Elasticsearch基本概念

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


要使用好 Elasticsearch,有几个概念你不得不弄清楚。

Node 、 Cluster

Elasticsearch 本质上是一个分布式数据库,单个 Elasticsearch 实例称为一个节点(node),一组节点构成一个集群(cluster)。

索引(index)

Elasticsearch 的索引类似于巨大的字典结构,保存了关键字到文档记录之间的映射关系, 也称为倒排索引,索引使得 Elasticsearch 支持快速检索,ElasticSearch 将不同数据存储在不同索引(index)中。例如订单数据放在订单索引,用户数据放在用户索引中,如果类比 MySQL,索引就像数据库,可以向索引写入文档或者从索引中检索文档、更新文档、删除文档等操作。

查看原文

Elasticsearch 分词

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


所谓分词就是将一段文本按照语义规则切分成多个词语,当有一篇文章标题是 “马云说996是福报”时,我们需要把这段文本切分成多个词语: 996、马云、福报 等。因为用户搜索的时候可能只会输入一个词语。

之所以要这样做是为了提高搜索的准确度,如果用户搜索的时候输入的关键字是 “996”,刚好能匹配到分词短语 996,就能命中该文本。ES 的搜索不象 MySQL 那样使用 like 语句执行模糊搜索。

查看原文

Elasticsearch基本操作

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


熟悉了elasticsearch 的基本概念后,可以动手实践了,实践才能出真知。

索引列表

curl http://localhost:9200/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open accounts MtqOgd0aTb6emn2rj-VfNQ 1 1 2 0 5kb 5kb

curl http://localhost:9200/_cat/indices?v

health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   accounts MtqOgd0aTb6emn2rj-VfNQ   1   1          2            0        5kb            5kb
查看原文

Elasticsearch 查询

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


核心功能之一就是提供搜索,搜索有两种方式,一种从 url 中读取所有的查询参数,用 GET 请求。另一个是使用 POST 请求 将 JSON 数据作为请求体,支持完整的 Elasticsearch DSL。DSL查询表达式(Query DSL),它是一种非常灵活又富有表现力的 查询语言。 Elasticsearch 使用它可以以简单的 JSON 接口来展现 Lucene 功能的绝大部分。在你的应用中,你应该用它来编写你的查询语句。它可以使你的查询语句更灵活、更精确、易读和易调试。

查看原文

Elasticsearch 安装

来源:foofish   |   更新时间: 2月前   |   分类: PYTHON技术


环境:CentOS 7.0

Elasticsearch 是基于Java 搜索引擎 Luncene 开发的分布式搜索服务,所以先要安装 Java 环境。

安装Java

yuminstalljava-1.8.0-openjdk

yum install java-1.8.0-openjdk
查看原文

重置GitLab root密码

来源:ansheng   |   更新时间: 2月前   |   分类: 


启动Ruby on Rails控制台

gitlab-rails console -e production

等待控制台加载完毕。

通过ID查找用户

user = User.where(id: 1).first
查看原文

在 Python 中实现函数重载

来源:kingname   |   更新时间: 2月前   |   分类: Python


假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组。例如:

connect('123.45.32.18:8080')
connect(('123.45.32.18', 8080))
查看原文

如何统计一个数字的二进制值里面有多少个1

来源:kingname   |   更新时间: 2月前   |   分类: Python


任意给出一个正整数,例如4523,如何快速统计它的二进制值里面有几个1?

我们知道,在 Python 里面,查看一个数字的二进制函数为:bin,例如:

>>> bin(4523)
'0b1000110101011'
查看原文

一次调试段错误(segmentation fault)的经验

来源:dongwm   |   更新时间: 2月前   |   分类: 


段错误 (segmentation fault) 的发生是由于 C 模块试图访问无法访问的内存。如果没有尝鲜最新的 CPython 或者类库或者编写 C/C++ 扩展,段错误对 Python 开发者来说可以说可遇不可求,因为 CPython 和主流第三方类库的测试完善且社区活跃所以很难看到,即便看到了往往也已经被修复了。

昨天恰好遇到一个,所以把整个调试解决过程整理成本文。

查看原文

闲聊:语言决定思维方法

来源:kingname   |   更新时间: 2月前   |   分类: 思维方式


在知乎上有这样一个问题:《如果当年汉字真的拼音化了会怎么样?》,下面有一个高赞回答写道:

这个答主的逻辑非常简单,因为《施氏食狮史》这个小故事,全篇只有shi与si两种发音,如果用汉语拼音,那么完全无法读懂。只有通过不同的中文汉字,才能正确读懂故事的意思。因此中文汉字比汉语拼音强,信息量比汉语拼音大。

然而这个答主忽略了一个问题,这个小故事实际上只有生活在汉字环境中的人才能想出来。对于完全生活在拼音环境中的人来说,他们的思维方式决定了根本不可能有这个故事产生。

查看原文

本页内容使用均遵循相关开源协议,部分内容获得作者本人授权