Python¶
Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言,如今已成为绝大部分数据分析师的首选数据分析语言。其设计的核心理念是代码的易读性,以及允许编程者通过若干行代码轻松表达想法创意。
版本¶
本教程所有代码采用 Python3.6
进行编写,可通过!python --version命令查看版本。
In [1]:
!python --version
Python 3.6.5 :: Anaconda, Inc.
语法¶
缩进¶
锁紧是表达代码间包含和层次关系的唯一手段,在 Python 中通过 4 个空格或 1 个 TAB 键来表示。
注释¶
注释是不被程序执行的辅助性说明信息。在 Python
中单注释分为单行和多行,单行注释以#开头,其后内容为注释;多行注释以'''开头和结尾,中间内容为注释。
In [2]:
# 这是一个单行注释
'''
这是一个多行注释
这是一个多行注释
'''
print('注释')
注释
变量¶
变量是用来保存和表示数据的占位符号。在 Python
中通过等号=用向变量赋值或修改值。
变量名是大小写字母、数字、下划线_和汉字等字符的组合,对大小写敏感,首字母不能是数字,也不能与保留字相同。
In [3]:
# 向变量x赋值为1
x = 1
print('x =',x)
# 修改变量x的赋值为2
x = 2
print('x =',x)
x = 1
x = 2
保留字¶
保留字是被编程语言内部定义并保留使用的标识符。在 Python 中有 33 个保留字,保留字是编程语言的基本单词,对大小写敏感。
| and | as | assert | break | class | continue |
| def | elif | else | except | finally | for |
| from | if | import | in | is | lambda |
| not | or | pass | raise | return | try |
| while | with | yield | del | global | nonlocal |
| True | False | None |
操作符¶
操作符是完成运算的一种符号体系
运算操作符¶
| 操作符 | 描述 |
|---|---|
| x + y | 加法运算 |
| x - y | 减法运算 |
| x * y | 乘法运算 |
| x / y | 除法运算 |
| x // y | 整除运算 |
| x % y | 取模(余数)运算 |
|
负数运算 |
| x ** y | 幂运算,y 为小数时为开方运算 |
赋值操作符¶
逻辑运算符¶
| 运算符 | 描述 |
|---|---|
| and | 布尔”与” |
| or | 布尔”或” |
| not | 布尔”非” |
成员运算符¶
| 运算符 | 描述 |
|---|---|
| in | 变量在指定序列中找到值返回 True,否则返回 False |
| not in | 变量在指定的序列中没有找到值返回 True,否则返回 False |
数据类型¶
数据类型是供计算机程序理解的数据形式,在 Python 中数据类型被分为基本数据类型和复合数据类型。
- 基本数据类型:也称为数值,包括整数、浮点数、复数、布尔数值和空值。
- 复合数据类型:也称为序列,包括字符串、列表、元组、字典和集合。
基本数据类型¶
整数¶
Python 中的整数与数学中整数的概念一致,可正可负,没有取值范围限制,在 Python 中有 4 种表达形式。
| 表达形式 | 格式 |
|---|---|
| 十进制 | -100,0,100 |
| 二进制 | 以0b或0B开头:0b01,-0B01 |
| 八进制 | 以0o或0O开头:0o17,-0O17 |
| 十六进制 | 以0x或0X开头:0x0f, -0X0f |
整数虽然有 4 种表达形式,但输出格式都是十进制。
In [4]:
print("二进制数 0b01 的输出格式是:",0b01)
print("八进制数 0o17 的输出格式是:",0o17)
print("十六进制数 0x0f 的输出格式是:",0x0f)
二进制数 0b01 的输出格式是: 1
八进制数 0o17 的输出格式是: 15
十六进制数 0x0f 的输出格式是: 15
浮点数¶
Python 中的浮点数与数学中实数的概念一致,指带有小数点及小数的数字。浮点数取值范围和小数精度都存在限制,但常规计算可忽略。取值范围数量级约\(-10^{308}\)至\(10^{308}\),精度数量级\(10^{16}\)。
在 Python 中浮点数有两种表达形式:一种用小数点+数字形式表示;一种用科学计数法表示,使用字母e或E作为幂的符号,以10为基数,\(<a>e<b>\)表示\(a*10^b\)
In [5]:
print('浮点数 110e-3 值为:',110e-3)
print('浮点数 5.2E2 值为:',5.2E2)
浮点数 110e-3 值为: 0.11
浮点数 5.2E2 值为: 520.0
在 Python 中浮点数间运算存在不确定尾数,但这并不是 Bug ,由于计算机有二进制表示小数,只能无限接近小数值,但不会完全相同。
In [6]:
0.1 + 0.2
Out[6]:
0.30000000000000004
方法:
round(x, b):对 x 四舍五入,d 是小数截取位数。
In [7]:
round(0.1 + 0.2, 1)
Out[7]:
0.3
复数¶
Python 中的复数与数学中复数的概念一致,记 a+b*j 为复数,其中 a 是实部,b 是虚部。
In [8]:
x = 1 + 2j
print('复数 1 + 2j 的实部是:', x.real)
print('复数 1 + 2j 的虚部是:', x.imag)
复数 1 + 2j 的实部是: 1.0
复数 1 + 2j 的虚部是: 2.0
布尔数值¶
Python 中的布尔数值与数学中布尔代数的概念一致,分为 True 和 False。利用布尔数值可进行逻辑运算。
In [9]:
x = True
y = False
# 与运算
print('x and y =',x and y)
print('x&y = ',x&y)
# 或运算
print('x or y =',x or y)
print('x|y = ',x|y)
# 异或运算
print('x ^ y =',x ^ y)
# 非运算
print('not x =',not x)
x and y = False
x&y = False
x or y = True
x|y = True
x ^ y = True
not x = False