diff --git a/python/helloworld.png b/python/helloworld.png new file mode 100644 index 0000000..c43b4a6 Binary files /dev/null and b/python/helloworld.png differ diff --git a/python/learn_python_follow_brother_huang_1.md b/python/learn_python_follow_brother_huang_1.md new file mode 100644 index 0000000..6250a53 --- /dev/null +++ b/python/learn_python_follow_brother_huang_1.md @@ -0,0 +1,170 @@ +# 跟黄哥学习python第一章 + + +## 完事开头难,千里之行始于足下。 + +## 为啥要学习python + + 1、python是一门容易人们的语言,便于快速学习,快速应用到业务上。 + 2、python 有丰富的自带标准库和大量的第三方库。 + 3、python应用广泛。 + (1)web开发。 + (2)爬虫。 + (3)linux下网络编程、特别是高并发服务端设计(高并发大流量分布式服务器后台开发)。 + (2)机器学习和数据挖掘; + (3)图像处理、游戏开发等。 + (4)云计算。 + (5)ERP。 + (6) 科学计算、生物计算。 + (7) 运维自行化。 + (8)测试自动化等等方面。 + + 4、学习python可以让一些想从事IT行业的朋友,通过学习python学会编程,快速进入到IT行业。 + + +## 学习python 2 还是 python 3 + 为啥有那么多python + CPython是用C语言实现的Python解释器。作为官方实现,它是最广泛使用的Python解释器。 + 除了CPython以外,还有用Java实现的Jython,用.NET实现的IronPython, + 使Python方便地和Java程序、.NET程序集成。另外还有一些实验性的Python解释器比如PyPy。 + 本书以cpython 也就是常说的python为主。 + + python 有两个版本,python 2 和 python 3 ,学习python2 还是3,这个不是一个问题。 + 学习编程不是纯学语法,是学习编程思路,python 2 和 3 都姓“python“, + 差别没有那么大,差别可以通过查文档解决。所以根据自己的喜好选择python 2 还是 python 3。 + 目前工作上大家还在用python 2。 + + +## 为啥要在linux下学习python + + 提到Linux,部份人不熟悉,不熟悉没有关系,不熟悉可以学习啊。 + 白纸才好写字,python不是也不熟悉吗? + 可以在学习python的同时,在Linux操作系统下学习,同时学会了python 和Linux,一举两得,多好的事。 + + 1、python以后开发的程序,大部分跑在Linux操作系统下,以后工作环境需要用到Linux,你说该学吗? + + 2、企业招聘要求会Linux,你说该学吗? + + 3、连微软都拥抱Linux,你说该学吗? + + 4、在windows下学习,会碰到各种麻烦问题,换一个没有病毒,学习python造成障碍少的操作系统,你说该学吗? + +## linux 可以先择centos,或ubuntu。 + 可以先择独立安装或通过虚拟机安装。 + [安装ubuntu,请看](http://www.ubuntu.com/download/desktop/install-ubuntu-desktop)。 + [安装centos,请看](https://wiki.centos.org/HowTos/InstallFromUSBkey) + + +## 如何安装python + +python下载 +windows平台 +电脑64位 +[python 3.5.1](https://www.python.org/ftp/python/3.5.1/python-3.5.1-amd64.exe) +[python 2.7.11](https://www.python.org/ftp/python/2.7.11/python-2.7.11.amd64.msi) + 下载后双击安装 + 电脑32位 +[python 3.5.1](https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe) +[python 2](https://www.python.org/ftp/python/2.7.11/python-2.7.11.msi) +下载后双击安装 +特别提示:winodws下需要设置环境变量 (Excursus: Setting environment variables) +请看http://docs.python.org/2/using/windows.html +使得cmd下任意路径输入python,没有报错信息,表示正确安装好了。 +特别提示:安装是选择添加path,自动设置好环境变量。 + + + +mac 下 64位 下载这个 +[python 3.5.1](https://www.python.org/ftp/python/3.5.1/python-3.5.1-macosx10.6.pkg) +[python 2.7.11](https://www.python.org/ftp/python/2.7.11/python-2.7.11-macosx10.6.pkg) +点击安装 + + 32位 + [python 3.5.1](https://www.python.org/ftp/python/3.5.1/python-3.5.1-macosx10.5.pkg) + [python 2.7.11](https://www.python.org/ftp/python/2.7.11/python-2.7.11-macosx10.5.pkg) + + +linux 下 以ubuntu为例 + +(1)下载 + + 在python官网中下载python2.7.9安装包 http://python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz + +(2)解压 + + tar -zvf Python-2.7.9.tar.xz + +(3)编译安装 + + cd Python-2.7.9 + + ./configure + + make + + sudo make install + +python默认安装目录在/usr/local/lib/python2.7,终端shell下python -V 查看版本号 + +(4)更改系统默认版本 + + sudo rm /usr/bin/python + + sudo ln -s /usr/include/python2.7 /usr/bin/python + +这样在终端输入python显示的默认版本就是2.7.9了 + + +# 操作系统有了,得会常用的命令 + + linux shell,一种壳层与命令行界面,是linux操作系统下传统的用户和计算机的交互界面。 + 第一个用户直接输入命令来执行各种各样的任务。普通意义上的shell就是可以接受用户输入命令的程序。 + 它之所以被称作shell是因为它隐藏了操作系统低层的细节。 + 同样的linux下的图形用户界面GNOME和KDE,有时也被叫做“虚拟shell”或“图形shell”。 + linux操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。 + 当然在这点也有别于Windows下的命令行,虽然也提供了很简单的控制语句。 + 在Windows操作系统下,可能有些用户从来都不会直接的使用shell, + 然而在linux系列操作系统下,shell仍然是控制系统启动、XWindow启动和很多其他实用工具的脚本解释程序。 + + 常用的命令: + mkdir 创建目录 + rmdir 删除目录 + cd 切换目录 + pwd 显示目录 + ls 列目录 + cp 复制文件 + mv 更改文件名 + rm 删除文件 + chmod 改变权限 + cat 编辑文件 + less 显示文件内容 + +[学习Linux command 请参考](http://linuxcommand.org/lc3_learning_the_shell.php) + + +# 常用ide或编辑器 +1、[pycharm](https://www.jetbrains.com/pycharm/download/) +2、[atom](https://atom.io/) +3、[sublime text](https://www.sublimetext.com/3) +4、[Visual Studio Code](https://code.visualstudio.com/) +5、[wingide](https://wingware.com/downloads) +6、[liclipse pydev](http://www.liclipse.com/download.html) +7、vim +8、emacs +........ +萝卜白菜各有所爱,选择适合自己的. + +## 学习方法 + +1、动手,又动脑,一定要自己敲代码。 + +2、[如何通过学习python学会编程](https://github.com/pythonpeixun/article/blob/master/python/how_to_learn_python.md) + +如果你感觉黄哥的文章对你有帮助请打赏,支付宝账号:18610508486@163.com + + +[黄哥python培训_python初学者的第一步](http://www.tudou.com/programs/view/pZvrOt9RlmE/) +[点击黄哥python培训试看视频播放地址](https://github.com/pythonpeixun/article/blob/master/python_shiping.md) + +[黄哥python远程视频培训班](https://github.com/pythonpeixun/article/blob/master/index.md) + diff --git a/python/learn_python_follow_brother_huang_2.md b/python/learn_python_follow_brother_huang_2.md new file mode 100644 index 0000000..0f10ac0 --- /dev/null +++ b/python/learn_python_follow_brother_huang_2.md @@ -0,0 +1,96 @@ +# 跟黄哥学习python第二章 + +## 为啥你看了很多书,很多免费视频,还是不能自己写代码。 + 学习编程不能只学习语法,看一些照着PPT念,夸夸其谈的只讲语法的视频, + 这是你还不能自己写代码的原因。 + 学习编程要学习解决问题的方法,学习算法,学习编程思路。 + +# 何为算法 + + 在数学和计算机科学之中,算法为一个计算的具体步骤,常用于计算、数据处理和自动推理。 + 精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数 。 + 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入开始, 经过一系列有限 而清晰定义的状态最终产生输出 并停止于一个终态。 + 一个状态到另一个状态的转移不一定是确定的。 + 随机化算法在内的一些算法,包含了一些随机输入。 + 形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题, + 并在其后尝试定义有效计算性或者有效方法中成形。 + + --来自维基百科 + + +# 计算思维 + + 计算思维(Computational Thinking)概念的提出是计算机学科发展的自然产物。 + 第一次明确使用这一概念的是美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授。 + 计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为; + 计算思维最根本的内容,即其本质是抽象和自动化。 + + 2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communications of the ACM》杂志上给出, + 并定义的计算思维(Computational Thinking)。 + 周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。 + + 以上是关于计算思维的一个总定义,周教授为了让人们更易于理解,又将它更进一步地定义为: + 通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道问题怎样解决的方法; + 是一种递归思维,是一种并行处理,是一种把代码译成数据又能把数据译成代码, + 是一种多维分析推广的类型检查方法; + 是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是基于关注分离的方法(SoC方法); + 是一种选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法; + 是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法; + 是利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法; + 是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折衷的思维方法。 + +# 何为程序设计 + + 计算机程序设计(英语:Computer programming),或称程序设计(programming),是给出解决特定问题程序的过程,软件开发过程中的重要步骤。 + 程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编码、测试、除错等不同阶段。 + 在计算机技术发展的早期,软件开发主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系统环境的一部分。这种情况下软件开发的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。 + 专业的程序设计人员被称为程序员。某种意义上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿爱达·勒芙蕾丝曾设计了巴贝奇分析机上计算伯努利数的一个程序。她甚至还创建了循环和子程序的概念。由于她在程序设计上的突破性创新,爱达·勒芙蕾丝被称为世界上第一位程序员。 + 任何设计工作都是在各种条件限制和相互矛盾的需求之间寻求一种平衡。这种观点反映在程序设计上,就是硬件存储空间与程序运行时间的限制。 + 空间方面,在计算机技术发展的早期,由于机器资源比较昂贵,如何缩小存储空间往往是设计关心的首要重点;而随着硬件技术的飞速发展,电脑上数据存储媒体的价格降低,空间不再是考虑的第一要点,一些较耗时的运算也渐渐发展出以空间换取时间的模式。 + 时间方面,在早期,如何加强程序效率、缩短程序运行时间是程序员的共同目标;而在硬件性能进步、效率差距缩小,软件规模与复杂度却日益增加的现在,程序的结构、可维护性、重复使用性、弹性等因素更显得重要。在多人合作的程序设计项目里,程序员们会加上各种注解以协助其他参与者理解代码,此行为不但对运行时间没有帮助,还会加重存储空间的负担,但却因能达到较好的沟通并提高代码的可维护性,而成为目前的主流。 + 然而,随着智能手机等携带设备的兴起,运行时间的缩短与存储空间的有效运用再次成为焦点,形成与主机服务器类型应用程序重点不同的考虑方向。 + --来自维基百科 + +# 程序设计中的错误 +1、语法错误 + 没有按照python语法来书写代码,产生的错误,这个就是语法错误。语法错误能被python解析器捕获。 + python的报错提示信息太友好了,能指定报错信息的代码行和具体错误,初学者要慢慢习惯看报错信息提示, + 排除语法错误。 + 下面是一个典型的语法错误,python 3 中print已经改为函数,需要带括号调用。 + ![](syntaxerror.png) + +2、逻辑错误 + 代码运行输出的结果不是预期的结果。例如:计算1+1 应该是输出2,但代码输出结果是3,这个就是逻辑错误。 + +3、运行时错误 + 不报语法错误,但在运行中报错,这种就是运行时错误。 + 例如:写的爬虫代码,没有处理异常,当读到不存在的url时,报运行时错误。 + +# 第一个程序 helloworld.py +运行第一个程序有多种方式 +1、可以在python shell 中直接输入 +\>>> "hello world" +'hello world' +2、可以写成文件helloworld.py +![](helloworld.png) + +3、hello world 代码注意事项 +\#! /usr/bin/python 这行代码制定你的python解析器的位置,对类unix操作系统有效,windows下可以不用这行代码。 +\# coding:utf-8 是指定代码的编码,这个先不用管它,如果是python 2照着写,如果是python 3,可以不需要这行。 +上图第4行代码,print("hello world"),这个是print 在python 3中是函数,python 2中print是 print语句, +可以用括号或不用括号,python 3必须要用括号,这个是初学python 3的朋友,经常会碰见的一个问题。 +"hello world" 是字符串,这个照着写,后面会讲到。 + +这个hello world 程序,建议初学者,学习过程中,print()函数后面少一个括号print("hello world",看看 +报错信息,体验一下python 友好的报错提示。你也可以字符串只输入一个引号,试试,总之要动手。 +只有动手才会找到感觉。 + +如果你感觉黄哥的文章对你有帮助请打赏,支付宝账号:18610508486@163.com + +[黄哥python培训_python初学者的第一步](http://www.tudou.com/programs/view/pZvrOt9RlmE/) +[点击黄哥python培训试看视频播放地址](https://github.com/pythonpeixun/article/blob/master/python_shiping.md) + +[黄哥python远程视频培训班](https://github.com/pythonpeixun/article/blob/master/index.md) + + + \ No newline at end of file diff --git a/python/syntaxerror.png b/python/syntaxerror.png new file mode 100644 index 0000000..0f99071 Binary files /dev/null and b/python/syntaxerror.png differ