由于机器学习、计算机应用数学等课程的需要,最近正在自学Python,希望我的学习笔记可以对你有所帮助。
我所使用的开发环境:Ubuntu 14.04 LTS + Python 2.7.9 + iPython Notebook
一、安装与配置
1、Python下载
可以选择官方的Python下载,有2.7.9和3.4.3两个版本可以选择,官方下载链接:https://www.python.org/downloads/
我选择使用Anaconda Python。它的官方说明是:“Anaconda is a completely free Python distribution (including for commercial use and redistribution). It includes over 195 of the most popular Python packages for science, math, engineering, data analysis.” 简单来讲,他有大量常见的Python包,基本可以满足需求。下载链接:http://www.continuum.io/downloads
2、安装Anaconda
ubuntu系统下下载到是anaconda-2.2.0-Linux-x86_64.sh
执行以下语句安装:
$: bash Anaconda-2.2.0-Linux-x86_64.sh
3、打开iPython Notebook
安装完anaconda后,直接在终端输入:
$: ipython notebook
4、设置远程访问
选择使用iPython Notebook的一个原因是因为其远程访问功能十分强大。只需在本地终端输入:
$: ipython notebook --ip='*' --matplotlib=inline
即可在远程电脑浏览器中输入“ ip地址:端口号 ”访问本地的iPython Notebook。
二、Basics
Python程序包括模块,语句、表达式和对象。模块包含语句,语句包含表达式,表达式建立并处理对象。
1、注释。#后跟的是注释内容
# Note: This is a comment
2、数字。数字只有整数和浮点数两种类型。
3、字符串。一串字母、一串单词等都是string。常用C/C++的人要注意,在Python中不存在char数据类型。
(1)单引号和双引号都可以引字符串,两个是完全相同的;
(2)三引号‘’‘或者"""可引多行字符串,且三引号引用内容中可任意使用单引号和双引号;
(3)string可以创建不可以改变。
(4)format()是一个非常有用的方法。举例:
name = fiona
age = 23
print '{0} is {1} years old'.format(name,age)
输出:
fiona is 23 years old
(5)转义序列的使用与C/C++类似:
‘ \ ’标注在句尾表示下一行与本行相连;‘ \n ’ 表示换行;‘ \\ ’表示' \ '自己。
s = ''' This is a \
long sentence.\n
This is a short one. \\'''
print s
输出:
This is a long sentence.
This is a short one. \
(6)在Python中有一个raw string的概念,在raw string中的转义符不被处理,使用方式是在string前加前缀’r‘
rs = r'This is a raw string\n.'
输出:
This is a raw string\n.
4、标识符命名。Python中标识符命名需要满足以下三点:
(1)标识符必须从字母开始,字母可以是来自ASCII码或者Unicode码的大小写英文字母,也可以是下划线'_';
(2)标识符剩余部分可由字母和数字组成;
(3)区分大小写。myname和myName是不同的。
5、核心数据类型
对象 | 例子 | 备注 |
数字 | 1234,3.1415,999L,3+4j | |
字符串 | 'spam', 'an apple' | 不存在char类型 |
列表 | [1,[2,'three'],4] | 没有固定类型的约束 |
字典 | {'food':'spam','taste':'yum'} | 通过键值存储对象 |
元组 | (1, 'spam', 4, 'U') | 不可变的序列 |
文件 | mayflies = open('egg', 'r') | |
其他类型 | 集合、类型、None、布尔型 |
7、逻辑行和物理行。
简单理解,一个逻辑行就是一个完整的语句,一个物理行就是IDE中的一行。
尽可能将一个完整的逻辑行写在一个逻辑行内,不要使用';'分割两个逻辑行将其同时写在同一行中。
8、缩进。在Python中缩进很重要。
(1)一行开始处的缩进决定了这一行所处的模块。在Python中不存在使用{}括起循环体或者模块,而是全靠缩进决定;
(2)错误的缩进会引起error。
i = 5
# Error below! Notice a single space at the start of the line
print 'Value is ', i
print 'I repeat, the value is ', i
输出:
File "whitespace.py", line 5
print 'Value is ', i
^
IndentationError: unexpected indent
三、基本语法
1、if测试
if :
elif :
else :
2、while循环
while :
else:
break:跳出循环体;continue:跳到循环首行;pass:什么都不做,占位;else:循环正常结束后执行
3、for循环
for in
1、不要忘记‘:’,不要使用‘;’;
2、dir函数可以显示对象可用属性的列表;Python中还有help函数、html报表、标准手册等帮助文档可以参考;
3、缩进很重要。空白行保留也很重要,在交互模式下可表示结束语句;
4、for循环速度通常比while循环速度快。
【参考资料】
1、A Byte of Python
2、《python进阶(一)(二)(三)》博文来自Rachel Zhang