第一个Python程序
- 运行方式
- Shell方式
- 文件方式
模块是对象,并且所有的模块都有一个内置属性 name。一个模块的 name 的值取决于您如何应用模块。如果 import 一个模块,那么模块name 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, name 的值将是一个特别缺省”main“。
- IO
- 输入
var = input();
Python 3.x中raw_input() 和input()整合成了input(), 返回类型为str - 输出
print语句
- 输入
代码风格
- 注释 # comment
续行
- 续行符
- 括号内的内容
- 三引号
>>>print('''hello world''') hello world >>> x = '''hello ... work''' >>> x == 'hello work' False >>> y = 'hello work' >>> z = 'hello \ ... work' >>> y == z True
- 缩进——语句块
基础语法
- 变量: 标识对象,引用对象
- 标识符: 合法的变量名称
- 关键字
Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
>>> a=100
>>> b=100.0
>>> a is b
False
>>> a==b
True
>>> id(a)
30696848L
>>> id(b)
48685000L
>>> id(a)==id(b)
False
- 运算符
- 算术运算符
- 位运算符
- 比较运算符
- 逻辑运算符
- 表达式:用运算符连接各种类型数据的式子
赋值:给变量类型和“值”
- 增量赋值
m %= 5
没有 m++ 这样的语句 - 多重赋值
PI = pi = 3.14159 多元赋值
x, y = y, x
等式俩边是元祖多重赋值PI, r = 3.14159, 3的本质由两个步骤构成:
temp = 3.14159, 3 # 元组打包(Tuple packing)
PI, r = temp # 序列解包(Sequence unpacking),多重赋值有时也称为序列解包“
- 增量赋值
- 语句:完整执行一个任务的一行逻辑代码
- 语句包含表达式
数据类型
必须有明确的数据类型,程序才能分配给常量、变量精确 的存储大小,才能进行精确或高效率的运算
- Python标准数据类型
- (长)整型
- (长)整型
Python 3.x中没 有long类型, 整数都是int型
存储大小跟内存有关,不会发生溢出问题
>>> x = 100000000000000000000000000000
>>> x **=2
>>> x
10000000000000000000000000000000000000000000000000000000000
>>> x **=2
>>> x
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 浮点型
没有double
- 复数型
- 布尔型
- 序列类型
- 字符串: 不可变
- 列表:可变
- 元组:不可变
- 映射类型
- 字典
基本运算
- 算术运算符
乘方 * 正负号+ -
乘除 * / 整除//
取余% 加减+ - - 比较运算
3 < 4 < 7 # same as ( 3 < 4 ) and ( 4 < 7 )
True
4 > 3 == 3 # same as ( 4 > 3 ) and ( 3 == 3 )
True
4 < 3 < 5 != 2 < 7
False - 逻辑运算
- 字符运算符
- 原始字符串操作符 (r / R)
- Unicode 字符串操作符( u / U )
函数、模块和包
函数
- 内建函数
绝对值函数abs(x)
类型函数type(x)
四舍五入函数round(x)
>>> round(3.4)
3
>>> round(4.6)
5
>>> round(3.5)
4
>>> round(2.5)
2
四舍六入五成双
- 非内建函数: 非内建函数的使用需要靠模块引入
模块
一个完整的Python文件即是一个模块
- 文件:物理上的组织方式 math.py
- 模块:逻辑上的组织方式 math
包
- 一个有层次的文件目录结构
- 定义了一个由模块和子包组成 的 Python 应用程序执行环境
库
- 库是一组具有相关功 能的模块的集合
RANGE和 XRANGE
- range():Python3返回的是一个range对象,需要用list(range())方式进行调用
range (start, end, step=1)
range (start, end)
range (end) - xrange
Python3 不支持xrange()
循环
- while
while expression:
suite_to_repeat
• 条件表达式
• 当 expression 值 为 True
时执行suite_to_repeat代码块
- for
for iter_var in iterable_object:
suite_to_repeat
可以明确循环的次数
- 遍历一个数据集内的成员
- 在列表解析中使用
- 生成器表达式中使用
iterable_object
- String
- List
- Tuple
- Dictionary
- File
- 循环中的else语句
- 如果循环代码从break处终止,跳出循环
- 正常结束循环,则执行else中代码
函数
内建函数
自定义函数
def addMe2Me(x):
'apply operation + to argument' #DocString,用来说明文本
return (x+x)
print(fn._doc):查看函数文档
参数
- 默认参数
默认参数一般需要放置在参数列表的最后
- 关键字参数
关键字参数是让调用 者通过使用参数名区 分参数。允许改变参 数列表中的参数顺序 - 传递函数
函数可以像参数一样传递给另外一个函数 - lamda函数
lambda x, y : x + y
my_add = lambda x, y : x + y
>>> my_add(3, 5)
8
变量作用域
- 全局变量
- 局部变量
# Filename: scopeofvar.py
def f(x):
print a
a =5
print a + x
a= 3
f(8)
UnboundLocalError: local variable 'a' referenced before assignment
# 在这里 a 为全局变量
- global语句
global语句强调全局变量
# Filename: scopeofvar.py
def f(x):
global a
print a
a= 5
print a + x
a= 3
f(8)
print a
Output: 3
13
5