百科问答小站 logo
百科问答小站 font logo



你们都用 python 做什么呢(除了专职程序员)? 第1页

  

user avatar   gao-tian-50 网友的相关建议: 
      

我是职业程序员,但是我的职业和python基本没有关系。我python也是毕业之后才开始自学的,所以单从python的角度看,我也算个业余的吧。

最近一年我python的兴趣爱好还蛮专一的,而且和大部分的python开发者不一样,我一直在做工具。可能是受我们公司产品的影响,我这一年来做了若干个给python开发者使用的开发工具,感觉还挺有意思的。

目前来看最成熟的肯定是VizTracer了。VizTracer比较优雅地解决了一个前人没太解决过的方向——多线程多进程下的功能与性能分析。

python现存的几乎所有profiling的工具基本都是走的“总结”路线,VizTracer不太一样,它会展示出每一时刻程序的进度,让用户可以明确地知道每一个时间点,程序运行到哪个函数了,从而去同时完成功能和性能的分析。

和其它的性能/功能分析工具相比,VizTracer包含的信息量是多出来起码一个数量级的。你看到的不是一个总结性的“某某函数一共运行了N次花了M秒”,而是从程序运行开始,每一个函数被调用和返回的时间点。

到了多线程和多进程的时候,这种优势就被无限放大了。且不说大量的工具是压根不支持多线程多进程的,对于所有的总结性工具,你是完全没办法了解到线程和进程直接的关系的。比如出现死锁的时候,你不知道到底怎么回事。而VizTracer因为是按照时间戳做时间轴的,所以你可以明确地知道每一时刻每个进程/线程在做什么事情,极大地增强了多线程多进程的debug效率。

可以说目前在市面上的工具里,在多进程的程序理解上,暂时还没看到比VizTracer优秀的作品。


接下来说说watchpoints吧,这也是我寄予厚望的一个项目,但是没有VizTracer传播地那么广泛(因为我宣传的少一些)。它比VizTracer要稍微简单一些,当然用起来也更迅速。watchpoints的功能和它的名字一样,就是实现一个快速的watchpoints(废话)。

可能有的人对watchpoints不太了解,这是一个debugger的术语,说的是监视某一块内存(在C里),当这块内存被改动的时候,停止程序(像breakpoint一样)。那在python里呢,我实现的是监视某一个变量,在这个变量被修改的时候,进行callback(默认是打印)。

watchpoints最大的优势是用起来很方便。我们看个最简单的例子:

       from watchpoints import watch a = 0 watch(a) a = 1     

只需要import watch然后watch(var)就可以了。是不是很符合直觉?在这个变量被修改的时候,就会打印出来。

       > <module> (my_script.py:4): >     a = 1 a: 0 -> 1       

watchpoints的用法非常灵活,不光可以看局部变量,也可以去看object, attribute, list或者dict里的element,而且不光在当前scope可以监视,是全局的监视,任何时刻这个值被修改了都能发现。如果对细节感兴趣的可以看一下我的文章:高天:Python+watchpoints!超轻量级debug利器


另外我还花了几天时间做了一个小项目叫wthell。这个项目更简单,而且说实话不算是有独创性的项目,市面上有很多工具都有类似的功能。简单的说wthell可以让你“回到”你程序报exception的地方。当然其实不是真的“回到”,是重新运行一下。

我个人比较喜欢这个项目的地方是有一点点恶趣味的。wthell英文里是what the hell的意思。当你在运行一个python程序报错的时候,你可以直接输入wthell !!(linux only),然后就会回到你出错的地方,可以看到local vars还有call stack之类的。虽然功能上并不是独创的,但是有点无厘头,蛮搞笑的。


python本身能干的事情当然很多,我也写了不少应用型的项目,比如一个AI比赛的平台colorfight,在美国这边好几个学校组织过比赛;包括一个自己的知乎爬虫去找有趣的问题回答;以及我eecsresume.com网站的后端其实也是python。

我觉得做项目这个事情,最大的制约根本就不是“语言”。python能做的事情多了去了。最大的制约是你的想象力,还有你的决心和毅力。

你需要想到一个真实生活中你试图解决的问题。更重要的是,尽管python很可能可以解决这个问题,但是你现在学到的python是一定不完全够的。无论解决什么真实问题,你一定都需要再补充额外的知识。如果你只想着我用现在学到的python去解决问题,那解决的几乎一定都是“假问题”。就是为了练习python而编造的项目。这就是为什么我说,决心和毅力很重要,因为你还是要去花时间学东西,做尝试,经历失败,才能做个像样的东西出来。

有一句话叫,当你手里有锤子的时候,看什么都像钉子。但是如果你想只依靠手里的这个锤子,那一定是什么像样的玩意都做不出来的,你只能去砸钉子。到最后你就会觉得,哎为什么我手里的这锤子就只能砸钉子呢?那些高楼大厦,饰品文玩,为什么我都做不了呢?其他用锤子的人都在锤什么呢?

做的东西满地都是,你自己都能想得到。你欠缺的,是拿起来除了锤子之外其他工具的能力,已经把这些工具组合起来做一个东西的精神。


user avatar   present-is-gift 网友的相关建议: 
      

学习汉字小程序 https://www.zhihu.com/video/1493044176485310464

写个小程序让娃儿自学。

这个程序很粗糙,基本原理如下:

  1. 读入一个TXT文件里的内容,然后自动生成界面,每个汉字生成一个按钮。此处用python自带的Tkinker 库

2. 每当点击按键,就用gTTs调用谷歌的语音库,把文字转换成MP3的语音存入指定路径。如果指定路径已经有相应的文件就略过此步骤

3. 用Windows自带的程序播放mp3文件

4. 检查是否有相应笔顺的gif文件,如果没有就从网站下载。

5.用windows自带的程序打开相应的gif文件。以显示笔顺动态效果

因为是自己用着玩儿,实在懒得把播放功能和图片显示功能集成到一个界面里。

程序只需要更改TXT文件里的汉字,重启程序就能切换其他汉字。

娃儿暑假快来了,老爹的第一个程序已经准备好了!


user avatar   pydatalysis 网友的相关建议: 
      

Python的第三方库很多,而且涉猎范围之广往往让初学者感到惊讶,居然每个领域都有轮子。

工作之外,我常常会研究有趣的Python库,并把它们的使用方法记录下来。

下面是挑出来的不错的Python应用场景,供大家参考,几乎每个都手敲代码验证过。

处理pdf、excel、word、csv等文档

朱卫军:pdfkit | 利用python实现html文件转pdf

朱卫军:利用Python将PDF文档转为MP3音频

朱卫军:xlwings,让excel飞起来!

朱卫军:如何使用python提取pdf表格及文本,并保存到excel

朱卫军:python读写excel等数据文件方法汇总

朱卫军:python自动化办公太难?学这些就够用了

图像识别、剪辑、修正

朱卫军:轻松识别图像,这款Python OCR库支持超过80种语言

朱卫军:使用Python Pillow库生成九宫格图片

朱卫军:教你使用Python制作酷炫二维码

微博或者微信创意九宫格图片是如何制作的?

可以用 Python 编程语言做哪些神奇好玩的事情?

丰富可视化工具

朱卫军:高级,这个Python库助力pandas智能可视化分析

朱卫军:seaborn常用的10种数据分析图表

朱卫军:Pygal,可导出矢量图的Python可视化利器

朱卫军:聊一聊Python中优秀的6个地图可视化库

朱卫军:Superset,基于web的开源BI工具,github三万star

朱卫军:使用pyecharts绘制词云图-淘宝商品评论展示

朱卫军:干货 | Bokeh交互式数据可视化快速入门

朱卫军:教你用pyecharts制作交互式桑基图,赶快学起来吧!

地理空间数据处理、可视化、算法

朱卫军:geopandas,用python分析地理空间数据原来这么简单!

地学大数据:如何使用Python将经纬度坐标转换成地址

地学大数据:工具|拾取三种坐标系(GCJ-02、WGS-84、BAIDU-09)的坐标拾取器

地学大数据:如何使用Python读取GeoJSON和Shapefile文件,并转换坐标系

地学大数据:工具|地址转经纬度坐标的工具

地学大数据:干货|利用Python获取高德POI兴趣点数据

Python 如何画出漂亮的地图?

数据清洗、大数据、数据库

朱卫军:Modin,只需一行代码加速你的Pandas

朱卫军:在pandas中使用数据透视表

朱卫军:Vaex :突破pandas,快速分析100G大数据量

朱卫军:Python sqlite3数据库模块使用攻略

朱卫军:pandas_profiling :教你一行代码生成数据分析报告

朱卫军:Python数据分析案例 | 台风最喜欢在我国哪个省市登陆

朱卫军:numba,让python速度提升百倍

python与mysql怎么完成大量的数据交互?

爬虫、网络、文本处理、邮箱

朱卫军:这个Pandas函数可以自动爬取Web图表

朱卫军:selenium入门详细指南(附淘宝抢购案例)

朱卫军:jieba分词-强大的Python 中文分词库

朱卫军:使用requests爬取python岗位招聘数据

朱卫军:小白如何入门 Python 爬虫?

朱卫军:使用Python验证常见的50个正则表达式

如何用 python 获取实时的股票数据?

朱卫军:干货 | 解放双手,用Python实现自动发送邮件

Python学习方法、书籍、开发工具

你们都是怎么学 Python 的?

为什么自学Python看不进去?

怎么自学python,大概要多久?

怎么才能最短时、高效、踏实的学习 Python?

自学了半个月python,感觉没用,怎么办?

Python 学习完基础语法知识后,如何进一步提高?

Python 语言有什么奇技淫巧吗?

想学python,朋友们推荐哪本书籍呢?

有什么关于python的书值得阅读?

有什么好的自学 Python 的书籍推荐?

入门python有什么好的书籍推荐?

初学 Python 需要安装哪些软件?

有哪些值得推荐的 Python 开发工具?

最后

我一直提倡学习编程先动手,再动脑。

这不是说不让大家用脑子,而是动手会让你快速入门,并产生兴趣。

所以说先建立兴趣,然后深入去研究语法和应用领域,这样就能快速掌握编程技能。

看到这里,大家不要忘了关注 朱卫军 哦,还写了好多好多好多~


如果大家学习语法过程中比较吃力,那是因为缺乏系统的认知,可以买本语法书看看。

下面的这几本比较适合新手,也有很多练习。

之前也整理了更详细Python选书攻略,大家可以看看


user avatar   zhangfulong 网友的相关建议: 
      

聪明人靠统计数字和洞察来得出结论。

平庸的人仅依靠统计数字来获取信息。

笨蛋成天看个案小作文来悲鸣或自嗨。




  

相关话题

  Python 的练手项目有哪些值得推荐? 
  如何有效的判断一个函数使用了传入参数中的哪些值? 
  为什么这么多人吐槽996,还要去BAT等互联网公司体验福报? 
  现在的市场对 C++ 的需求大吗? 
  程序员怎么赚钱? 
  用 pdf 版看完大部头专著是怎样一种体验? 
  几乎零基础的电子开发人员,如何成为优秀的程序员? 
  程序员如何像@mu peng一样找到那么合适的老婆? 
  为什么 Dropbox 等大型服务使用 Python 作为主要语言,即使它的效率比其他编译型语言低几个数量级? 
  程序员开发那种,遇到不给力的测试怎么办? 

前一个讨论
想叫孩子把古文观止背下来,计划寒暑假每天一篇,上学期间每个星期背两篇,不知道这样有用不?
下一个讨论
如何理解某个音乐博士认为陈奕迅和周杰伦不入流?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利