首页 > Python > Python学习历程-1-20180630

Python学习历程-1-20180630

2019-08-12

Python学习心得及经验分享-20180630

林海峰老师及各位博友大家早上好:

这是我第一次发个人博客,如有不够之处,还请大家见谅。

林老师,很高兴加入您的Python学习班,写博客是您给我们布置的作业,但是对于我来讲,我并不想让他成为一份作业,而是希望把它变成这两样东西:1、学习心得;2、老师网站学习及Python课后经验分享

1.学习心得:

yabovip31.net亚博体育下载链接yabo亚搏首先在这先自我介绍一下,我的英文名字叫Jacky, 是一名从事IT工作10多年的IT,在这10多年中,IT销售1年,5年IT桌面技术支持,6年IT桌面技术支持管理,10多年下来,我已经是这个领域的专家,这个领域教会我最大的技能是桌面技术/沟通/人员管理,虽然我拿到的薪水是这个领域中高的,但是和IT整个行业相比,我觉得还是冰山一角,所以温故而知新则成为了我近几年的目标,谈到”知新“,我和我身边的朋友一直在沟通,通过比对与分析,我从IT几个领域中选择了APP,又从APP语言中选择了Python,为什么?原因很简单,身边的IT老总们都在研究AI,什么离AI最近,什么就占据人才市场,就能make那什么(¥)。同时对开发有了基础的理解,通过自己深入后未来管理开发人员就不问题,我的职位又可以更上一层楼,于是我萌发了学习Python的想法。我是一个开发小白,一句代码都不会打的小白,这对于我来说显然很难,很有挑战。而且面对忙碌的工作和我两岁大的孩子来说,一周仅有的就只有微乎其微的这几个小时。但即便如此我觉得自己必须要学,自己也不小了。所以我决定了学习Python这门开发语言,于是我上网看了几家培训机构,当来到老男孩的时候,我静静的在后面听了林海峰老师5分钟的课程,有培训经验的我,听到林老师讲课后,我立刻判断出老师培训水平不一般。通过和老师5分钟的交流后,我报了老男孩周末2期的班级开始学习Python。

2018年6月24日是开班的第一天,我早早的进入了课堂,由于基础差,所以开始了“搭讪”的工作,但没想到第一个被我“搭讪”的同学,竟然是我UST的老同事“欧阳”同学。他有一些开发经验的,他现在在公司主要做网络及桌面运维,曾经用过Python做过爬虫开发。几番交流后,他帮助我提前安装好了Python的软件/配置了环境变量/PyCharm等工具。同时,小李同学也做在了我的右边。给了我一些帮助,在此,像两位表示感谢。9:30分,终于开课了,校长不辞辛劳的以班主任的身份出现在了我们的面前,花了一个半先给我们讲解了班级里的班规,随后牛逼的人物终于在接近中午时闪亮登场了。他幽默、风趣、是一名Python开发的专家,他就是我们的林海峰老师。林老师花了近10个小时为我们讲述了他的第一节课。作为一个小白被灌了10小时开发内容,对于我来说终于体会到了在医院里那些被洗胃,被灌肠病人那种说不出滋味。说不累是骗人的,所以在此我也希望林老师讲课的速度能慢一些,让我们能好好吃透这门艺术,谢谢!

2、课后经验分享:

今天老师讲解了13个部分,以下是我对今天讲课内容的理解:

一 、编程与编程语言

学会了解编程目的/什么是编程语言/什么是编程?(概念理解与学习)

编程的目的:

计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。???

什么是编程语言?

上面提及的能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质。在编程的世界里,计算机更像是人的奴隶,人类编程的目的就命令奴隶去工作。

什么是编程?

编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来,产出的结果就是包含一堆字符的文件。 强调:程序在未运行前跟普通文件无异,只有程序在运行时,文件内所写的字符才有特定的语法意义。


二 、编程语言分类

语言分类:

1.机器语言(二进制代码:0101),操作对象:硬件

优点:计算机最底层语言,执行速度最快

缺点:最复杂,难读难记,导致开发效率最低,开发时间成本高

?

2.汇编语言(英语单取代二进制代码:print、if、etc),操作对象:硬件

优点:最接近底层语言,执行速度较快

缺点:较复杂,开发效率较低,开发时间成本较高

?

3.高级语言(编译型及解释型)操作对象:用机器语言编程后开发软件

编译型(编译器)

优点:执行速度快,不依赖语言环境运行,开发时间成本高

缺点:跨平台差

解释型(解释器)

优点:一份代码用于多个平台开发,开发时间成本低;

缺点:是执行速度慢,且依赖解释器运行

??

三 、主流编程语言介绍

?世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了。有个权威的语言排名网站,可以看到主流的编程语言是哪些

*2017年5月数据(https://www.tiobe.com/tiobe-index/?)

长期语言排名?

?

主流编程语言:

#C语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

#C++:
C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

#JAVA:
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显着优势和广阔前景。

#PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域 Ruby: Ruby 是开源的,在Web 上免费提供,但需要一个许可证。[4] Ruby 是一种通用的、解释的编程语言。 Ruby 是一种真正的面向对象编程语言。 Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby

#GO:
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 由其擅长并发编程

#Python:
Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。

四 、Python介绍

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。人称“龟叔”,1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。所以从编程语言天赋上来讲,欧美国家的优势是显而易见的,作为国人,我们也需要不断像他们学习。

最新的TIOBE排行榜,Python赶超PHP占据第4, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团、Odoo等。

五 、安装Python解释器

Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,操作步骤简单

打开官网?https://www.python.org/downloads/windows/?下载中心

测试安装是否成功 windows --> 运行 --> 输入cmd ,然后回车,弹出cmd程序,输入python,如果能进入交互环境 ,代表安装成功。?

多版本共存演示 注意:在安装目录下找到python.exe,拷贝一份,命名为python2.exe或python3.exe,一定要保留原版,因为pip工具会调用它。

六 、第一个Python程序

学编程的同学都应该知道,用第一个代码生成的结果一定是”Hello World“,以下就让我们来做一个各类代码语言的比对;

#C++ #include
int main(void) { std::cout<<"Hello world"; }

?

#C #include
int main(void) { printf("\nhello world!"); return 0; }

?

#JAVA
public class HelloWorld{ // 程序的入口 public static void main(String args[]){ // 向控制台输出信息 System.out.println("Hello World!"); } }

?

#PHP
<?php echo "hello world!"; ?>



#Ruby
puts "Hello world."


#GO
package main import "fmt" func main(){ fmt.Printf("Hello World!\n God Bless You!"); }

?

#Python

print(‘hello world’)

执行 Python 脚本的两种方式是什么?
一种是交互式方式[-5,256];(无法永久保存程序,输入一行代码,立刻反馈结果,多用于调试程序)

内存的变量值
另一种是集成开发环境工具(IDE)Python解释器[unknown],文件命名为.py结尾(可将代码永久保存到文件中)

?

七 、变量

?什么是变量(变量的概念)

变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。

?为什么要有变量

程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。 #游戏升级的等级变化即为由变量的产生变化

?如何定义变量(图解)

?变量名(相当于家里门牌号,指向值所在的空间),等号,变量值

示例:name(变量名)=(等号)'Egon'(变量值) sex='male' age=18 level=10

?

变量的定义规范

1. 变量名只能是 字母、数字或下划线的任意组合,该组合中字母为第一个组合项且,变量名的第一个字符不能是数字

2. 关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']?

定义方式:

?驼峰体 AgeOfOldboy = 56 ;NumberOfStudents = 80

?下划线(推荐使用) age_of_oldboy = 56 ;number_of_students = 80

?

定义变量名不好的方式

1. 变量名为中文、拼音

2. 变量名过长

3. 变量名词不达意

?

定义变量包含三个特征:

id:变量值的身份证号码:用来反应变量值在内存中的位置
type:类型
value:反应现实世界状态的

”=“与”is“的区别

”=“比较值(Value)

”is“比较变量在内存中存放位置(id)

强调:

1. id相同,type(类型)和value必定相同(同属于一个内存区域),示例:

2. value相同,type(类型)肯定相同,id可能不同,示例:

?

变量的修改与内存管理(引用计数与垃圾回收机制)

Python解释器自带垃圾回收机制,会在变量值没有任何引用的情况下自动回收垃圾

常量:

常量即指不变的量,如π= 3.141592653..., 或在程序运行过程中不会改变的量 举例,假如:人的年龄会变,那这就是个变量,但人一旦去世了,在这种情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量 AGE_OF_OLDBOY = 56

#ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错?(固定格式)

八 、用户与程序交互

小时候,我和妈妈去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证,成功后,我们再将取款金额输入后告诉系统

如今,银行会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制

#在python3

input:用户输入任何值,都存成字符串类型

#在python2

input:用户输入什么类型,就存成什么类型 raw_input:等于python3的input?

代码注释

随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有些代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。 另外,你以后在工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,所以复杂或自己不容易理解的代码请务必加上注释(注释格式用中文及英文,不要用拼音)

代码注释的类型:

单行注释#(按Ctrl键+?键)

多行注释''' '''(按 三下“?’ ”引号 键生成三对引号,我们称为三引号,并按回车键分割需要多行注释的内容)

文章标签: