python入门10——综合练习题(面向对象、函数)

一、面向对象相关习题

1. 小明爱跑步

题目要求:小明的体重为120KG,小明每跑一次步体重下降0.5KG,小明每吃一顿饭体重上升1KG。
类的设计如下所示:

class Person:
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight

    def __str__(self):
        return "[%s]的当前体重是 %.1f KG " % (self.name, self.weight)

    def running(self):
        print("跑了一次步 !")
        self.weight = self.weight - 0.5

    def eatting(self):
        print("吃了一次饭 !")
        self.weight = self.weight + 1


p = Person('小明', 120)
print(p)
p.running()
p.running()
print(p)
p.eatting()
print(p)
2. 计算面积安置家具

具体要求:房子(House) 有 户型、总面积 和 家具名称列表。初始时的新房子没有任何的家具。家具(HouseItem) 有 名字 和 占地面积,其中席梦思(bed) 占地 4 平米、衣柜(chest) 占地 2 平米、餐桌(table) 占地 19.5 平米,将以上三件 家具 添加 到 房子 中。打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表。
类的设计如下所示:
在这里插入图片描述

# 家具类
class HouseItem:
    def __init__(self, Item_name, Item_area):
        self.Item_name = Item_name  # 家具名称
        self.Item_area = Item_area  # 家具占地面积

    def __str__(self):
        return "[%s] 占地 %.2f 平米" % (self.Item_name, self.Item_area)  # 返回家具名称以及该家具的占地面积

# 房子类
class House:
    def __init__(self, h_type, h_area):
        self.h_type = h_type  # 房子类型
        self.h_area = h_area  # 房子总面积
        self.Item_list = []  # 房子中家具的列表

        self.free_area = h_area  # 初始时房子剩余面积等于总面积

    def __str__(self):
        print("-"*50)
        return ("户型:[%s]\n总面积 %.2f平方米,剩余[%.2f]平米\n已装家具:%s" % (self.h_type, self.h_area, self.free_area, self.Item_list))
    
    # 该方法实现了将家具安装到房子中
    def add_Item(self, item):
        # 1. 判断家具面积是否大于剩余面积
        if item.Item_area > self.free_area:
            print("%s 太大了!装不到您的房子内!" % item.Item_name)
            return

        # 2. 把家具装入家具列表中
        self.Item_list.append(item.Item_name)

        # 3. 计算房子的 剩余面积 = 剩余面积 - 家具面积
        self.free_area -= item.Item_area


# 1. 创建家具
bed = HouseItem("席梦思", 40)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 19.5)

print(bed)
print(chest)
print(table)

# 2. 创建房子对象
my_home = House("两室一厅", 60)

my_home.add_Item(bed)
my_home.add_Item(chest)
my_home.add_Item(table)
print(my_home)

运行结果为:
在这里插入图片描述

3. 许三多开炮

具体要求:士兵许三多有一把 AK47,他可以选择开火。每次开火,子弹个数减少一枚,初始默认子弹3枚。当子弹个数为0时,士兵可以装填子弹,每次只能装填一个。
代码实现如下:

class Pistol:
    def __init__(self, pname):
        self.pname = pname
        self.count = 3  # 默认初始有3枚子弹

    # 枪能够发射子弹
    def Launch(self):
        if self.count <= 0:
            print("[%s]没有子弹了!!!" % self.pname)
            return
        else:
            self.count = self.count - 1
            print("[%s]成功发射一枚子弹!还剩[%s]枚子弹!" % (self.pname, self.count))

    # 枪装填子弹
    def add_Bullets(self):
        self.count = self.count + 1
        print("为[%s]装填子弹!!此时有[%s]枚子弹!" % (self.pname, self.count))


class Soldiers:
    def __init__(self, name):
        self.name = name
        self.gun = None  # gun最后由创建类实例时赋值!!

    def fire(self):
        # 此时没枪
        if self.gun == None:
            print("士兵[%s]没有枪哦,无法射击!" % self.name)
            return
        else:
            print("士兵[%s]开火!" % self.name)
            self.gun.Launch()


p = Pistol("AK47")
s = Soldiers("许三多")
s.gun = p  # 重要!!!士兵类中的gun由此赋值!!!
s.fire()
s.fire()
s.fire()
s.fire()
p.add_Bullets()

运行结果为:
在这里插入图片描述

二、函数相关练习(复习)

1. 名片管理系统

具体要求:程序启动,显示名片管理系统欢迎界面,并显示功能菜单。 用户可以用数字选择不同的功能。根据功能选择,执行不同的操作。用户名片记录用户的 姓名、电话、QQ、邮件。如果查询到指定的名片,用户可以选择 修改 或者 删除 名片。
功能菜单如下所示:
在这里插入图片描述
完整的代码如下(未优化,较冗长):

cards = []
del_name = None


# 启动程序时默认调用的方法,显示主界面
def choose():
    print("**************************************************\n欢迎使用【名片管理系统】v1.0")
    inputnum = input("\n请选择操作:\n1、新建名片\n2、显示全部\n3、查询名片\n\n0、退出系统\n**************************************************")
    if inputnum == "1":
        create_cards()
    elif inputnum == "2":
        display_all()
    elif inputnum == "3":
        search_card()
    elif inputnum == "0":
        exit()
    else:
        print("您输入的数字有误!")


# 新建名片
def create_cards():
    global cards
    print("以下操作将为您新建一个名片:")
    name = input("请输入您的姓名:")
    tel = int(input("请输入您的电话:"))
    qq = int(input("请输入您的QQ:"))
    email = input("请输入您的邮件:")
    print("------------------------\n您的名片信息为:\n姓名:%s\n电话:%d\nQQ:%d\n邮件:%s" % (name, tel, qq, email))
    cards.append([name, tel, qq, email])
    input_q = input("------------------------\nTip: 输入 q 即可返回主界面")
    if input_q == 'q':
        choose()
    else:
        print("输入有误!默认为您跳转到主界面!")
        choose()


# 显示全部名片信息
def display_all():
    global cards
    for index in cards:
        print("------------------------\n姓名:%s\n电话:%d\nQQ:%d\n邮件:%s" % (index[0], index[1], index[2], index[3]))
    input_q = input("------------------------\nTip: 输入 q 即可返回主界面")
    if input_q == 'q':
        choose()
    else:
        print("输入有误!默认为您跳转到主界面!")
        choose()


# 查询用户
def search_card():
    global cards
    global del_name
    input_name = str(input("请输入您要查询的用户姓名:"))
    del_name = input_name  # 将要查询的用户名保存到全局变量del_name中,方便之后做删除操作
    isexist = False
    for index in range(len(cards)):
        if input_name == str(cards[index][0]):
            print("-----------------------------\n您查询的用户信息如下:\n姓名:%s\n电话:%d\nQQ:%d\n邮件:%s" % (
                cards[index][0], cards[index][1], cards[index][2], cards[index][3]))
            isexist = True  # 记录是否查询到该用户
            inputnum = int(input("------------选择操作------------\n1、修改名片\n2、删除名片"))
            if inputnum == 1:
                del cards[index]  # 这里定义对一个用户名片的修改操作为删除原来的所有信息,让用户重新输入
                edit_card()
            elif inputnum == 2:
                del_card()
            else:
                pr = input("输入有误!请重新输入!\n1、修改名片\n2、删除名片")
                if pr == '1':
                    del cards[index]
                    edit_card()
                elif pr == '2':
                    del_card()
                else:
                    print("您已经多次输入错误!自动为您退出系统!")
                    exit()
        else:
            continue

    if isexist == False:  # for循环结束后仍为False的话,代表为查询到相应用户名的用户
        print("未查询到该用户信息!")
        input_q = input("------------------------\nTip: 输入 q 即可返回主界面")
        if input_q == 'q':
            choose()
        else:
            print("输入有误!默认为您跳转到主界面!")
            choose()


# 修改用户信息
def edit_card():
    global cards
    print("------------------------\n请重新输入名片信息:")
    name = input("请输入您的姓名:")
    tel = int(input("请输入您的电话:"))
    qq = int(input("请输入您的QQ:"))
    email = input("请输入您的邮件:")
    print("------------------------\n您的名片信息为:\n姓名:%s\n电话:%d\nQQ:%d\n邮件:%s" % (name, tel, qq, email))
    cards.append([name, tel, qq, email])
    input_q = input("------------------------\nTip: 输入 q 即可返回主界面")
    if input_q == 'q':
        choose()
    else:
        print("输入有误!默认为您跳转到主界面!")
        choose()


def del_card():
    global cards
    global del_name
    for index in range(len(cards)):
        if del_name == str(cards[index][0]):
            del cards[index]
            print("成功删除用户信息!")
            input_q = input("------------------------\nTip: 输入 q 即可返回主界面")
            if input_q == 'q':
                choose()
            else:
                print("输入有误!默认为您跳转到主界面!")
                choose()


choose()  # 程序启动时就会调用该方法显示主界面

以下是运行结果:
在这里插入图片描述
输入1之后,用户可以新建自己的名片,新建操作成功完成后,系统会展示用户新建的名片信息,如下:
在这里插入图片描述我们可以输入q回到主界面,再新建一个用户信息,如下:
在这里插入图片描述
回到主界面,输入2即可查看所有用户的名片信息:
在这里插入图片描述
同样地,我们可以回到主界面输入3即可输入用户姓名查询其名片信息:
在这里插入图片描述
在查询的基础上,可以进一步选择修改名片/删除名片操作,输入2成功删除该用户名片,那么,若再次查询全部用户信息就不会有该用户信息出现了。
在这里插入图片描述
我门亦可以在查询名片的基础上,修改该用户名片信息,如下:
在这里插入图片描述
修改操作完成后,回到主界面再次显示全部用户信息时,可以看到该用户的信息已经成功被修改。
在这里插入图片描述

2. 根据范围求能被3和7整除的数

具体要求:根据范围获取3和7整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和。如def func(start, end)。
实现步骤如下:

def func(start, end):
    count = 0
    sum = 0
    for index in range(start, end + 1):
        if index % 3 == 0 and index % 7 == 0:
            count = count + 1
            sum = sum + index
        else:
            continue
    return count, sum


f = func(2, 100)  # 求2-100之间符合要求的数,可以打印看看符合要求的数有21、42、63、84四个
print(f)  # (4,210)
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python学习手册(第3版).pdf本书包括:   类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。   语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。   函数——Python基本的面向过程工具,用于组织代码和重用。   模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。   类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。   异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。 《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。, 《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风 暴:这是《Python学习手册(第3版)》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。, 《Python学习手册(第3版)》包括:, 类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。, 语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。, 函数——Python基本的面向过程工具,用于组织代码和重用。, 模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。, 类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。, 异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。, 讨论Python 3.0。, 《Python学习手册(第3版)》让你对Python语言有深入而完整的了解,从而帮助你理解今后遇到的任何Python应用程序实例。如果你准备探索Google和YouTube为什么选中了Python,《Python学习手册(第3版)》就是你入门的最佳指南。
Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。, 《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册(第3版)》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。, 《Python学习手册(第3版)》包括:, 类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。, 语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。, 函数——Python基本的面向过程工具,用于组织代码和重用。, 模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。, 类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。, 异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。, 讨论Python 3.0。, 《Python学习手册(第3版)》让你对Python语言有深入而完整的了解,从而帮助你理解今后遇到的任何Python应用程序实例。如果你准备探索Google和YouTube为什么选中了Python,《Python学习手册(第3版)》就是你入门的最佳指南。
第Ⅰ部分 初了解Python 第1章 编程基础和字符串 3 1.1 编程与使用计算机的区别 3 1.1.1 编程的一致性 3 1.1.2 编程的可控性 4 1.1.3 程序要应对变化 4 1.1.4 小结 4 1.2 准备工作 4 1.2.1 在非Windows系统上安装 Python 3.1 5 1.2.2 使用Python Shell 5 1.3 开始使用Python——字符串 6 1.3.1 字符串概述 6 1.3.2 为什么需要引号 6 1.3.3 为什么有3种类型的引号 7 1.3.4 使用print()函数 7 1.3.5 理解不同的引号 8 1.4 串联两个字符串 10 1.5 用不同的方法串联字符串 11 1.6 本章小结 12 1.7 习题 13 第2章 数值与运算符 15 2.1 不同类型的数值 15 2.2 程序文件 17 2.2.1 使用不同的类型 18 2.2.2 基本算术 20 2.2.3 一些惊喜 22 2.3 使用数值 23 2.3.1 求值顺序 23 2.3.2 数值格式 24 2.3.3 可能会发生的错误 25 2.3.4 几个不寻常的例子 26 2.4 本章小结 26 2.5 习题 27 第3章 变量 29 3.1 引用数据——使用数据的 名称 29 3.1.1 使用名称修改数据 30 3.1.2 复制数据 31 3.1.3 禁用的名称以及一些规则 31 3.2 使用更多的内置类型 31 3.2.1 元组——不可更改的数据 序列 32 3.2.2 列表——可以更改的数据 序列 35 3.2.3 字典——以名称索引的分组 数据 36 3.2.4 像列表一样处理字符串 38 3.2.5 特殊类型 39 3.3 序列的其他共有属性 40 3.3.1 引用最后一个元素 40 3.3.2 序列的范围 41 3.3.3 通过附加序列增长列表 41 3.3.4 使用列表临时存储数据 42 3.3.5 处理集合 43 3.4 本章小结 44 3.5 习题 44 第Ⅱ部分 Python语言和标准库 第4章 做出决策 49 4.1 比较两个值是否相等 49 4.2 比较两个值是否不相等 51 4.3 比较两个值的大小 51 4.4 对真值和假值取反 53 4.5 观察多个比较运算的结果 54 4.6 循环 57 4.6.1 重复执行操作 57 4.6.2 终止循环 59 4.7 处理错误 62 4.8 本章小结 64 4.9 习题 65 第5章 函数 67 5.1 将程序放在单独的文件中 67 5.2 函数:在一个名称下聚集 代码 69 5.2.1 选择名称 70 5.2.2 在函数中描述函数 70 5.2.3 不同的位置相同的名称 72 5.2.4 添加注释 73 5.2.5 要求函数使用提供的值 73 5.2.6 检查参数 75 5.2.7 为参数设置默认值 77 5.2.8 在函数中调用其他函数 78 5.2.9 函数嵌套函数 80 5.2.10 用自己的词语标记错误 81 5.3 函数的层次 81 5.4 本章小结 82 5.5 习题 83 第6章 类与对象 85 6.1 考虑编程 85 6.1.1 对象的含义 85 6.1.2 已经了解的对象 85 6.1.3 展望:如何使用对象 87 6.2 定义类 87 6.2.1 如何创建对象 87 6.2.2 对象和它们的作用域 95 6.3 本章小结 98 6.4 习题 99 第7章 组织程序 101 7.1 模块 102 7.1.1 导入可用模块 102 7.1.2 通过已有模块创建新模块 102 7.1.3 从命令行开始使用模块 104 7.1.4 改变导入方式 106 7.2 包 106 7.3 模块和包 108 7.3.1 将所有内容引入当前 作用域 108 7.3.2 重新导入模块和包 109 7.4 测试模块和包的基础知识 111 7.5 本章小结 112 7.6 习题 112 第8章 文件和目录 115 8.1 文件对象 115 8.1.1 编写文本文件 116 8.1.2 向文件中追加文本 116 8.1.3 读文本文件 117 8.1.4 文件异常 119 8.2 路径和目录 119 8.3 os中的异常 119 8.3.1 路径 120 8.3.2 目录内容 122 8.3.3 获取文件信息 123 8.3.4 重命名、移动、复制和删除 文件 125 8.3.5 示例:轮换文件 126 8.3.6 创建和删除目录 127 8.3.7 通配 128 8.4 本章小结 129 8.5 习题 129 第9章 Python语言的其他特性 131 9.1 lambda和filter:简单匿名 函数 131 9.2 Map:短路循环 132 9.3 在列表中做出决策—— 列表解析 133 9.4 为循环生成迭代器 133 9.5 使用字典的特殊字符串 替换 135 9.6 重要模块 137 9.6.1 getopt——从命令行中得到 选项 137 9.6.2 使用一个以上的进程 139 9.6.3 线程——在相同的进程中 完成多个工作 141 9.7 本章小结 143 9.8 习题 144 第10章 创建模块 145 10.1 研究模块 145 10.1.1 导入模块 147 10.1.2 查找模块 147 10.1.3 理解模块 148 10.2 创建模块和包 149 10.3 使用类 150 10.3.1 定义面向对象编程 151 10.3.2 创建类 151 10.3.3 扩展已有的类 152 10.4 完成模块 153 10.4.1 定义模块特定的错误 154 10.4.2 选择导出哪些内容 154 10.4.3 为模块建立文档 155 10.4.4 测试模块 164 10.4.5 将模块作为程序运行 165 10.5 创建一个完整的模块 166 10.6 安装模块 171 10.7 本章小结 174 10.8 习题 175 第11章 文本处理 177 11.1 文本处理的用途 177 11.1.1 搜索文件 178 11.1.2 日志剪辑 179 11.1.3 邮件筛选 179 11.2 使用os模块导航文件 系统 179 11.3 使用正则表达式和re 模块 185 11.4 本章小结 189 11.5 习题 189 第Ⅲ部分 开始使用Python 第12章 测试 193 12.1 断言 193 12.2 测试用例和测试套件 195 12.3 测试装置 198 12.4 用极限编程整合 201 12.4.1 用Python实现搜索实用 程序 202 12.4.2 一个更加强大的Python 搜索 207 12.5 软件生命周期中的正规 测试 210 12.6 本章小结 210 第13章 使用Python编写GUI 213 13.1 Python的GUI编程工具箱 213 13.2 Tkinter简介 215 13.3 用Tkinter创建GUI 小组件 215 13.3.1 改变小组件的尺寸 215 13.3.2 配置小组件选项 216 13.3.3 使用小组件 217 13.3.4 创建布局 217 13.3.5 填充顺序 218 13.3.6 控制小组件的外观 219 13.3.7 单选按钮和复选框 220 13.3.8 对话框 221 13.3.9 其他小组件类型 222 13.4 本章小结 222 13.5 习题 223 第14章 访问数据库 225 14.1 使用dbm持久字典 226 14.1.1 选择dbm模块 226 14.1.2 创建持久字典 227 14.1.3 访问持久字典 228 14.1.4 dbm与关系数据库的适用 场合 230 14.2 使用关系数据库 231 14.2.1 编写SQL语句 232 14.2.2 定义表 234 14.2.3 建立数据库 235 14.3 使用Python的数据库API 237 14.3.1 下载各个模块 237 14.3.2 创建连接 238 14.3.3 使用游标 238 14.3.4 使用事务并提交结果 245 14.3.5 检查模块的功能和元 数据 246 14.3.6 处理错误 246 14.4 本章小结 247 14.5 习题 248 第15章 使用Python处理XML 249 15.1 XML的含义 249 15.1.1 层次标记语言 249 15.1.2 一组标准 251 15.2 模式/DTD 251 15.2.1 文档模型的用途 251 15.2.2 是否需要文档模型 252 15.3 文档类型定义 252 15.3.1 DTD示例 252 15.3.2 DTD不完全是XML 253 15.3.3 DTD的局限性 253 15.4 模式 254 15.4.1 示例模式 254 15.4.2 模式是纯粹的XML 254 15.4.3 模式具有层次 255 15.4.4 模式的其他优点 255 15.5 XPath 255 15.6 HTML是XML的子集 256 15.6.1 HTML DTD 256 15.6.2 HTMLParser 256 15.7 Python中可用的XML库 257 15.8 SAX的含义 257 15.8.1 基于流 258 15.8.2 事件驱动 258 15.8.3 DOM的含义 258 15.8.4 内存中访问 258 15.9 使用SAX或者DOM的 理由 259 15.9.1 能力权衡 259 15.9.2 内存考虑 259 15.9.3 速度考虑 259 15.10 Python中可用的SAX 和DOM解析器 259 15.10.1 xml.sax 259 15.10.2 xml.dom.minidom 260 15.11 XSLT简介 262 15.11.1 XSLT是XML 262 15.11.2 转换和格式语言 263 15.11.3 函数式、模板驱动 263 15.12 lxml简介 263 15.13 元素类 263 15.14 使用lxml解析 266 15.15 本章小结 267 15.16 习题 267 第16章 网络编程 269 16.1 理解协议 271 16.1.1 比较协议和程序语言 271 16.1.2 Internet协议栈 272 16.1.3 Internet协议简介 273 16.2 发送电子邮件 274 16.2.1 E-mail文件格式 275 16.2.2 MIME消息 276 16.2.3 使用SMTP和smtplib发送 邮件 284 16.3 检索Internet邮件 286 16.3.1 使用mailbox解析本地 邮筒 286 16.3.2 使用poplib从POP3 服务器获取邮件 288 16.3.3 使用imaplib从IMAP 服务器获取邮件 290 16.3.4 安全的POP3和IMAP 294 16.3.5 Webmail应用程序不是 E-mail应用程序 294 16.4 套接字编程 294 16.4.1 套接字简介 295 16.4.2 绑定到外部主机名 297 16.4.3 镜像服务器 298 16.4.4 镜像客户端 299 16.4.5 套接字服务器 300 16.4.6 多线程服务器 302 16.4.7 Python聊天服务器 303 16.4.8 设计Python聊天 服务器 303 16.4.9 Python聊天服务器协议 304 16.4.10 Python聊天客户端 309 16.4.11 基于select的单线程 多任务 312 16.5 其他主题 313 16.5.1 协议设计的多种考虑 313 16.5.2 对等架构 314 16.6 本章小结 314 16.7 习题 315 第17章 用C扩展编程 317 17.1 扩展模块概述 318 17.2 构建并安装扩展模块 320 17.3 从Python向C传递参数 322 17.4 从C向Python返回值 325 17.5 LAME项目 326 17.6 LAME扩展模块 330 17.7 在C代码中使用Python 对象 342 17.8 本章小结 345 17.9 习题 346 第18章 数值编程 347 18.1 Python语言中的数值 347 18.1.1 整数 348 18.1.2 长整数 348 18.1.3 浮点数 349 18.1.4 格式化数值 350 18.1.5 作为数值的字符 352 18.2 数学 353 18.2.1 算术运算 354 18.2.2 内置数学函数 355 18.3 复数 357 18.4 数组 359 18.5 本章小结 363 18.6 习题 363 第19章 Django简介 365 19.1 框架的定义以及使用框架的 理由 365 19.2 Web框架的其他功能 366 19.3 Django发展史 367 19.4 理解Django的架构 368 19.4.1 项目初始设置 368 19.4.2 创建视图 371 19.5 使用模板 373 19.6 使用模板和视图 375 19.6.1 模型 378 19.6.2 创建模型的第一—— 配置数据库设置 379 19.7 创建模型:创建一个应用 程序 380 19.8 本章小结 382 19.9 习题 383 第20章 Web应用程序与Web 服务 385 20.1 REST:Web架构 386 20.1.1 REST的特性 386 20.1.2 REST操作 388 20.2 HTTP:REST的实际应用 388 20.2.1 可见的Web服务器 390 20.2.2 HTTP请求 393 20.2.3 HTTP响应 393 20.3 CGI:将脚本变为Web应用 程序 395 20.3.1 Web服务器与CGI脚本的 协议 397 20.3.2 CGI的特殊环境变量 397 20.3.3 通过HTML表单接收用户 输入 399 20.4 HTML表单的有限词汇 400 20.5 访问表单值的安全性 401 20.6 构建wiki 405 20.6.1 BittyWiki核心库 406 20.6.2 BittyWiki的Web接口 409 20.7 Web服务 418 20.8 REST Web 服务 419 20.8.1 REST快速入门: 在Amazon.com上寻找 廉价商品 419 20.8.2 WishListBargainFinder 简介 422 20.8.3 向BittyWiki提供 REST API 425 20.8.4 使用REST Web服务 实现搜索和替换功能 428 20.9 XML-RPC 432 20.9.1 XML-RPC请求 434 20.9.2 XML-RPC中的数据 表示 434 20.9.3 XML-RPC响应 435 20.9.4 错误处理机制 436 20.9.5 通过XML-RPC展示 BittyWiki API 437 20.9.6 基于XML-RPC Web服务 的wiki搜索和替换 440 20.10 SOAP 442 20.10.1 SOAP快速入门 442 20.10.2 SOAP请求 443 20.10.3 SOAP响应 444 20.10.4 错误处理机制 444 20.10.5 展示一个BittyWiki的 SOAP接口 445 20.10.6 基于SOAP Web服务的 wiki搜索和替换 447 20.11 为Web服务API创建 文档 449 20.11.1 人类可读的API 文档 449 20.11.2 XML-RPC自省API 450 20.11.3 WSDL 451 20.12 选择Web服务标准 455 20.13 Web服务礼仪 456 20.13.1 Web服务的使用者 礼仪 456 20.13.2 Web服务的创建者 礼仪 456 20.13.3 将Web应用程序作为 Web服务使用 456 20.14 本章小结 456 20.15 习题 457 第21章 集成Java与Python 459 21.1 在Java应用程序中编写 脚本 460 21.2 比较各种Python实现 461 21.3 安装Jython 461 21.4 运行Jython 461 21.4.1 交互地运行Jython 461 21.4.2 运行Jython脚本 463 21.4.3 控制jython脚本 463 21.4.4 创建可执行命令 464 21.5 独立运行Jython 465 21.6 打包基于Jython的应用 程序 466 21.7 集成Java和Jython 466 21.7.1 在Jython中使用 Java类 466 21.7.2 从Jython访问数据库 471 21.7.3 通过Jython编写 Java EE servlet 477 21.7.4 选择Jython开发工具 483 21.8 使用Jython进行测试 483 21.9 嵌入Jython解释器 484 21.10 处理C-Python和Jython 之间的差异 487 21.11 本章小结 488 21.12 习题 488 第Ⅳ部分 附 录 附录A 习题答案 491 附录B 在线资源 519 附录C Python 3.1的新特性 521 附录D 术语表 527

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值