Python简单入门

Python 集成环境

目前只是为了实现一些算法,所以我用了 Python(x,y)

  • Python(x,y)是一个基于Python的科学计算软件包,收集了众多的函数库以及文档、教程,并配备了可视化的程序界面和集成开发环境,非常方便。
  • 下载:http://python-xy.github.io/downloads.html
  • 使用:Python(x,y) –> run sPyder

Python 语法注意事项

  • 在 Python 中,所有标识符可以包括英文、数字以及下划线 _,但不能以数字开头。Python 中的标识符是区分大小写的。
  • 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 “from xxx import *” 而导入;以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
  • Python的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。Python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
  • Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠 \ 将一行的语句分为多行显示。语句中包含 []{}() 括号就不需要使用多行连接符。
1
2
3
4
5
total = item_one + \
item_two + \
item_three
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
  • Python 接收单引号 ',双引号 ",三引号 ''' """ 来表示字符串,引号的开始与结束必须的相同类型的。其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。
  • Python 中单行注释采用 # 开头。Python 中多行注释使用三个单引号 ''' 或三个双引号 """
  • 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。记住:空行也是程序代码的一部分。
  • Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割。
  • 缩进相同的一组语句构成一个代码块,我们称之代码组。像 ifwhiledefclass 这样的复合语句,首行以关键字开始,以冒号 : 结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。

Python 变量类型

  • Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。(弱类型语言)
  • Python有五个标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)
  • 数字数据类型用于存储数值。它们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
  • Python支持四种不同的数字类型:int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)
  • 复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示,复数的实部 a 和虚部 b 都是浮点型。
  • 字符串或串 String 是由数字、字母、下划线组成的一串字符。如果你的实要取得一段子串的话,可以用到变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。加号 + 是字符串连接运算符,星号 * 是重复操作。如下实例:
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/python
# -*- coding: UTF-8 -*-

str = 'Hello World!'

print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第五个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
1
2
3
4
5
6
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
  • List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。列表用 [ ] 标识。是 Python 最通用的复合数据类型。列表中的值得分割也可以用到变量 [头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
# -*- coding: UTF-8 -*-

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
1
2
3
4
5
6
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
  • Python元组是另一个数据类型,类似于List(列表)。元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
  • 字典(dictionary)是除列表以外 Python 之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用 { } 标识。字典由索引 key 和它对应的值 value 组成。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/python
# -*- coding: UTF-8 -*-

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
1
2
3
4
5
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

Python数据类型转换

函数 描述
int(x [,base]) 将x转换为一个整数
long(x [,base] ) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

Python 运算符

算术运算符 描述 实例 a = 10; b = 20
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
比较运算符 描述
== 等于 - 比较对象是否相等
!= <> 不等于 - 比较两个对象是否不相等
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。
>= 大于等于 - 返回x是否大于等于y。
<= 小于等于 - 返回x是否小于等于y。
赋值运算符 描述 实例
= 简单的赋值运算符 c = a + ba + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
位运算符 描述 实例 a = 60; b = 13
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
`\ ` 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 `(a \ b)` 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 ( ~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把 >> 左边的运算数的各二进位全部右移若干位,>> 右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
逻辑运算符 描述 实例 a = 10; b = 20
and 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or 布尔”或” - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
成员运算符 描述(包括字符串,列表或元组) 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
身份运算符 描述(用于比较两个对象的存储单元) 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

Python运算符优先级

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
`^ \ ` 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

Python 条件语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if 判断条件:
执行语句……
else
执行语句……

if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……

# 简单的语句组
if ( var == 100 ) : print "变量 var 的值为100"

Python 循环语句

  • 如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
  • continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
  • Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

While

  • 在 python 中,for … else for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
    1
    2
    # 简单语句组
    while (flag): print 'Given flag is really true!'

for

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/python
# -*- coding: UTF-8 -*-

for letter in 'Python': # 第一个实例
print '当前字母 :', letter

fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前字母 :', fruit

print "Good bye!"
1
2
3
4
5
6
7
8
9
10
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前字母 : banana
当前字母 : apple
当前字母 : mango
Good bye!
  • 通过序列索引迭代
1
2
3
4
5
6
7
8
#!/usr/bin/python
# -*- coding: UTF-8 -*-

fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]

print "Good bye!"
1
2
3
4
当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!

Python 函数

1
2
3
4
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]

Python 模块

  • 当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#### support.py
def print_func( par ):
print "Hello : ", par
return


##### hello.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 导入模块
import support

# 现在可以调用模块里包含的函数了
support.print_func("Zara")


#### 输出结果:
Hello : Zara
  • 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
  • From…import 语句:Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。
1
2
3
4
5
6
# 导入模块fib的fibonacci函数
from fib import fibonacci
# 声明不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci单个引入到执行这个声明的模块的全局符号表。

# 把一个模块的所有内容全都导入到当前的命名空间,
from modname import *
文章目录
  1. 1. Python 集成环境
  2. 2. Python 语法注意事项
  3. 3. Python 变量类型
  4. 4. Python数据类型转换
  5. 5. Python 运算符
  6. 6. Python运算符优先级
  7. 7. Python 条件语句
  8. 8. Python 循环语句
    1. 8.1. While
    2. 8.2. for
  9. 9. Python 函数
  10. 10. Python 模块

20160605-python/

本页二维码