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()
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...
- Python 面向对象编程基础
Python 面向对象编程基础 虽然Pthon是解释性语言,但是Pthon可以进行面向对象开发,小到 脚本程序,大到3D游戏,Python都可以做到. 一类: 语法: class 类名: 类属性,方法 ...
- Linux基础与Linux下C语言编程基础
Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...
- LINUX下C语言编程基础
实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...
- 9 本免费的 Python 语言编程书籍(转载)
9 本免费的 Python 语言编程书籍 原文地址:http://linuxtoy.org/archives/9-free-python-books.html 2010-03-03 Toy Poste ...
- Python网络编程基础pdf
Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...
- 【转】Linux基础与Linux下C语言编程基础
原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...
- 好书推荐---Python网络编程基础
Python网络编程基础详细的介绍了网络编程的相关知识,结合python,看起来觉得很顺畅!!!
- Python网络编程基础|百度网盘免费下载|零基础入门学习资料
百度网盘免费下载:Python网络编程基础|零基础学习资料 提取码:k7a1 目录: 第1部分 底层网络 第1章 客户/服务器网络介绍 第2章 网络客户端 第3章 网络服务器 第4章 域名系统 第5章 ...
随机推荐
- linux 之 mysql数据库备份与恢复
备份 mysqldump -uroot -p123 --databases test > ~/test.sql --databases 指定数据库 恢复 mysql -uroot -p123 & ...
- Linux sudo 找不到命令
普通用户执行需要root权限的命令,提示"找不到命令",但是root用户执行该命令不报错,可能是由于该命令未处在sudo搜索的路径. 本文以sudo easy_install 为例 ...
- 整理spring + mysql + redis + 测试 的配置格式 和源码
经过多次整理,最终以这样的文件格式配置 目前配好的基本模板: 1 <?xml version="1.0" encoding="UTF-8"?> 2 ...
- 钓鱼攻击之远程加载恶意Word模版文件上线CS
0x00 前言 利用Word文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意word文档就可以通过向远程服务器请求恶意模板并执行恶意模板上的恶意代码.这里 ...
- Centos下安装Scala(1)
1.登录centos至root角色下 配置环境变量 2.执行下述命令 scala -version 出现结果如下 输入 'y' 3.开始安装 4.安装完成界面 5.启动成功以及测试程序
- 【笔记】论文阅读:《Gorilla: 一个快速, 可扩展的, 内存式时序数据库》
英文:Gorilla: A fast, scalable, in-memory time series database 中文:Gorilla: 一个快速, 可扩展的, 内存式时序数据库
- javascript 获取<td>标签内的值。
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. 通过可编程的对象模型,JavaScript 获得了足够的能力来 ...
- 使用 Swoole 加速你的 CMS 系统
项目介绍 MyCms是一款基于Laravel开发的开源免费的自媒体博客CMS系统,适用于个人网站及企业网站开发使用,助力个人开发者知识技术变现 Swoole介绍 Swoole: PHP的异步.并行.高 ...
- C++11多线程之future(一)
// ConsoleApplication5.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include<random> #in ...
- Telegra.ph | 简洁的文章发布平台
https://telegra.ph 自由 Telegraph 并不强调内容管理方这一概念,真正做到了「人人都是媒体」.通过 Telegraph 发布的文章,理论上来说不会存在删除的危险,并且由于会产 ...