当前位置: 首页 > news >正文

python倒背如流_如何系统地自学 Python?

1.第一 python入门基础:这些都是基础,基本概念必须清楚!

学习Python需要掌握如下基础知识以及相关技能。

1.Python基础知识(变量、语句、数据类型、数值类型、字符串、布尔类型、列表、字典、元组、条件语句、循环语句、函数、装饰器、面向对象、网络socket、爬虫)

2.Python基础库(模块、包、系统模块、三方模块)

3.python文件处理(读、写、执行、)

4.python字符统计

5.python数据排序

2.学习方法:万虐终成神!敲代码,解决BUG才是学习,无数次的看视频不是学习,至少不会学好。

只记Python基础语法,却没什么鸟用。就像幼儿园,老师在黑板上写的‘肉’字,记住这个字咋写,一笔一划的记住,只需要半天,但是把这个词和你平时吃的东西绑定,以至于后面你想到这个字,就流口水,需要日常的重复训练。

同理:无方向的看书,看视频也没什么用,其实可以通过直接实战来上手,比如:

文件操作

字符排序

网络编程

错误的学习方法:

很多人在学习Python的时候常常会犯下面一种情况:

买一本厚厚的编程指南,逼自己看完,记住每个语法,闭门看书三个月,吃透一本书,最后一行代码也写不出来。

正确的学习方法:

编程就像骑自行车,买一本<<骑自行车大全>>是没有什么用的。

正确姿势:掌握最基础的姿势,就可以骑上车出发了,实际联系几天,摔几跤,基本就学会了。

3.自我进行测评:基础门槛,不过需要找原因并解决。

很多朋友反馈:Python基础语法都学会了,但不知如何写项目进阶?

1.List,Dict特性倒背如流,就是无法写出实际的项目。

2.各种书籍也看,写不出东西。

3.各种视频也看,写不出东西。

4.各种大会也去,名词高大上,但是没学到具体的技能。

对自我进行检测:

1.给你一个字符串“come baby,python rocks!” 如何统计里面字母o出现的次数!

思路:遍历字符串,定义一个变量,每次o出现,都+1

2.给你一个字符串“come baby,python rocks!” 如何统计这里面所有字母出现的次数!(普通变量肯定无法完成。)

思路:需要使用字典这类复杂的数据结构处理,字母当key,出现的次数当value,每个key出现,对应的value+1

3.给你一个字符串“come baby,python rocks!” 如何统计这里面字母出现次数的前三名!

思路:排序,取出前三

后续扩展练习:

1.给你一个字符串“come baby,python rocks!” 怎么统计出现次数前三的字母。

2.一个nginx日志文件,怎么统计IP出现次数前三的url。

3.一个nginx日志文件,统计IP出现前三后,如何存入MySQL数据库。

4.存入MySQL中的日志文件,如何输出给浏览器端显示。

5.如何美化前端表格等等。

4.重要学习部分:python库怎么学

模块

将多个代码块(按功能)定义到同一个文件中。别的文件中使用时则先导入模块,在调用模块内变量或函数。

模块命名要符合python变量的命名规范

1.建议全小写英文字母和数字

2.避免与常用模块或第三方模块名称冲突

控制模块内代码在使用python mod.py时执行,在导入时不执行

1.通过Global内变量__name__进行判断

2.当以python mod.py运行脚本时__name__变量为__main__字符串

3.当以模块导入时__name__为模块名称字符串

将不同模块文件放在不同文件夹内,包文件夹下面需要有__init__.py文件用以声明该文件为Python包。

使用时需要从包内导入模块后调用模块中变量和函数。

常用系统模块:

os,sys,time,datetime,urllib,xml,json,email,csv,collections,math,zipfile,trafile,hashlib

常用三方模块:

requests,pyquery,django,flask,mysqlclient,paramiko,redis,lxml,dateutils,ipaddr,netaddr

模块学习方法:

1.先知道有没有

2.用的时候在查

内置工具:dir、help

搜索引擎:google、百度

5.再说一个python目前一个热点:python Web应用(python全栈)

1.Python基础入门(入门、数据类型、条件表达、循环语句)

2.Python基础进阶(文件操作、函数、装饰器、模块、面向对象、网络编程)

3.Python前端知识(Html、Css、Js、Jquery、Bootstrap、)

4.Python高级用法(Django、Flask、数据库操作、MVC、ORM、Admin、template)

5.Python项目实战(电商项目、爬虫项目、常用组件、运维项目、代码调优)

6.Python高级进阶(数据算法、代码规范、面试技巧)

重要:多抄、多写、多想、多问、多看、多听、多说

1.学习编程就是为了解决实际的问题,把自己在工作或学习中的重复工作程序化

2.谷歌和度娘

3.加入开源社区(多看、多分享、多交流)

4.参加培训辅导(仔细听课、跟上课堂学习,有问题做记录,课后查阅资料或请求他人)

5.善于记录笔记,不断总结,查漏补缺。

6.python前景之一:大数据分析

1.python基础入门(入门、数据类型、条件表达、循环语句)

2.python基础进阶(文件操作、函数、装饰器、模块、面向对象、网络编程)

3.python数据采集:(外部数据源导入分析&爬虫自己采集数据源分析)

4.数据分析:(各种库,如Pandas库,Numpy库必备数据库)

5.数据可视化:(matplotlib库)

重要:实用即可,最具价值,切莫花哨不适用

7.python前景之二:机器学习

直接看应用吧:看起来是个云端的概念

1.计算机视觉

典型的应用包括:人脸识别、车牌识别、扫描文字识别、图片内容识别、图片搜索等等。

2.自然语言处理

典型的应用包括:搜索引擎智能匹配、文本内容理解、文本情绪判断,语音识别、输入法、机器翻译等等。

3.社会网络分析

典型的应用包括:用户画像、网络关联分析、欺诈作弊发现、热点发现等等。

4.推荐

典型的应用包括:虾米音乐的“歌曲推荐”,某宝的“猜你喜欢”等等。

学习路线:数学基础:微积分、线性代数、概率与统计、典型算法

2.编程语言、工具和环境:python

python有着全品类的数据科学工具,从数据获取、数据清洗到整合各种算法都做得非常全面。网页爬虫: scrapy

数据挖掘:pandas:模拟R,进行数据浏览与预处理。

numpy:数组运算。

scipy:高效的科学计算。

matplotlib:非常方便的数据可视化工具。

机器学习:scikit-learn:远近闻名的机器学习package。未必是最高效的,但是接口真心封装得好,几乎所有的机器学习算法输入输出部分格式都一致。而它的支持文档甚至可以直接当做教程来学习,非常用心。对于不是非常高纬度、高量级的数据,scikit-learn胜任得非常好(有兴趣可以看看sklearn的源码,也很有意思)。

libsvm:高效率的svm模型实现(了解一下很有好处,libsvm的系数数据输入格式,在各处都非常常见)

keras/TensorFlow:对深度学习感兴趣的同学,也能很方便地搭建自己的神经网络了。

自然语言处理:nltk:自然语言处理的相关功能做得非常全面,有典型语料库,而且上手也非常容易。

交互式环境:ipython notebook:能直接打通数据到结果的通道,方便至极。强力推荐。

3.编程语言、工具和环境:R

R最大的优势是开源社区,聚集了非常多功能强大可直接使用的包,绝大多数的机器学习算法在R中都有完善的包可直接使用,同时文档也非常齐全。常见的package包括:RGtk2, pmml, colorspace, ada, amap, arules, biclust, cba, descr, doBy, e1071, ellipse等等。另外,值得一提的是R的可视化效果做得非常不错,而这对于机器学习是非常有帮助的。

4.其他语言

相应资深程序员GG的要求,再补充一下Java和C++相关机器学习package。Java系列

WEKA Machine Learning Workbench 相当于java中的scikit-learn

其他的工具如 Massive Online Analysis(MOA)、MEKA 、 Mallet等也非常有名。

C++系列

mlpack,高效同时可扩充性非常好的机器学习库。

Shark:文档齐全的老牌C++机器学习库。

8.相关学习文档资料:目前比较好的文档还是英文,国内资料没有可以加我的学习群473391225,自己去下载。国内python资源汇总​pan.baidu.com

----------------------------------------------------------------------------------------------

2018/05/25更新:开发文档资源整理(一)

环境管理

管理 Python 版本和环境的工具p:非常简单的交互式 python 版本管理工具。官网

pyenv:简单的 Python 版本管理工具。官网

Vex:可以在虚拟环境中执行命令。官网

virtualenv:创建独立 Python 环境的工具。官网

virtualenvwrapper:virtualenv 的一组扩展。官网

包管理

管理包和依赖的工具。pip:Python 包和依赖关系管理工具。官网

pip-tools:保证 Python 包依赖关系更新的一组工具。官网

conda:跨平台,Python 二进制包管理工具。官网

Curdling:管理 Python 包的命令行工具。官网

wheel:Python 分发的新标准,意在取代 eggs。官网

包仓库

本地 PyPI 仓库服务和代理。warehouse:下一代 PyPI。官网Warehouse:PyPA 提供的 PyPI 镜像工具。官网 bandersnatch

devpi:PyPI 服务和打包/测试/分发工具。官网

localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。官网

分发

打包为可执行文件以便分发。PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。官网

dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 Debian 包来发布。官网

Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。官网

py2app:将 Python 脚本变为独立软件包(Mac OS X)。官网

py2exe:将 Python 脚本变为独立软件包(Windows)。官网

pynsist:一个用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。官网

构建工具

将源码编译成软件。buildout:一个构建系统,从多个组件来创建,组装和部署应用。官网

BitBake:针对嵌入式 Linux 的类似 make 的构建工具。官网

fabricate:对任何语言自动找到依赖关系的构建工具。官网

PlatformIO:多平台命令行构建工具。官网

PyBuilder:纯 Python 实现的持续化构建工具。官网

SCons:软件构建工具。官网

交互式解析器

交互式 Python 解析器。IPython:功能丰富的工具,非常有效的使用交互式 Python。官网

bpython:界面丰富的 Python 解析器。官网

ptpython:高级交互式Python解析器, 构建于python-prompt-toolkit 之上。官网

文件

文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。imghdr:(Python 标准库)检测图片类型。官网

mimetypes:(Python 标准库)将文件名映射为 MIME 类型。官网

path.py:对 os.path 进行封装的模块。官网

pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。官网

python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。官网

Unipath:用面向对象的方式操作文件和目录。官网

watchdog:管理文件系统事件的 API 和 shell 工具官网

相关文章:

  • git desktop发布到gitee_MAC系统下利用gitee和Hexo建个人网站-各种坑各种填
  • python面试题与知识点_python技术面试题(一)
  • css覆盖规则_CSS元素选择器是怎样运作的?
  • bagging和时间序列预测_时间序列预测与指数平滑法
  • python领域驱动_浅谈“领域驱动设计”
  • http status 404 – 未找到_[SEO名词]网站404页面是什么?
  • pythonsqlite锁定_python – 可以在NFS文件系统上锁定sqlite文件吗?
  • python如何调用matlab_[Python-MATLAB] 在Python中调用MATLAB的API
  • 语料库与python应用_语料库与Python应用/语料库翻译学文库
  • 多个id如何用js_将多个MSA连超级高铁网络,如何用最少的轨道连接所有MSA?
  • python上传excel文件_利用django如何解析用户上传的excel文件
  • js悬浮二级菜单代码_纯CSS实现简单二级导航下拉效果
  • microbit python扩展_【micro:bit扩展】如何用慧编程扩展设计器为 micro:bit 编写扩展...
  • boost原理与sklearn源码_从sklearn源码简析GBDT
  • 信息隐藏将txt文件合并到jpg文件中_GIS工作中让你事半功倍,在数据处理中常用的小技巧...
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Docker下部署自己的LNMP工作环境
  • es6(二):字符串的扩展
  • ES6之路之模块详解
  • Iterator 和 for...of 循环
  • Laravel 菜鸟晋级之路
  • Quartz初级教程
  • SpingCloudBus整合RabbitMQ
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 初探 Vue 生命周期和钩子函数
  • 飞驰在Mesos的涡轮引擎上
  • 基于组件的设计工作流与界面抽象
  • 区块链技术特点之去中心化特性
  • 什么软件可以剪辑音乐?
  • 项目管理碎碎念系列之一:干系人管理
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • linux 淘宝开源监控工具tsar
  • Spring Batch JSON 支持
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​2020 年大前端技术趋势解读
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (arch)linux 转换文件编码格式
  • (MATLAB)第五章-矩阵运算
  • (windows2012共享文件夹和防火墙设置
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (四)JPA - JQPL 实现增删改查
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转载)(官方)UE4--图像编程----着色器开发
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net Stream篇(六)
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net解析传过来的xml_DOM4J解析XML文件
  • /*在DataTable中更新、删除数据*/
  • [ IO.File ] FileSystemWatcher
  • [ linux ] linux 命令英文全称及解释
  • [100天算法】-实现 strStr()(day 52)