第一周幻灯片 "Python 基础篇"
Python 基础篇 -Life Is Short You Need Python
Python 简介
Python是一种开源的 、解析性的,面向对象的编程语言。
Python使用一种优雅的语法,可读性强
Python支持类和多层继承等的面向对象编程技术。
Python可运行在多种计算机平台和操作系统中,如各位unix,windows,MacOS,OS/2等等
使用python
安装python, 请参阅:http://www.python.org
运行python脚本:
交互式运行(在Windows平台下有GUI界面)
执行python脚本文件
在Linux/UNIX环境下运行程序 。
在python头部加一行:#! /usr/local/bin/python
chmod +x myfile.py
./myfile.py (当然也可以直接以python myfile 方式执行)
快速开始
简单语句
print “hello world”
计算器
1+1
格式化字符串
print "The total is %0.2f" %56.3598
注释
# 单行注释
"""多行注释"""
模块
import sys
sys.exit()
Python的数据类型
变量的定义。在python中,变量的类型是由赋给它的数值定义的。
q = 7 #q其为数值型变量
q = "Seven" #q为字符串型变量
基本数据类型:字符串,整数,浮点数,虚数,布尔型。
集合类型:列表(List),元组(Tuple),字典(Dictionary或Hash)
Python的数据类型:列表(List)
List的定义。
aList = [23] 或者 bList = [1,2,3]
List的使用。可以像c语言中数据一样引用list中的元素。
print bList[1]
List常用操作:append, del, + ,*, len(list)
[0] * 5
Python的数据类型:列表(方法)
Table 3.3. 列表对象支持的方法(演示)
append(x) count(x) extend(L)
Index(x) insert(i,x) pop(x)
remove(x) reverse() sort()
Python的数据类型:元组(Tuple)
Tuple的定义。
aTuple = (1, 3, 5)
print aTuple
List的使用。
元组可以用方括号括起下标做索引
元组一旦创建就不能改变
列表大部分操作同样适用于元组
Python的数据类型:字典(Hash)
字典是一个用大括号括起来的键值对,字典元素分为两部份,键(key)和值。字典是python中唯一内置映射数据类型。通过指定的键从字典访问值。
字典的使用:
a = {‘a’:’aa’, ‘b’:’bb’}
a[‘c’]=‘cc’
a.has_key(‘a’)
Python的数据类型:字典(常用方法)
字典的常用方法(演示):
has_key(x) keys() values()
items() clear() copy()
update(x) get(x[,y])
Python 控制语句 if
Python支持三种不同的控制结构:if,for和while,不支持C语言中的switch语句。
(1)if 语句的用法:
if EXPRESSION1:
STATEMENT1
elif EXPRESSION2:
STATEMENT2
else:
STATEMENT3
Python 控制语句 for
for语句的用法:
mylist = "for statement"
for word in mylist:
print word
else:
print "End list"
Python 控制语句 while
while语句的用法:
a = 0
while a > 5:
a = a + 1
print a
else:
print "a's value is five"
Python 循环中的控制语句
循环中的控制语句
break: 终止当前循环
continue: 终止本次循环
pass: 什么事都不错
Python 函数
函数定义:
def function_name(arg1,arg2[,...]):
statement
[return value]
函数名:
函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号;
函数名是区分大小写的。
函数名不能是保留字。
Python 函数
作用域:Python使用名称空间的概念存储对象,这个名称空间就是对象作用的区域, 不同对象存在于不同的作用域。下面是不同对象的作用域规则:
每个模块都有自已的全局作用域。
函数定义的对象属局部作用域,只在函数内有效,不会影响全局作用域中的对象。
赋值对象属局部作用域,除非使用global关键字进行声明。
LGB规则
大多数名字引用在三个作用域中查找:先局部(Local),次之全局(Global),再次之内置(Build-in)。
Python 函数
函数的参数的分类:
默认参数:def function(ARG=VALUE)
元组参数:def function(*ARG)
字典参数:def function(**ARG)
一些规则:
默认值必须在非默认参数之后;
在单个函数定义中,只能使用一个tuple参数(*ARG)和一个字典参数(**ARG)。
tuple参数必须在连接参数和默认参数之后。
字典参数必须在最后定义。
Python 模块
模块:模块可把一个复杂的程序按功能分开,分别存放到不同文件中,使程序更容易维护和管理。在Python中的模块是一个以.py结尾的Python代码文件。可通过import命令输入,如:
import sys(和c中include语句似乎相似)
该import语句共执行三步操作:
创建新的名称空间(namespace),该名称空间中拥有输入模块中定义的所有对象;
执行模块中的代码;
创建该名称空间的变量名。
Python 模块
import的使用:
import ftplib as ftp
from ftplib import FTP
Python脚本与模块
python脚本和模块都是一个以.py结束的文件,那程序是如何判断一个.py文件是作为脚本还是模块呢?关键是一个名为__name__的变量,如果它的值是__main__,则是作为脚本直接运行,否则是做为模块运行的。
if __name__ == “__main__”:
main()
Python 包(package)
我们可以把几个功能相近的模块组成一个Python包,存放到一个目录结构中,通过输入包的路径来调用对对象。
例子:
/WebDesign
__init__.py
design.py
draw.py
其中__init__.py是包的初始化文件,可以为空,但是必不可少的。可以以下列方式引用design模块:
import WebDesign.design
Python 类
一个简单的例子:
#!/usr/bin/python
#-*- encoding:utf-8 -*-
class test: #定义一个test类
desc = "这是一个测试类。" #在类中定义一个属性desc
def __init__(self,name1): #对象构造函数,初始化类
self.name1 = name1
def show(self,name2): #在类中定义一个方法show()
print "hello world"
print 'name1:',self.name1
print 'name2:',name2
obj = test(‘这是传递给name1的值’) #生成test类的实例对象
print obj.desc #调用类中的desc属性
obj.show('这是传递给name2的值') #调用类中的show()方法