当前位置: 首页 > 后端技术 > Python

分析-为什么学了Python就不会编程

时间:2023-03-26 11:52:56 Python

前言Python是一门应用非常广泛的语言,容易上手,也被推荐为编程入门的最佳语言。知书堂有幸邀请到DevOps开发专业人士:张文兵老师,和他聊聊学习Python的一些疑惑。一般问题如下:如何学习Python?Python的书看了好几本,还是不能独立做一个程序。为什么?张老师从构建这门课程的思路出发,给了我们以下的答案《Python运维自动化》。Python基础如何学习Python基础入门比较简单,基本上3-4周就可以看完一本Python书籍。然后重点练习一些自己比较难理解的地方。这里需要注意的是,我们在学习过程中不需要在每一章的例子上敲敲打字,点击运行就可以满足了。从收入的角度来看,这种学习方式性价比不高,而且会耽误我们很长一段时间的学习时间。这部分的学习可以联系知书堂的助教获取知书堂提供的Python基础视频。我们通过视频进行系统的学习,然后自己总结。Python基础环境10-20天就可以打通。Python进阶实战有同学反映,学完Python基础后,会觉得很无所适从。因为这时候谈工程,离工程太远了;讲算法,离算法太远了。突然觉得有些东西是Python语法解决不了的。下面举两个例子:1.解决Python面向领导的编程需求的能力。开个玩笑,我提到了面向领导的编程。比如:我们需要对每天的服务器运行情况做一个总结,然后以excel或者word格式发送给领导,再加上一份漂亮的报告。这会涉及到:数据采集->抓取,数据整理分析,展示(模板),报表生成(excel调用),word生成(另一种新的模板格式),邮件。从做这个面向领导的编程,如果要把东西连在一起,你会发现需要一系列的整合。集成好不好,如何集成,是新手比较迷惑的几个点。在知书堂《Python运维自动化》课程中,张文兵老师带着大家从实战的角度来完成了这件事情。参考《Python运维自动化》第三章3.4Python网络编程。2.高效解决问题的愿景下面说说高效解决问题。例如:求给定数据:9为数组[2,7,11,15,9]中两个元素相加之和,打印出两个元素的下标:0,1。新手程序:#!/usr/bin/envpythonnums=[2,7,11,15,9]target=9length=len(nums)fori,iteminenumerate(nums):forjinrange(i+1,length):ifnums[i]+nums[j]==target:print([i,j])break也可以得到答案,但是你会发现如果数组增加,效率会变低。老司机的做法:#!/usr/bin/envpythonnums=[2,7,11,15,9]target=9dct={}fori,ninenumerate(nums):iftarget-nindct:print(dct[target-n],i)exit(0)dct[n]=iprint("Notwosumsequal")突然你会发现这样更快,而且在大数据环境下也是非常快的。顿时,老司机满脸的敬意。听听老司机为什么要这样做,比如代码中的超时控制。老司机在实战项目中经常会提到这十几行代码。这是非常重要的。你可以把这个功能写下来,以后可以用,然后回来告诉我为什么它很重要,你走过了哪些坑。知书堂《Python运维自动化》带你深挖实战项目。如何挖掘Python技术的深度Python是一门可以用在很广泛地方的语言,很多机器和人工智能也会用到。不过对于这些想法,张文兵老师也给大家泼了一盆冷水,“别看人工智能这个方向,对数学要求很高,不能只学Python。”那么如果你想提高你的Python技能,你应该怎么做呢?张老师的定位:可以在工作中使用Python完成任务而不觉得太难,了解开发中的常用组件和用法,能够与开发者平等对话。比如:你需要了解ES、消息队列、并行框架、自动化测试等等。在《Python运维自动化》课程中,我也意识到了这些问题:本章带大家体验一下各种中间件的使用方法,可以做什么工作,需要注意什么,力争做一个全-堆栈DevOPS,工程师进入SRE课程。如何做一个开源产品最后和张老师聊了聊如何做一个开源产品。说起这个话题,感觉是一个很大的话题。关于产品的定义,张总说如果一个产品是最简单的web形式存储,那你就得学django,vue之类的东西。另外,他举了一个例子,在他的《Python运维自动化》课程《实战项目:MySQL慢日志收集》中,可以说是一个开源产品的雏形。本次教学案例将完成:在线MySQL慢日志采集入ES库使用SOAR生成慢日志优化建议使用django进行日志展示面向利用领先的编程技术生成报表输出参考《Python运维自动化》《Python运维自动化》传送门:https://ke.qq.com/course/480869是在此基础上丰富的,如果能被别人使用,能维护,就是一个不错的开源产品。联系助教索取《Python运维自动化》大纲及相关资料