Python教程

1. 语法

1.1 Python 保留字段


In [1]:
import keyword
print(keyword.kwlist)


['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.2 注释:python 中可以进行单行注释和多行注释


In [2]:
# 这是一个单行注释

'''
这是一个多行注释
'''

print('Hello world')


Hello world

1.3 缩进:python中强制采用四个空格作为缩进,作用等同于{}


In [3]:
for i in range(3):
    print(i)


0
1
2

In [4]:
for i in range(3):
print(i)


  File "<ipython-input-4-e9b0282dd71e>", line 2
    print(i)
        ^
IndentationError: expected an indented block

1.4 多行语句:多行语句使用反斜杠(\)实现


In [5]:
item_one = 1
item_two = 2
item_three = 3

total = item_one + \
        item_two + \
        item_three
total


Out[5]:
6

1.5 格式化输出


In [6]:
a = 1
b = 'apple'
print('a = %d and b = %s' % (a, b))


a = 1 and b = apple

In [7]:
print('a = {} and b = {}'.format(a, b))


a = 1 and b = apple

In [8]:
print('a = {1} and b = {0}'.format(a, b))


a = apple and b = 1

2. 数据类型

python中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Sets(集合)
  • Dict(字典)

所有变量不需要提前定义,直接赋值即可

2.1 数字&字符串


In [9]:
a = 1
b = 0.2
c = 'Hello'

print('type(a) = {}, a = {}'.format(type(a), a))
print('type(b) = {}, b = {}'.format(type(b), b))
print('type(c) = {}, c = {}'.format(type(c), c))


type(a) = <class 'int'>, a = 1
type(b) = <class 'float'>, b = 0.2
type(c) = <class 'str'>, c = Hello

2.2 元组:元组用来存储一族数据,定义以后不可修改


In [10]:
tupleA = (1, 2, 3, 4)
tupleA = (1, 2, 3, 'apple')
print(tupleA[0])
print(tupleA[0:2])


1
(1, 2)

In [11]:
tupleA[0] = 1


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-11-b5c3396d1c60> in <module>()
----> 1 tupleA[0] = 1

TypeError: 'tuple' object does not support item assignment

2.3 列表:列表用来存储一族数据,可以修改,是一种最常用的结构


In [12]:
listA = [1, 2, 3, 4]
print('listA中第一个元素为:%s' % (listA[0]))
print('listA中前两个元素为:%s' % (listA[0:2]))

listA[0] = 'apple'
listA


listA中第一个元素为:1
listA中前两个元素为:[1, 2]
Out[12]:
['apple', 2, 3, 4]

2.4 集合:用来存储一族互不相同的数据,可以做集合运算

  • |: 并集
  • &: 交集
  • -: 差集

In [13]:
a = {1, 2}
b = {2, 3}

print('a和b的并集为:{}'.format(a | b))
print('a和b的交集为:{}'.format(a & b))
print('a和b的差集为:{}'.format(a - b))


a和b的并集为:{1, 2, 3}
a和b的交集为:{2}
a和b的差集为:{1}

2.5 字典:用于保存键值对,实现"switch"的功能


In [14]:
data = {'name':'马旭辉', 'gender':'男'}
print(data['name'])


马旭辉

3. 扩展包

3.1 安装扩展包

pip install numpy
pip3 install numpy
conda install numpy

3.2 环境管理

由于python中各种扩展包之间存在依赖关系强烈建议使用conda进行环境管理,开发环境可以安装anaconda会自带这些工具

  • 新建一个环境 conda create -n myenv_name python = 3.5
  • 启动一个环境 activate myenv_name(windows);source activate myenv_name(linux)

3.3 导入扩展包


In [15]:
import time
import numpy as np

print(time.asctime())
print(np.array([1, 2, 3, 4]))


Fri Oct 27 21:50:49 2017
[1 2 3 4]

4. 条件控制

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

In [16]:
a = 5

if a>3:
    print('a > 3')
elif a==3:
    print('a == 3')
else:
    print('a < 3')


a > 3

In [17]:
a = 100
if a:
    print('a != 0')
else:
    print('a == 0')


a != 0

5. 循环语句

  • for
  • while

5.1 while

while condition:
    do ...

In [18]:
count = 0

while count<10:
    count += 1
    print(count)


1
2
3
4
5
6
7
8
9
10

5.2 for:用于循环指定次数或遍历列表或元组等


In [19]:
a = ['R', 'Python', 'Java', 'Ruby', 'Javascript']

# 一个非常不好的用法

# for i in range(len(a)):
#     print(a[i])

# 应该这样写

for item in a:
    print(item)
    
# 或许你需要用到索引

for i,item in enumerate(a):
    print('%d : %s' % (i, item))


R
Python
Java
Ruby
Javascript
0 : R
1 : Python
2 : Java
3 : Ruby
4 : Javascript

In [20]:
for i in range(5):
    print(i)


0
1
2
3
4

6. 函数

def 函数名(参数列表):
    函数体

In [21]:
def myadd(a, b):
    result = a + b
    return result

print(myadd(1, 2))


3