Python
技能目标
理解编程基本原理和思想
掌握python语言的基础语法
能够使用python进行基本的开发工作
熟练使用项目开发IDE:eclipse,PyDev
能够使用Python开发简单入门的游戏和网页
第一节
概述
环境配置
python安装
python解释器
配置Windows环境变量
配置pip和easy install,D:\Python27\Scripts
Java环境变量配置
eclipse下载安装
在help中查找PyDev进行安装
在创建项目时需手动加入已安装好的python解释器:Interpreter
注意:python2.7默认编码格式是ASCII,3.0默认是utf-8
第二节
数据表示,即数据类型
概述
接入一个外接包
requests:用于提供很多,针对网页上的抓取,以及相关的函数
字符串
单引号
双引号
三引号
Format字符串
使用+号连接字符串
变量
命令规则:第一个字符必须是字母或下划线,其余字符可以是字母,数字,下划线,区分大小写
字面常量
常量不会被改变
比如5,6等等固定值
注释
#号键
numerics Type
int(包含boolean
float
complex
打印数据类型的方法type(变量名)
运算符//是向下去整
,sequences
,mappings
,classes
,instances
exceptions
第三节
数据结构
print打印拓展
打印中文字符串
# coding=utf-8
换行符:\n
List
创建list
不要求list中必须有相同元素
打印list
在打印时,需要将list类型转化为str
str(list名)
访问list
list名[]
元祖tuple
创建之后无法被更改,删除和修改都不行
将list中的方括号改为圆括号即可
list中可以使用的函数,tuple都可以使用
list和tuple的对比
tuple中可以包含list
mixed_tuple = (1,2,['a','b'])
Tuple是不可变的list
相同点
定义方式相同
元素都是按次序排列
索引都是从0开始
负数索引与list一样从tuple的尾部开始计数
不同点
tuple没有append或extend方法
tuple没有remove或pop方法
tuple可以一次赋多值
内置函数
len([1,2,3])
打印list长度
【‘Hello’】* 4
对一个list元素进行重组
list[-1]
代表从右边开始数第2位
list[1:]
代表从第二个元素开始的所有元素
3 install【1,2,3】
判断一个元素是否在list中
[1,2,3]+[4,5,6]
拼接
dictionnary
键值对
常用方法
创建
phone_book = {'Tom':123,'Jerry':456,'kim':789}
修改
phone_book["Tom"] = 888
新增
phone_book["Henry"] = 666
删除
del phone_book["kim"]
清空内容
phone_book.clear()
删除dictionnary
del phone_book
特性
一个键必须是唯一的
当有重复时不会报错,会依次取第一个出现的键
键是不变的
不能使用list充当键
字符串
数组
元组tuple
内置函数
比较两个字典元素
cmp(dict1,dict2)
计算字典元素个数,即键的总数
len(dict)
输出字典可打印的字符串表示
str(dict)
返回输入的变量类型,如果变量是字典就返回字典类型
type(variable)
内置方法
删除字典内所有元素
radiansdict.clear()
返回一个字典的浅复制
radiansdict.copy()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.fromkeys()
返回指定键的值,如果值不在字典中返回default值
radiansdict.get(key,default=None)
如果键在字典dict里返回true,否则返回false
radiansdict.has_key(key)
以列表返回可遍历的键值元组数组
radiansdict.items()
以列表返回一个字典所有键
radiansdict.keys()
和get()类似,但如果键没有存在于字典,并将添加键并将值设为default
radiansdict.setdefault(key,default=None)
把字典dict2的键/值对更新到dict里
radiansdict.update(dict2)
以列表返回字典中的所有值
radiansdict.values()
函数Function
def定义函数
def say_hi():
带参数的函数
设置参数的默认值
def repeat_str(str,times = 1):
参数的取值:形参和实参是一一对应的关系
*nums代表元组
**words代表数组
word = "python",another_word = "java"
return:返回函数值
全局变量
global
可以在函数内进行定义,定义后变量的值为之后改变的值
局部变量
第四节
Control Flow控制流
if for语句
for语句
for i in range(1,10):
rang指定一个整数范围,包括第一个值不包括最后一个值
遍历list,tuple,dictionnary
用户输入函数
input
while语句
当某个条件成立的时候会一直运行循环体,直到条件不成立
while guess_flag == False:
break
跳出当前循环,执行循环之后的代码
continue
忽略continue之后的代码,继续从循环头开始
pass
继续执行帕森斯之后的代码,可以理解为什么也不做
第五节
输入输出
接受用户的输入:input()
str_1 = input("Enter a string: ")
str_2 = input("Enter another string: ")
python2.7要求输入字符串格式的数据
输入格式:str(),format
print("str_1 is : " + str(str_1) + "str_2 is :" + str(str_2))
print("str_1 is {1} + str_2 is {0}".format(str_1,str_2))
写出文件
# 创建一个open实体对象,sentences.txt可以为绝对路径,‘w’表示写文件模式
f = open('C:\Users\Administrator\Desktop\sentences.txt','w')
f.write(some_sentences)
f.close()
读入文件
读文件read是默认的
f =open('C:\Users\Administrator\Desktop\sentences.txt')
while True:
line = f.readline()
if len(line) == 0:
break
print(line)
f.close()
第六节
异常处理
语法
try:
#运行别的代码
except :
#如果在try部份引发了'name'异常
except ,:
#如果引发了'name'异常,获得附加的数据
else:
#如果没有异常发生
语法错误(Syntax Errors)
while True:
try:
x = int(input("Please enter a number"))
break
except ValueError:
print("Not valid input,try again.......")
异常(Exceptions)
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
第七节
面向对象处理(Object-Oriented)
类(class)
现实世界中的一些事物的封装,如:学生
属性,如名字、成绩
引用
通过引用对类的属性和方法进行操作
实例化
创建一个类的具体事例对象,如学生张三
代码
class Student:
def __init__(self,name,grade):
self.name = name
self.grade = grade
def introduce(self):
print("hi! I'm "+ self.name)
print("My grade is : "+ str(self.grade))
def improve(self,amount):
self.grade = self.grade + amount
print("My grade add : "+ str(self.grade))
Henry = Student("Henry",99)
Henry.introduce()
Henry.improve(1)
设计代码思路
初始化参数
自我介绍
增加分数
创建对象
对象调用方法
装饰器(decorator)
代码设计思路
定义一个做蛋糕函数
定义一个加蜡烛函数
通过装饰器功能加蜡烛
输出加蜡烛后的结果
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用
@符号是装饰器的语法糖,在定义函数的时候使用,避免再一次赋值操作
代码
def add_candles(cake_func):
def insert_candles():
return cake_func() + "and candles"
return insert_candles
# 注意:return cake_func()加括号表示函数执行完成的结果;return insert_candles表示函数对象
@add_candles
def make_cake():
return "cakes 22"
print(6)
# @add_candles这句话相当于make_cake = add_candles(make_cake)
print(make_cake())
第八节
开发一个小游戏
GUI:Graphical User Interface
创建一个GUI程序
1、导入 Tkinter 模块
2、创建控件
3、指定这个控件的 master, 即这个控件属于哪一个
4、告诉 GM(geometry manager) 有一个控件产生了。
tkinter:GUI library for Python
Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .
代码
from Tkinter import * #导入库
import Tkinter #导入包
import tkMessageBox #导入包
top = Tkinter.Tk()
w = Label(top,text = "abc")
w.pack() # 将小部件放置到主窗口中
# tkMessageBox.showinfo("title", "message")
tkMessageBox.askyesnocancel("问答", "Enter a number")
top.mainloop()# 进入消息循环
第九节
制作一个简单网页
1. 安装python2.7
easy_install windows installer(python 2.7 32bit)
2. 安装lpthw.web
easy_install lpthw.web
3. 创建目录
4. 目录下创建app.py
代码
import web
urls = ('/','index')
app = web.application(urls,globals())
class index:
def GET(self):
greeting = "Hello!"
return greeting
if __name__ == "__main__":
app.run()