最近公司BOSS抽风,要公司的市场/产品什么的学Python,特记录一篇Python基础内容,供有一点基础的同事们快速入门。
Python和Pythonic
Python是一门计算机语言(这不是废话么),简单易学,上手容易,深入有一定困难。为了逼格,还是给你们堆一些名词吧:动态语言、解释型、网络爬虫、数据处理、机器学习、Web开发、等等等等。Python目前分为2.x和3.x两个版本,与其它语言不一样的是,它的这两个版本是不兼容的,虽然会其中一个就容易上手另一个,但是鉴于公司目前几乎全是用Python2.7,建议同事们也可以从2.x版本开始,如果没有历史遗留问题,建议初学者直接上手Python3。
Pythonic指的是按照Python推荐的规范,干净美观、可读性强的逼格满满到代码风格,比如多使用Python内置的数据结构,不要重复造轮子。简单来讲,你可以在Python解释环境里输入import this
了解一下Python之禅。Python的代码风格上,如果团队有自己的风格则按照自己的风格,否则,比较推荐的是PEP8或Google Code Style。关于PEP8规范,请点击这里。
开发环境搭建
在常见的*inx系统上,默认都安装了Python解释器,你可以直接在终端输入python
进入默认的环境。在Windows系统上,你需要去Python官网下载Python的安装包,安装之后可以在“所有程序”中找到“IDLE”,也可以在cmd中通过输入python
进入解释器环境。
对于Python常用的IDE(集成开发环境),推荐使用PyCharm,如果土豪请购买正版,如果不是土豪又有情怀,请使用社区版(免费),如果既不土豪又没有情怀,就用盗版吧(不推荐)。
Python之所以非常流行,离不开它千千万万的第三方库,你可以将第三方库理解为我写了一个牛X的功能,发布出来之后你可以直接使用。安装第三方库的话,推荐使用pip,在Ubuntu上,你可以通过apt-get install python-pip
安装。
hello, world.
常见情况下,Python代码可以通过两种形式运行:一是直接在刚才所讲的解释环境下(输入python
命令后进入的地方)一行一行的执行,或者也可以保存到一个.py
的文件中,在终端输入python 文件名
来执行。比如新建一个test.py
,文件内容为print 'hello, world.'
,在终端输入python test.py
,即可输出hello, world.
。
注意⚠️:Python中没有使用花括号{}
来表示代码间的层级关系而是使用缩进,这样的好处是在语法层面上限制了不好的代码风格,但是初学者容易混淆。
变量、基础数据类型
变量
Python中变量不需要声明,你可以通过直接赋值的方式使用变量:
1 2 3 4 |
a = 1 b = True c = 1.0 a = 3+2j |
在Python中,你可以在给一个变量赋值为一种类型之后重新为其赋值为新的类型(如上面代码第1、4行)。
基础数据类型
Python中的数字有:整型、长整型、浮点型、布尔型、复数。
- 整形:
int
,常见的整数(正数/负数/0),通过sys.maxint
即可查看当前平台上最大的整型的值。 - 长整型:
long
,比整型最大的值还大或者比整型最小的值还小的整数。注意:Python中长整型没有大小限制,你的内存有多大,它就能表示多大。 - 浮点型:
float
,即小数。 - 布尔型:
bool
,常见形式为True
,False
,表示逻辑真和逻辑假,其实背后的实现是数字1和0. - 复数:
complex
,Python是为数不多语法层面上支持复数的语言,表现为形如1+2j
的形式。可以直接支持两个复数的运算。
Python中的所有数据类型都是对象。你可以通过type()
函数查看一个变量的类型。
Python中字符串有4种表现形式:单引号、双引号、三引号:
1 2 3 4 5 |
string1 = 'this is a str' string2 = "this is a str" string3 = '''this is a str 这里还是string3的范围''' string4 = """this is a str""" |
其中,第3/4种字符串表现形式都是三引号引起来的。如果在字符串的引号之前加上一个u
,则表示这是一个unicode字符串,如果加上r
,则表示这是一个原始字符串 ,这两种类型,对于初学者暂不讨论。值得注意的是,Python中没有C-Like语言中的字符类型。
运算符、控制语句
运算符
Python中没有类似于C/C++/Java的自增自减运算符,因为在Python中,数字是一种不可变类型(immutable),对数字的操作都会产生新的对象而不是修改原来的对象。但是i = i + 1
一样可以写为i += 1
。
注意:Python2.5以后的除法为地板除,即5/2=2
而不是5/2 = 2.5
。
Python常见的逻辑运算符为:
- !=, <>:不等于,表示两边的值不相等,推荐使用前一种。
1 != 2
。 - ==:等于,表示两边的值相等。
2 == 2
。 - and:逻辑与,如果两边的值都为True则整个值为True,反之为False。
1==1 and 2==2
。 - or:逻辑或,如果两边有一个值True则整个值为True,反之为False。
1==2 or 2==2
。 - not:逻辑非,如果值为True,则结果为False。
not 2==1
。
控制语句
条件语句:
Python中的条件语句只有if-elif-else,没有switch-case,但是有经验的开发者通常使用map这一结构来达到比switch-case更加优雅,更加Pythonic的实现,这个后续再说。
1 2 3 4 5 6 |
if 条件1: 语句块1 elif 条件2: 语句块2 else: 语句块3 |
elif
类似于其它语言中的else if
。
循环语句:
Python中有两种方式表达循环语句:
while 循环:
1 2 |
while 条件: 语句块 |
for循环:
1 2 |
for 变量 in 集合: 语句块 |
值得注意的是Python中没有C-Like语言里的for(int i=0; i<10; i++)的语法,不过可以使用
xrange
或者range
函数实现同样的效果。前一个函数返回一个生成器,后一个函数返回list,一般推荐使用前一个,至于这两个函数的异同,后面有时间细聊。
集合
Python中常见的集合类型有:list,tuple,set,dict。
list
list表达的是一列数据的集合,列表中的元素可以增加、删除、查找等操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
In [1]: l = ['this', 'is', 'a', 'list'] # 初始化一个list In [2]: type(l) Out[2]: list In [3]: l.index('is') # 查找元素 Out[3]: 1 In [4]: l.append('new item') # 新增元素 In [5]: l Out[5]: ['this', 'is', 'a', 'list', 'new item'] In [6]: l.reverse() # 反转列表 In [7]: l Out[7]: ['new item', 'list', 'a', 'is', 'this'] In [8]: l.remove('is') # 删除元素 8]: l.remove('is') # 删除元素 ؍是废话么),简单易学,上手容易,深入有一定困难。为了逼格,还是给你们堆一些名词吧:动态语言、解释型、网络爬虫、数据处理、机器学习、Web开发、等等等等。Python目前分为2.x和3.x两个版本,与其它语言不一样的是,它的这两个版本是不兼容的,虽然会其中一个就容易上手另一个,但是鉴于公司目前几乎全是用Python2.7,建议同事们也可以从2.x版本开始,如果没有历史遗留问题,建议初学者直接上手Python3。
Pythonic指的是按照Python推荐的规范,干净美观、可读性强的逼格满满到代码风格,比如多使用Python内置的数据结构,不要重复造轮子。简单来讲,你可以在Python解释环境里输入 开发环境搭建在常见的*inx系统上,默认都安装了Python解释器,你可以直接在终端输入 对于Python常用的IDE(集成开发环境),推荐使用PyCharm,如果土豪请购买正版,如果不是土豪又有情怀,请使用社区版(免费),如果既不土豪又没有情怀,就用盗版吧(不推荐)。 Python之所以非常流行,离不开它千千万万的第三方库,你可以将第三方库理解为我写了一个牛X的功能,发布出来之后你可以直接使用。安装第三方库的话,推荐使用pip,在Ubuntu上,你可以通过 hello, world.常见情况下,Python代码可以通过两种形式运行:一是直接在刚才所讲的解释环境下(输入 注意⚠️:Python中没有使用花括号 变量、基础数据类型变量Python中变量不需要声明,你可以通过直接赋值的方式使用变量:
在Python中,你可以在给一个变量赋值为一种类型之后重新为其赋值为新的类型(如上面代码第1、4行)。 基础数据类型Python中的数字有:整型、长整型、浮点型、布尔型、复数。
Python中的所有数据类型都是对象。你可以通过
其中,第3/4种字符串表现形式都是三引号引起来的。如果在字符串的引号之前加上一个 运算符、控制语句运算符Python中没有类似于C/C++/Java的自增自减运算符,因为在Python中,数字是一种不可变类型(immutable),对数字的操作都会产生新的对象而不是修改原来的对象。但是
控制语句条件语句:
循环语句: while 循环:
for循环:
值得注意的是Python中没有C-Like语言里的for(int i=0; i<10; i++) 集合Python中常见的集合类型有:list,tuple,set,dict。 listlist表达的是一列数据的集合,列表中的元素可以增加、删除、查找等操作:
|