上海交通大学 python程序设计课程PPT Ch8-1

合集下载

《Python语言程序设计课件》

《Python语言程序设计课件》
分布式计算
使用Dask、Vaex等库实现分布式计 算,处理超大规模数据集。
数据存储与访问
使用HDF5、Parquet等格式存储大 规模数据,实现高效读写。
04
06
Python在人工智能领域的应用
机器学习算法实现
线性回归、逻辑回归等预 测模型
K-means、层次聚类等无 监督学习算法
决策树、随机森林等分类 模型
预测分析
根据建立的模型对数据进行预测,如时间序列预测、 分类预测等。
模型评估与优化
通过交叉验证、网格搜索等方法评估模型性能并进行 优化。
大数据处理与分布式计算
01
大数据处理
利用NumPy、Pandas等库处理大规 模数据集,提高计算效率。
并行计算
应用多线程、多进程等技术加速数 据处理过程。
03
02
Web开发
Python拥有众多优 秀的Web框架,如 Django、Flask等, 适用于Web应用开 发
数据科学
Python在数据分析、 数据挖掘、机器学习 等领域得到广泛应用
自动化运维
Python可以编写自 动化脚本,实现系统 管理和自动化运维
网络爬虫
Python可以编写网 络爬虫程序,用于数 据采集和信息提取
支持向量机、神经网络等 有监督学习算法
深度学习框架TensorFlow介绍
01
TensorFlow基 本概念及架构
02
神经网络模型 构建与训练
数据预处理与 特征工程
03
04
模型评估与优 化方法
自然语言处理技术应用
分词、词性标注等基础任务
词向量表示学习技术
文本分类、情感分析等高级 任务

Python语言程序设计ppt课件

Python语言程序设计ppt课件

•简单数据类型变量在用global保留字声明后,作为全局变量; •对于组合数据类型的全局变量,如果在函数内部没有被真实创
建的同名变量,则函数内部可直接使用并修改全局变量的值;
•如果函数内部真实创建了组合数据类型变量,无论是否有同名
全局变量,函数仅对局部变量进行操作。
ppt精选
26
lambda函数
Python的有33个保留字,其中一个是lambda,该保留字用于定义 一种特殊的函数——匿名函数,又称lambda函数。 匿名函数并非没有名字,而是将函数名作为函数结果返回,如下:
ppt精选
31
datetime库解析
使用datetime.now()获得当前日期和时间对象,使用 方法如下:
datetime.now()
作用:返回一个datetime类型,表示当前的日期和时 间,精确到微秒。
>>> from datetime import datetime
>>> today = datetime.now() >>> today datetime.datetime(2016, 9, 20, 10, 29, 43, 928549)
>>>n = 1 #n是全局变量
>>>def func(a, b):
global n
n=b
#将局部变量b赋值给全局变量n
return a*b
>>>s = func("knock~", 2) >>>print(s, n) #测试一下n值是否改变
knock~knock~ 2
ppt精选
23

Python程序设计导论PPT课件

Python程序设计导论PPT课件

1.3 Python语言版本和开发环境
• 2个主要版本:Python 2和Python 3 • Python 3在设计时,没有考虑向下兼容
• Python语言的实现:Python解释器 • 常用的Python实现:
• Cpython、Jython、IronPython、PyPy • Python语言的集成开发环境
1.2 Python语言概述
• 英音/ˈpaɪθən/,美音/ˈpaɪθɑːn/ • 是一种解释型、面向对象的编程语言 • 是一个开源语言,拥有大量的库,可以高效地开发各种应用程序 • Python语言的特点
• 简单、高级、面向对象、可扩展性、免费开源、可移植性、丰富的库、可嵌 入性
• Python语言的应用范围 • 操作系统管理、科学计算、Web应用、图形用户界面(GUI)开发、其他 (游戏开发等)
• 【例1.2】安装Python应用程序 • (1)双击下载的Windows格式安装文件python-3.10.1-amd64.exe • (2)在定制Python对话框窗口中,注意需要选中“Add python 3.10 to PATH”复选框 • (3)单击Install Now超链接,安装Python程序
按范式对编程语言分类
• 面向过程的编程语言 • FORTRAN、COBOL、Basic、Ada、Pascal、C
• 面向对象的编程语言 • Java、C#、C++、Smalltalk、Visual Basic
• 函数式编程语言 • Lisp、Scheme、Haskell、F#
• 逻辑式编程语言:Prolog • Python程序设计语言属于多范式编程语言
• 使用文本编辑器编写一个程序后,将文件保存到磁盘上,包含程序代码 的文件称之为源文件(source file)

上海交通大学 python程序设计课程 Ch8-1

上海交通大学 python程序设计课程 Ch8-1
25
Pack布局管理器
• Pack以紧凑方式将构件在窗口中“打包”
– 设想窗口由弹性材料制成,放入构件时先把窗 口空间撑大到足够容纳该构件,然后将构件紧 贴内部的某条边(缺省是顶边)放入.
– 缺省情形下放入同一个窗口的所有构件是沿 垂直方向自顶向下一个紧贴一个进行布置的
可以通过pack方法的side选项设置成沿水平方向 打包.
24
布局
• 布局:界面元素在界面中的位置安排. • 布局管理器:程序员不需要了解底层显示
系统的细节, 在较高层次上考虑界面布局 • 构件都是先创建,再布局:
w = Constructor(parent,...) w.GeometryManager(...)
• Tkinter提供三种布局管理器:Pack,Grid 和Place
19
常用构件:文本编辑区
• 类Entry:单行文本编辑
e = Entry(窗口,选项设置) – textvariable:控制变量,是StringVar类的实例
• 例如
>>> v = StringVar() >>> e = Entry(root,textvariable = v) >>> e.pack() >>> print v.get() hello >>> v.set('new text')
4
事件驱动
• GUI程序的执行流程取决于与用户的实 时交互
– 例如:Word程序的执行
• 事件驱动编程
– 普通程序的执行:启动——做事——终止 – 事件驱动程序的执行:启动——事件循环
等待事件发生,然后处理 程序的终止也是由特定事件(如关闭窗口事件)引

2024年Python语言程序设计课件

2024年Python语言程序设计课件

Python语言程序设计课件语言程序设计课件一、引言是一种面向对象的解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。

具有丰富和强大的库,它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

在设计上坚持了清晰划一的风格,这使得成为一门易读、易维护,并且被大量用户所欢迎的编程语言。

二、语言特点1.易于学习:有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

2.易于阅读:代码定义的更清晰。

3.易于维护:的成功在于它的是相当容易维护的。

4.一个广泛的标准库:的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动模式很方便调试。

6.可移植:基于其开放的特性,已经被移植(也就是使其工作)到许多平台。

7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的程序中调用。

8.数据库:提供所有主要的商业数据库的接口。

9.GUI编程:支持GUI可以创建和移植到许多系统调用。

10.可嵌入:你可以将嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

三、语言程序设计基础1.变量与数据类型变量是计算机语言中能存储计算结果或能表示值抽象概念。

变量可以通过变量名访问。

在中,变量就是代表一个对象的名字和地质。

数据类型是解释器根据变量的值来决定如何解释和存储变量的值的。

2.运算符与表达式算术运算符:用于基本的算术运算,如加法、减法、乘法、除法等。

比较(关系)运算符:用于比较两个变量的值,如等于、不等于、大于、小于等。

赋值运算符:用于将一个值赋给变量。

逻辑运算符:用于根据表达式的值返回True或False。

上海交通大学python程序设计课程PPT教案

上海交通大学python程序设计课程PPT教案
xpos = xpos + time * xvel yvel1 = yvel - 9.8 * time ypos = ypos + time * (yvel + yvel1)/2.0 yvel = yvel1 print "\nDistance traveled: %0.1f meters." % (xpos) main()
22
实例创建(2)
创建时对实例进行初始化
用构造器创建实例时,系统会自动调用__init__ 方法
通常在此方法中执行一些初始化操作 __init__所需的参数由构造器提供.
例如:
>>> from person import Person >>> p1 = Person("Lucy",2005)
假设一个问题涉及数据X和Y,对X要进行的 操作为f(),g(),对Y的操作为h()
面向过程设计和面向对象得到的程序分别形如
X = ... Y = ... f(X) g(X) h(Y)
XY f() h() g()
请求X执行f() 请求X执行g() 请求Y执行h()
11
第10页/共68页
复杂数据的表示
第6页/共68页
7Leabharlann 数据与操作:面向对象观点数据与操作不可分离
数据类型概念已经提示我们:特定数据值和特定 操作是不可分割的两件事情
Q:请问x+y是什么意思? A:+对不同类型的x,y值有不同意义.
既然如此,何不将特定数据值
与特定操作捆绑在一起,形成一
种新型"数据"?
由此产生了对象概第念7页/共68页
这个版本是"流水帐式的",没有"章法结构". 程序不长,倒有10个变量,为理解程序需要跟踪这10个数据的变化.

Python程序设计ppt课件

Python程序设计ppt课件

Python程序设计ppt课件•Python基础•控制流语句•函数与模块•面向对象编程目•文件操作与数据处理•常用库和工具介绍录01CATALOGUE Python基础1 2 3介绍Python的创始人、发展历程以及应用领域。

Python的起源与发展解释Python语言简洁、易读、可扩展等特点,以及其在数据分析、人工智能等领域的应用优势。

Python的特点与优势说明Python 2与Python 3的主要区别,以及为何推荐使用Python 3。

Python的版本与兼容性Python简介Python安装与配置安装Python解释器01介绍如何在不同操作系统上安装Python解释器,包括Windows、macOS和Linux。

配置Python开发环境02讲解如何配置Python的开发环境,如安装IDE或文本编辑器,并设置Python解释器路径。

解决安装与配置问题03提供一些常见问题的解决方案,如安装失败、环境变量配置错误等。

强调Python 中缩进的重要性,以及遵循PEP 8编码规范的意义。

编码规范与缩进解释Python 中变量的概念,以及如何为变量赋值。

变量与赋值介绍Python 中的基本数据类型,如整数、浮点数、字符串等,以及数据类型之间的转换方法。

数据类型与转换列举Python 中的运算符类型,包括算术运算符、比较运算符、逻辑运算符等,并给出相应的表达式示例。

运算符与表达式Python 基本语法详细介绍Python 中的整数类型和浮点数类型,包括它们的表示范围、精度以及相应的数学运算。

数字类型阐述Python 中字符串的表示方法、常用操作如连接、切片、查找、替换等,以及字符串的编码与解码。

字符串类型解释Python 中列表和元组的定义、特点和使用方法,包括元素的添加、删除、修改和遍历等操作。

列表与元组类型介绍Python 中字典和集合的基本概念、特点和使用方法,如键值对的存储与访问、集合的交并差集运算等。

Python培训ppt课件

Python培训ppt课件

使用pip安装 BeautifulSoup库,然后在 代码中导入bs4模块。
使用BeautifulSoup对象解 析HTML文档,并生成一个 树形结构。
通过选择器或方法查找 HTML元素,并提取所需数 据。
对提取的数据进行清洗、 转换或进一步处理。
Scrapy框架实现高级爬虫
Scrapy框架介绍
安装与配置
Python中的字符串是不 可变序列,可以使用单 引号、双引号或三引号 表示。字符串支持索引 、切片、连接等操作, 可以使用format方法进 行格式化输出。
Python中的列表是可变 序列,可以包含任意类 型的元素。列表支持添 加、删除、修改等操作 ,可以使用for循环遍历 列表中的元素。
Python中的元组是不可 变序列,与列表类似但 不允许修改。元组通常 用于表示一组相关的数 据,可以作为字典的键 或函数的返回值。
Python中可以使用def关键字定义函数,使 用import关键字导入模块。函数和模块可 以提高代码的复用性和可维护性。
Python数据类型
数字类型
字符串类型
列表类型
元组类型
字典类型
Python支持int(整型) 、float(浮点型)、 complex(复数)等数 字类型,可以进行数学 运算和逻辑比较。
高级绘图功能
Matplotlib是Python中用于绘 制静态、动态和交互式图形的 库,提供了丰富的绘图API和 图形样式设置功能。
介绍Matplotlib中的基本绘图 元素和绘图流程,包括画布、 坐标轴、图形对象等。
详细讲解如何设置图形的颜色 、线型、标记样式等属性,以 及如何使用子图和多图布局。
Keras框架实现深度学习模型
TensorFlow框 架概述

大学课程《Python程序设计》PPT课件:第1章 初识Python

大学课程《Python程序设计》PPT课件:第1章 初识Python
常规软件开发 科学计算 系统管理与自动化运维 云计算 Web开发 游戏 网络爬虫 数据分析 人工智能
Python程序设计
1.2 搭建Python环境
1.2.1 Python下载和安装
Python已经被移植到许多平台上,例如Windows、Mac、Linux等主流平台,可以 根据需要为这些平台安装Python。在Mac和Linux系统中,默认已经安装了Python。 如果需要安装其他版本的Python,可以登录Python官网,找到相应系统的Python安 装文件进行安装。
Python程序设计
1.1 Python语言概述
1.1.1 Python语言的发展
Python语言诞生于1990年,由吉多.范罗苏姆(Guido van Rossum)设计并领导开 发。1989年12月,Guido考虑启动一个开发项目以打发圣诞节前后的时间,所以决定 为当时正在构思的一个新的脚本语言写一个解释器,因此在次年诞生了Python语言。 该语言以“Python”命名源于Guido对当时一部英剧“Monty Python' s Flying Circus”的极大兴趣。
【提示】
(1)打开PyCharm,新建一个名为:pythonProject的项目并且保 存在D盘根目录下。 (2)在pythonProject项目里新建一个名为:HelloChina的.py文件 。 (3)在HelloChina.py文件中输入代码:print("中国,我爱你!"), 如图1-32所示。 (4)在代码输入空白区域单击鼠标右键,选择Run命令执行代码, 在PyCharm下方的控制台可以看到“中国,我爱你!”已经被打印 输出了。
Python程序设计
1.4 Python程序的编写与运行

《Python语言程序设计课件》

《Python语言程序设计课件》

Python数据分析(N u m p y/Pand as )
1
数据导入
Python的数据分析库可以轻松将各种数据
数据转换
2
源导入进来,包括CSV、SQL、NoSQ L等 多种数据形式。
Python的数据分析库能够快速地对数据进
行规整、清洗、拆分等操作,方便后续
的分析。
3
数据分析
Python的数据分析库支持各种数据分析方 法,包括统计分析、机器学习、深度学 习等高级技术。
Matplotlib
Matplotlib是Python的一种图表库, 能够生成各种数据可视化图表, 包括折线图、饼状图等。
Python Web编程(Flask/Django)
Flask
Flask是Python的一种轻量级Web框架,能够快速搭 建可扩展的Web应用,适用于小型项目。
Django
D jang o是Python的一种全功能Web框架,支持数据 库、模板、路由等各种成熟的功能,适用于中大型 项目。
Python的元编程机制可以 让程序在运行时扩展自己 的功能,支持动态创建类、 函数等。
Python常用第三方库
Numpy
Pandas
Numpy是Python的一种数学库, 能够快速处理各种大型数据结构, 支持各种统计学方法。
Pandas是Python的一种数据分析 库,能够轻松处理数据的导入、 统计、转换等操作。
错误与异常处理
1 错误类型
Python的错误类型包括语法错误、逻 辑错误等,每种错误类型需要采用不 同的处理方式。
2 异常处理
Python的异常处理机制能够让程序在 发生错误时自动做出相应的响应,比 如记录日志、重新尝试、优雅退出等。

第8章PythonPytho程序设计基础教程面向对象编程ppt课件

第8章PythonPytho程序设计基础教程面向对象编程ppt课件
16
8.2. 类的继承
面向对象的编程带来的主要好处之一是代 码的重用,实现这种重用的方法之一是通 过继承机制。一个类继承另一个类时,它 将自动获得另一个类的所有属性和方法; 原有的类称为父类,而新类称为子类。子 类继承了其父类的所有属性和方法,同时 还可以定义自己的属性和方法。继承完全 可以理解成类之间的类型和子类型关系。
2. 定义了eat()方法,该方法的参数是self和food:self表示当前 调用eat()的对象,food是一个数字类型参数,表示吃进去的食 物重量,通过self.weight=self.weight+food使得调用eat() 方法的Person对象体重增加,如p1.eat(2)表示Person对象p1 的体重增加2,同时显示信息。
5. 代Байду номын сангаас块4创建了两个不同的Person对象,分别是p1 和p2,分别调用他们的eat()、run()、say()方法。
10
对象属性的默认值设置
可以为属性在__init__()方法中设置默认值,代 码如下:
# 例 8 3在类的定义中加入初始化代码 def __init__(self, name, gender='男', weight=70):
9
3. 定义了run()方法,该方法只有一个参数self,通过s elf.weight=self.weight-1使得调用run()的对象体 重减1,如p1.run(),表示Person对象p1通过跑步 锻炼体重降低了1,同时显示信息。
4. 定义了say()方法,该方法只有一个参数self,通过p rint('My name is %s' % ())语句自我 介绍,如p2.say(),输出“王昭君”,自我介绍。

Python程序设计案例教程课件第1章

Python程序设计案例教程课件第1章

Python语言的特点
Python语言的特点
• 简单易学 • 开源性 • 面向对象 • 可扩展 • 高级语言 • 丰富的库 • 可移植性 • 规范的代码 • 解释性
Python程序设计案例教程
Python语言的特点
Python程序设计案例教程
1.简单易学 Python的定位是优雅、明确、简单,其优势之一就是代码量少, 逻辑一目了然。Python简单易懂、易于读写,开发者可以把更多的注 意力放在问题本身上,不用花费太多时间精力在程序语言、语法上。
Python语言的特点
Python程序设计案例教程
8.规范的代码 Python与其他语言最大的区别就是,其代码块不使用大括号{ }来 控制类、函数以及其他逻辑判断。 Python语言是“靠缩进控制代码逻辑的语言”,因此要必须注意 严格缩进,统一的编码规范可以提高程序的开发效率。
Python语言的特点
Python的历史发展
Python程序设计案例教程
2006年,Python 2.5发布。 2010年,Python 2.7发布。 2009年,Python 3.1发布。 2012年,Python 3.3发布。 2015年,Python 3.5发布。 2018年,Python 3.7发布。
2008年,Python 2.6发布。 2008年,Python 3.0发布。 2011年,Python 3.2发布。 2014年,Python 3.4发布。 2016年,Python 3.6发布。 2019年,Python 3.8发布。
Python解释器首先将源代码编译生成中间字节码,一般情况下, 如果源文件被导入,则将中间字节码保存为后缀为.pyc的文件。然后 将编译好的字节码转发到PVM(Python virtual machine,Python虚拟机) 中加以执行。

8-1-Python-程序设计ppt课件

8-1-Python-程序设计ppt课件

elif else except finally for from global if
Python编程基础
import in is lambda not or pass print
raise return try while with
数字类型:整数、长整数、浮点实Py数tho、n编复程数基础
整数:长度不超过计算机字长的“普通”整数,如:
3. Python 基本语句
学习内容
赋值语句 输入/输出语句 选择结构语句 循环结构语句 示例—百钱买百鸡
赋值语句
Python基本语句
格式1:<变量>= <表达式>
格式2:
同时给多个表达式赋值
<变量1>,…,<变量N>=<表达式1>,…,<表达式N>
>>> x=25
# 将数字25赋给变量x
>>> y=25
于解决问题而不是去搞明白语言本身。
速度快:Python 的底层是用 C 语言写的,很多标准
库和第三方库也都是用 C 写的,运行速度非常快。
解释性:Python语言可以直接从源代码运行程序,不
需要编译成二进制代码。
免费、开源:Python是自由/开放源码软件之一,使
用者可以自由地的拷贝、阅读源代码、做改动等。
number=number+1
百钱买百鸡
应用案例
在公元五世纪我国数学家张丘建在其《算经》一 书中提出的“百鸡问题”:鸡翁一,值钱5,鸡母一, 值钱3,鸡雏三,值钱1。 百钱买百鸡,问鸡翁、母、雏各几何?
穷举算法
应用案例
显然这是个不定方程,适用于穷举法求解。 依次取Cock值域中的一个值,然后求其他两个数,满足条 件就是一个解。

上海交通大学python程序设计课程PPTCh课件

上海交通大学python程序设计课程PPTCh课件
–《程序设计思想与方法——问题求解与计算思维》 高教出版社, 2013.
• 参考书
–Python Programming: An Introduction to Computer Science. (电子版)
–How to Think Like a Computer Scientist— Learning with Python.(电子版)
celsius = input("What is the Celsius temperature? ") fahrenheit = (9.0/5.0) * celsius + 32 print "The temperature is ",fahrenheit," degrees Fahrenheit." main()
# Author: John # Version: 1.0 def main():
....
• 注释是给人看的,对程序执行没有作用, 被编译器/解释器忽略.
• 良好的编程风格:多用注释!
43
程序实例
#convert.py # A program to convert Celsius temps to Fahrenheit # by: Susan Computewell def main():
41
程序构件:函数
• 多条语句构成一个整体,并命名
>>> def greet(): print "Hello!" print "Goodbye!"
>>> greet() Hello! Goodbye!
• 习惯上为程序定义一个主函数main
42

上交大《Python程序设计实用教程》教学资源 教学课件 模块1

上交大《Python程序设计实用教程》教学资源 教学课件 模块1
1.交互式启动和运行方法
交互式有两种启动和运行方法。 (1)启动Windows操作系统命令行工具(<Windows系统安装目录>\system32 \cmd.exe),在控制台中输入“python”并按Enter键,在命令提示符>>>后输入 如下程序代码: print("Hello World") 按Enter键后显示输出结果“Hello World”,如图1-6所示。在>>>提示符后输入 exit()或者quit()并按Enter键可以退出Python运行环境。

1.3 使用IDLE编写第一个
Python程序
1.4 实训
Part one
1.1 初识Python
1.1.1 Python简介
Python是一种面向对象的解释型计算机程序设计语言 ,由荷兰人Guido van Rossum于1989年发明,第一 个公开发行版发行于1991年。Python是纯粹的自由软 件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。Python语法简洁清 晰,特色之一是强制用空白符(white space)作为语 句缩进。Python具有丰富和强大的库。它常被称为“ 胶水语言”,能够把用其他语言(尤其是C/C++)制 作的各种模块很轻松地连接在一起。
1.2.1 安装Python
(5)安装完 成,弹出 “Setup was successful” 界面(见图15),单击 Close按钮完 成安装。
Python安装包将 在系统中安装一 批与Python开发 和运行相关的程 序,其中最重要 的两个是Python 命令行和Python 集成开发环境 IDLE。

上海交通大学 python程序设计课程 Ch8-1 ppt课件

上海交通大学 python程序设计课程 Ch8-1  ppt课件
– 注意写法:对象创建与方法调用合二为一
15
常用构件:按钮
• 类:Button
btn = Button(窗口,选项设置) – text:按钮上的文本 – command:点击按钮时要执行的命令
需要提供一个函数或方法名f
注意不是函数调用f()
– height,width – fg,bg – relief:RAISED/FLAT/SUNKEN/GROOVE/ – state:NORMAL/ACTIVE/DISABLED
27
Grid布局管理器
• Grid将窗口或框架视为由行和列构成的二维表 格,并将构件放入行列交叉处的单元格中
– 根据构件大小自动调整行列尺寸:列宽由该列中最宽 构件决定,行高由该行最高的构件决定.
• 构件都有grid()方法
– 选项row和column指定行列编号
从0开始编号 row的缺省值为当前下一空行,column的缺省值总为0
–程序有一个事件循环
事件监测
OS功能,由工具包提供支持
事件处理
应用程序员只需编写自己的事件处理程序
6
GUI编程
• 需要GUI工具包
– 将低层细节对程序员隐藏 – 跨平台 – Python标准库:Tkinter
• GUI编程
– 设计界面外观 – 为每个构件定义事件处理代码 – 建立启动初始化和总控部分
23
常用构件:顶层窗口
• 类Toplevel
– 顶层窗口是根窗口的子构件,但有一定的独 立性:可以移动,改变大小.
– 根窗口只有一个,顶层窗口可有多个.
• 例如
>>> root = Tk() >>> Label(root,text="hello").pack() >>> top = Toplevel() >>> Label(top,text="world").pack() >>> top.title('hello toplevel') >>> top.geometry('400x300')
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– Tkinter自动维护这两个属性的值 – 编程时可利用这两个属性,例如: aLabel.master.title("My GUI")
13
界面设计过程
• 根据需要创建多个构件,然后在窗口中进 行布局. • 例:eg8_3.py
from Tkinter import * root = Tk() aLabel = Label(root,text="Hello World") aLabel.pack() aButton = Button(root,text="Click Me") aButton.pack() root.mainloop()
7
Tkinter的常用构件类
• • • • • • • • • • • • Button Canvas Checkbutton Entry Frame Label Listbox Menu Message Radiobutton Text Toplevel
8
最简单的Tkinter程序
• • • • 导入Tkinter 建立根窗口 进入事件循环 例:eg8_1.py
from Tkinter import * root = Tk() root.mainloop()
9
在窗口中添加构件
• 两步:
– 创建 – 布局
• 例:eg8_2.py
from Tkinter import * root = Tk() aLabel = Label(root,text="Hello World") aLabel.pack() root.mainloop()
• 根窗口的标题设置
root.title("My GUI") – 缺省值为"Tk"
• 根窗口的尺寸设置
root.geometry("400x400") – 缺省值为200x200
12
构件间的父子关系
• GUI中的所有构件按父子关系构成树状 层次结构 • 每个构件都有master和children属性
• • • •
标签Label 按钮Button 菜单Menu 框架Frame
– 也是容器
窗口W 框架F1 勾选钮C1 勾选钮C2 OK Cancel 框架F2
3
构件之间的关系
• 父子关系
– 在一个构件内创建另一个构件 – 界面上全体构件形成一个层次结构 – 顶层是根窗口
• 父构件内安排子构件:使用布局管理器
图形用户界面
程序的用户界面
• 程序中与用户进行交互的部分
– 用户通过UI向程序输入数据或者请求程序执 行特定任务 – 程序通过UI向用户显示各种信息
• UI应该是用户友好的 • 两类UI
– 命令行界面 – 图形界面(GUI)
2
GUI构件
• 窗口Window
– 是容器:可以容纳其他构件的构件 – 程序有一个根窗口
• 构件都有pack()方法
26
例:Pack布局管理器
>>> Label(root,text="Input a number:").pack() >>> Entry(root).pack() >>> Button(root,text="OK").pack()
>>> Label(root,text="Input a number:").pack(side="left") >>> Entry(root).pack(side="left") >>> Button(root,text="OK").pack(side="left")
24
布局
• 布局:界面元素在界面中的位置安排. • 布局管理器:程序员不需要了解底层显示 系统的细节, 在较高层次上考虑界面布局 • 构件都是先创建,再布局:
w = Constructor(parent,...) w.GeometryManager(...)
• Tkinter提供三种布局管理器:Pack,Grid 和Place
23
常用构件:顶层窗口
• 类Toplevel
– 顶层窗口是根窗口的子构件,但有一定的独 立性:可以移动,改变大小. – 根窗口只有一个,顶层窗口可有多个.
• 例如
>>> >>> >>> >>> >>> >>> root = Tk() Label(root,text="hello").pack() top = Toplevel() Label(top,text="world").pack() top.title('hello toplevel') top.geometry('400x300')
4
事件驱动
• GUI程序的执行流程取决于与用户的实 时交互
– 例如:Word程序的执行
• 事件驱动编程
– 普通程序的执行:启动——做事——终止 – 事件驱动程序的执行:启动——事件循环
等待事件发生,然后处理 程序的终止也是由特定事件(如关闭窗口事件)引 起的
5
基本概念
• 事件:例如点击鼠标,按下键盘等. • 事件处理程序:对事件进行处理的代码. • 事件驱动编程:一种编程范型
21
常用构件:菜单
• 类Menu
– 创建菜单构件 – 与窗口关联 – 添加菜单项
菜单项:简单命令,级联式菜单,勾选钮,一组单选钮
• 例如
>>> >>> >>> >>> m = Menu(root) root.config(menu = m) m.add_command(label="File") m.add_command(label="Help")
10
在窗口中添加构件
• 构件对象有很多属性(实例变量):
– 创建时设置属性的值
属性一般都有缺省值 用"命名参数"方式设置较方便:属性=属性值
– 创建时不设置,将来再设置或修改
利用构件类的config方法: 对象.config(属性=属性值) 对象视为字典: 对象[属性]=属性值
11
根窗口
27
Grid布局管理器
• Grid将窗口或框架视为由行和列构成的二维表 格,并将构件放入行列交叉处的单元格中
– 根据构件大小自动调整行列尺寸:列宽由该列中最宽 构件决定,行高由该行最高的构件决定.
• 构件都有grid()方法
– 选项row和column指定行列编号
20
常用构件:框架
• 类Frame:构件容器,用于窗口分隔
f = Frame(窗口,选项设置) – width,height,bd,relief – 框架中的子构件独立地进行布局
• 例如
>>> >>> >>> >>> >>> f = Frame(root,bd=4,relief="groove") f.pack() Checkbutton(f,text="Math").pack() Checkbutton(f,text="Python").pack() Checkbutton(f,text="English").pack()
14
常用构件:标签
• 类:Label
lb = Label(窗口,选项设置) – text:标签文本内容 – width:标签宽度 – fg:前景色(文本颜色)
• 例如
>>> aLabel = Label(root,text="Hello World") >>> aLabel.pack() >>> Label(root,text='red color',fg='red').pack()
程序中可以通过v.get()和v.set()来查询或设置勾 选钮的状态
>>> v = IntVar() >>> Checkbutton(root,text="Check",variable=v).pack()
18
常用构件:单选钮
• 类:Radiቤተ መጻሕፍቲ ባይዱbutton
rb = Radiobutton(窗口,选项设置) – value:每个单选钮对应一个值,用于控制变量 – variable:控制变量,值为IntVar类的实例
>>> def hiButton(): ... print 'hi there' ... >>> Button(root,text='print',command=hiButton).pack()
17
常用构件:勾选钮
• 类:Checkbutton
cb = Checkbutton(窗口,选项设置) – text
一组单选钮共用一个控制变量
>>> >>> >>> >>> >>> v = IntVar() v.set(1) Radiobutton(root,text="One",variable=v,value=1).pack() Radiobutton(root,text="Two",variable=v,value=2).pack() Radiobutton(root,text="Three",variable=v,value=3).pack()
相关文档
最新文档