标签:应用程序 并且 修改 set int 简介 str 表示 详细教程
偶然看到廖雪峰老师写的《Python教程》被其通俗易懂的语言深深吸引,于是就如饥似渴般沉侵其中。从python简介开始一直到最后完成实战项目差不多半个多月时间,收货颇丰,疑惑也不少,于是希望通过记录的方式梳理一下自己的思路,也算是对自己半个多月学习的总结。以下主要记录自己学习结构,不做详细说明,需要看详细教程可移步(http://www.liaoxuefeng.com)查看原文。
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
Python的缺点:
因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。要开始学习Python编程,首先就得把Python安装到你的电脑里。安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,教程将以最新的Python 3.5版本为基础。
如果你正在使用Mac,系统是OS X 10.8~10.10,那么系统自带的Python版本是2.7。要安装最新的Python 3.5,有两个方法:
方法一:从Python官网下载Python 3.5的安装程序(网速慢的移步国内镜像),双击运行并安装。
方法二:如果安装了Homebrew,直接通过命令brew install python3安装即可。
首先,根据你的Windows版本(64位还是32位)从官网下载Python3.5对应的64位安装程序或32位安装程序(网速慢的移步国内镜像),然后运行下载的EXE安装包。
语言的学习总离不开语法,无论是英语,法语,德语,西班牙语等的学习都有一套自己的使用约定。我把Python的使用约定也总结出自己的一套语法,即Python语法核心五要素:
五要素关系:语法中的基本数据类型通过一定的逻辑处理构成函数/方法,对函数/方法、基本数据类型套用面向对象的程序设计思想就能构成丰富的模块。
Python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样,例如:1,100,-8080,0,等等。
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
字符串是以单引号或者双引号括起来的任意文本,比如‘abc’。如果字符串内部包含’又包含“时可以使用转义字符\来标识,如:‘I \’m \”OK\”!’
一个布尔值只有True、False两种值,在Python中可以直接用True、False表示布尔值(请注意大小写)。
空值是Python里一个特殊的值,用None表示。None不能理解为0
,因为0
是有意义的,而None是一个特殊的空值。
在Python中,类中定义的函数(方法)第一个参数永远是实例变量self(不能忘记写上),并且调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以你仍然可以使用默认参数、可变参数、关键字参数和命名关键字参数。
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。
*args
是可变参数,args接收的是一个tuple;**kw
是关键字参数,kw接收的是一个dict。func(1, 2, 3)
,又可以先组装list或tuple,再通过*args
传入:func(*(1, 2, 3))
;func(a=1, b=2)
,又可以先组装dict,再通过**kw
传入:func(**{‘a‘: 1, ‘b‘: 2})
。*args
和**kw
是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。*
,否则定义的将是位置参数。变量可以指向函数
结论:函数本身也可以赋值给变量,即:变量可以指向函数。
函数名也是变量
传入函数
说到面向对象,就不得不提面向过程。从字面上理解,面向对象针对的是一个事物(比如桌子,椅子,动物等)的研究偏静态,而面向过程则是针对流程或者动作的研究,偏动态。无论是面向过程还是面向对象核心是一种设计思想,指导我们如何进行程序设计。
计算机世界只是我们现实世界的映射,如何实现这种映射就是我们广大程序猿的工作。举个简单例子,“小明骑车去上学”,这是现实世界中小明的一项日常活动,如何把这一日常活动映射到计算机呢?很简单——编程(写代码)。
用面向过程的思想实现上述场景:
# 面向过程设计:小明骑车去上学 def Go2School(name, vehicle): print(‘%s%s去上学!‘% (name, vehicle)) if __name__ == ‘__main__‘: Go2School(‘小明‘,‘骑车‘)
用面向对象思想实现上述场景:
# 面向对象设计:小明骑车去上学 class Student(object): """定义一个学生类""" def __init__(self, name): super(Student, self).__init__() self.__name = name def ByVehicle(self,vehicle): return (self.__name + vehicle) def Todo(self,thing): # 参数self必须写,不写会报错 return thing xiaoMing=Student(‘小明‘) print(‘%s%s!‘ % (xiaoMing.ByVehicle(‘骑车‘),xiaoMing.Todo(‘上学‘)))
现在,该死的产品狗告诉我要实现“小明骑车回家”或者“小明坐车去上学”,那么按照面向过程设计思想,就得再写一个GoHome(name, vehicle)函数;而按照面向对象设计思想,不用做任何更改,直接把传入的参数“骑车”换成“坐车”,把“上学”换成“回家”即可。如果下次产品狗告诉你要实现“小花坐火箭去月球”,你使用面向对象设计的程序根本不用做任何修改,直接使用就行。很明显,面向对象设计提供了更强大的扩展,是一种非常好的设计指导思路。
常用内建模块包括:datetime, collections, base64, struct, hashlib, itertools, contextlib, XML, HTMLParser, Urllib等。在此不做详述。
常用第三方模块有:PIL, Tkinter等。在此不做详述。
标签:应用程序 并且 修改 set int 简介 str 表示 详细教程
原文地址:http://www.cnblogs.com/Holawby/p/7668220.html