IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Python编程:从入门到实践第三章练习题 -> 正文阅读

[游戏开发]Python编程:从入门到实践第三章练习题

从零开始学Python第二天,其实昨天进度挺快的,一直写到3-7才停下,因为个人想法要用到while循环,我对Python的while不是很了解(其实是因为太晚了不想再学了),然后今早搞定了3-7。

3-1 姓名:将一些朋友的姓名存储在一个列表中,并将其命名为 names。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出。
#感觉列表刚开始是考察索引的(书上是索引,我习惯叫下标),所以前面几题是采用的一个一个输出,后面宾客那个要求多的题目就采用了循环。
friend_names.py

names=['yi','xia','zhou','zhao']
print(names[0])
print(names[1])
print(names[2])
print(names[3])

3-2 问候语:继续使用练习 3-1 中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。

print('hi,'+names[0])
print('hi,'+names[1])
print('hi,'+names[2])
print('hi,'+names[3])


#没有用循环结构,这个主要考察应该是列表的下标问题

3-3 自己的列表:想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like to own a Honda motorcycle”。
traffic_ways.py

traffic_ways=['bicycle','car','plane','ship']
print('I would like to own a '+traffic_ways[0])
print('I would like to own a '+traffic_ways[1])
print('I would like to own a '+traffic_ways[2])
print('I would like to own a '+traffic_ways[3])

3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),你会邀请哪些人?请创建一个列表,其中包含至少 3 个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。
guest_list.py

guest_list=['a','b','c','d','e']
print('Dear '+guest_list[0]+',I would like to invite you to dinner.')
print('Dear '+guest_list[1]+',I would like to invite you to dinner.')
print('Dear '+guest_list[2]+',I would like to invite you to dinner.')
print('Dear '+guest_list[3]+',I would like to invite you to dinner.')
print('Dear '+guest_list[4]+',I would like to invite you to dinner.')

3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。以完成练习 3-4 时编写的程序为基础,在程序末尾添加一条 print 语句,指出哪位嘉宾无法赴约。修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。再次打印一系列消息,向名单中的每位嘉宾发出邀请。
现在假设是c无法参加,用del需要知道索引,所以采用remove(c)来删除,再次打印的话采用循环结构可能会好点,在3-4基础上进行优化

#指出c无法参加
print('c can not come.')
#删除c
guest_list.remove('c')
#再次邀请除c之外的宾客
for name in guest_list:
? ? print('Dear ' +name+ ',I would like to invite you to dinner.')
拓展:
#先删除C在通知谁无法参加的话采用pop
#获得无法参加的c在列表中的索引
print(guest_list.index('c'))
#使用pop()方法删除c,因为要表明c无法来
absent_name=guest_list.pop(guest_list.index('c'))
print(absent_name+' can not come.')
for name in guest_list:
? ? print('Dear ' +name+ ',I would like to invite you to dinner.')

3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。以完成练习 3-4 或练习 3-5 时编写的程序为基础,在程序末尾添加一条 print 语句,指出你找到了一个更大的餐桌。使用 insert()将一位新嘉宾添加到名单开头。使用 insert()将另一位新嘉宾添加到名单中间。使用 append()将最后一位新嘉宾添加到名单末尾。打印一系列消息,向名单中的每位嘉宾发出邀请。
沿用3-5的循环,添加到中间的时候需要获取guest_list的len然后除2就是中间位置的索引

guest_list=['a','b','c','d','e']
#把f添加到开头
guest_list.insert(0,'f')
#把g添加到中间
guest_list.insert(int(len(guest_list)/2),'g')
#把h添加到末尾
guest_list.append('h')
for name in guest_list:
? ? print('Dear ' +name+ ',I would like to invite you to dinner.')

3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。以完成练习 3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。使用 pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹
出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。

#首先确定一下3-6之后我们的名单是['f', 'a', 'b', 'g', 'c', 'd', 'e', 'h']
print(guest_list)
#先打印只能邀请俩人的消息
print("I'm sorry I can only have two guests for dinner")
#获得名单总人数用于while循环
number=len(guest_list)
while number>2:
? ? absent_name=guest_list.pop()
? ? number = len(guest_list)
? ? print("Dear "+absent_name+",I'm sorry I can't invite you to dinner.")
#输出只有两个的宾客名单
print(guest_list)
#循环打印邀请消息
for name in guest_list:
? ? print("Dear "+name+" you're still invited to dinner.")
#删除名单
for i in range(2):
? ? del guest_list[0]
#核实确实是空名单
print(guest_list)
上午总结是觉得Python的For循环结构很简洁方便!(更深入的可能是定义变量很方便):for 你需要的变量 in 列表(不太懂这个能不能单纯交列表,就是一个需要的集合)别忘了:,但是相比于其他编程语言(C、C++、Java)感觉可能指定循环次数要复杂一点,然后差了一下是可以用range()函数来创建一个整数列表,贴一下百度到的专业介绍:
range(start, stop[, step])
参数说明:
  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

3-8 放眼世界:想出至少 5 个你渴望去旅游的地方。
将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python 列表。
使用 sorted()按字母顺序打印这个列表,同时不要修改它。
再次打印该列表,核实排列顺序未变。
使用 sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。
再次打印该列表,核实排列顺序未变。
使用 reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
使用 reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
使用 sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
使用 sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。

place_list=['London','DC','New York','Chengdu','Paris']
#原始排列顺序打印
print(place_list)
#使用sorted()按字母顺序打印
print(sorted(place_list))
#再次打印,未改变原始顺序
print(place_list)
#使用sorted()按与字母顺序相反的顺序打印
#是按照字母相反,reverse是把原始列表反过来
print(sorted(place_list,reverse=True))
#再次打印,未改变原始顺序
print(place_list)
#使用reverse()修改列表元素的排列顺序
place_list.reverse()
print(place_list)
#再次修改列表元素的排列顺序,恢复原始顺序
place_list.reverse()
print(place_list)
#使用sort()修改该列表,使其元素按字母顺序排列
place_list.sort()
print(place_list)
#使用sort()修改该列表,使其元素按与字母顺序相反的顺序排列
place_list.sort(reverse=True)
print(place_list)

3-9 晚餐嘉宾:在完成练习 3-4~练习 3-7 时编写的程序之一中,使用 len()打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。

guest_list=['a','b','c','d','e']
number=len(guest_list)
print(str(number)+' were invited')

3-10 尝试使用各个函数:想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。
这个在之前的题目也基本都了解了,等之后遇到了再来回顾

3-11 有意引发错误:如果你还没有在程序中遇到过索引错误,就尝试引发一个这种错误。在你的一个程序中,修改其中的索引,以引发索引错误。关闭程序前,务必消除这个错误。
这个之前有遇到过,在循环删除最后两个宾客的时候,del guest_list[0],一开始的想法是for i in range(2):del guest_list[i],很好理解,就是第一次删除guest_list[0],然后删除guest_list[1],但是忽略了一点就是del删除索引0之后原本的1位置的元素现在的索引是0。guest_list=['f','a'],第一次循环删除guest_list[0],列表只剩['a'],然后第二次循环执行的是del guest_list[1],但是现在的列表是没有guest_list[1]的,显示报错:? ? del guest_list[i]
IndexError: list assignment index out of range

总结一下:主要是列表的使用,不算是很困难,主要的就是有点分不清是列表中的方法还是外部方法,还需要在后续的学习中巩固一下。明天第四章应该会有点慢,没法一天一章了。冲冲冲!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:22:24  更:2021-09-05 11:23:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 14:05:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码