《Python少儿编程》同步训练答案

时间:22-10-27 网友
第1章 走进Python编程世界

1.选择题

(1)C (2)B (3)C (4)C (5)A

2.简答题

(1)Python具有简单易学、免费开源、类库丰富、可扩展、解释性、可移植性和可嵌入性等特点。

(2)Python的应用领域包括Web开发、网络爬虫、人工智能、数据分析、自动化运营、游戏开发等。

3.编程题

(1)

print(' 静夜思')

print(' ——李白')

print('窗前明月光,')

print('疑是地上霜。')

print('举头望明月,')

print('低头思故乡。')

(2)

print(' i-i-i-i-i')

print(' *****************')

print(' | :H-a-p-p-y: |')

print('~~~~~~~~~~~~~~~~~~~~~~')

print('| :B-i-r-t-h-d-a-y: |')

print('**********************')

(3)

print(' * * * *')

print('* ** *')

print('* *')

print(' * *')

print(' **')

第2章 Python编程世界的基础

1.选择题

(1)B (2)B (3)A (4)A (5)D

2.填空题

(1)字母、数字和下划线 数字

(2)9

(3)399.7

(4)False

(5)True False

3.编程题

(1)

name = input('请输入姓名:')

age = int(input('请输入年龄:'))

address = input('请输入地址:')

print(name, '今年', age, '岁,', '地址是', address, '。')

(2)

price = float(input('请输入商品价格:'))

amount = int(input('请输入商品数量:'))

total_price = price * amount

print('商品总价为:', total_price)

(3)

weight = float(input('请输入您的体重(kg):'))

height = float(input('请输入您的身高(m):'))

BMI = weight / (height * height)

print('您的BMI值为:', BMI)

(4)

episode = '东胜神洲傲来国海边有一花果山,山顶一石,承受日月精华,产下一个石猴。' \

'石猴在花果山做了众猴之王,为求长生,出海求仙,在西牛贺洲拜菩提祖师为师。' \

'祖师为其取法名孙悟空,并授予七十二般变化及翻筋斗云之法。' \

'孙悟空回到花果山,占山为王,号为美猴王。' \

'苦于无兵刃,遂去东海龙宫求取,龙王及兄弟送他一支如意金箍棒及一身披挂。' \

'孙悟空又去幽冥界把自己的名字从生死簿上勾掉。' \

'龙王,地藏王上天庭告状,太白金星建议招安孙悟空,玉帝准奏。'

print('唐僧' in episode)

print('孙悟空' in episode)

print('齐天大圣' in episode)

第3章 神奇的分支和循环

1.选择题

(1)A (2)A (3)C (4)D (5)A

2.填空题

(1)24

(2)20 10 10

(3)① a > b ② b = t

(4)15

3.编程题

(1)

weight = float(input('请您输入行李的重量:'))

if weight < 0:

print('您输入的数据有误!')

elif weight <= 20:

print('您可以免费托运行李!')

elif weight <= 30:

price = (weight - 20) * 5

print('您的托运费用为', price, '元!')

elif weight <= 40:

price = (30 - 20) * 5 + (weight - 30) * 10

print('您的托运费用为', price, '元!')

elif weight <= 50:

price = (30 - 20) * 5 + (40 - 30) * 10 + (weight - 40) * 15

print('您的托运费用为', price, '元!')

else:

print('您托运的行李超出了最高上限,不允许托运!')

(2)

for cock in range(0, 20 + 1): #鸡翁范围在0到20之间

for hen in range(0, 33+1): #鸡母范围在0到33之间

for biddy in range(3, 99 + 1): #鸡雏范围在3到99之间

if (5 * cock + 3 * hen + biddy / 3) == 100: #判断钱数是否等于100

if (cock + hen + biddy) == 100: #判断购买的鸡数是否等于100

if biddy % 3 == 0: #判断鸡雏数是否能被3整除

print('鸡翁:', cock, '鸡母:', hen, '鸡雏:', biddy) #输出

(3)

i = 2

while i < 100: #循环范围为2~100

j = 2

while j < i: #循环范围为2~i

if i % j == 0: #如果i能整除j,i不是素数

break #跳出循环

j = j + 1

if j == i: #范围为2~i的循环结束后,如果j等于i,说明i为素数

print(i) #输出素数

i = i + 1

(4)

for i in range(1, 10): #循环范围为1~9

for j in range(10 - i): #循环范围为0~9-i

print(end=' ') #以空格结尾,不换行

for k in range(10 - i, 10): #循环范围为10-i~9

print('*', end=' ') #以空格结尾,不换行

print('') #换行

第4章 形形色色的数据容器

1.选择题

(1)C (2)B (3)A (4)A (5)B (6)C

2.填空题

(1)helloworld d llo hlod lrowolleh

(2)PYTHON STRING python string 10 Python Strgni

(3)小括号 中括号

(4)8

(5){'name': None, 'age': None, 'weight': None, 'height': None}

(6)for value in num_dict.values():

3.编程题

(1)

flag = True #定义回文串标志,赋初值为True

checkStr = input('请输入要检测的字符串:')

low = 0 #定义首字符的索引

high = len(checkStr) - 1 #定义尾子符的索引

while low < high:

#检测首尾两个字符是否相等

if checkStr[low] != checkStr[high]:

flag = False

low += 1

high -= 1

if flag:

print('“{}”是回文串。'.format(checkStr))

else:

print('“{}”不是回文串。'.format(checkStr))

(2)

dictCourse = {'吕红': '数据库',

'周婷': '线性代数',

'肖扬': 'Python',

'李娟': '数据库',

'丁锦': '英语',

'周玲玲': 'Java'}

dictCourse['赵红'] = 'Java' #增加一条信息赵红讲授Java

dictCourse['周玲玲'] = 'Python' #周玲玲改为讲授Python

dictCourse.pop('周婷') #删除周婷授课信息

print('********课程安排信息********')

for teacher, course in dictCourse.items():

print(teacher, course)

print('******所有讲授Python的教师******')

for teacher, course in dictCourse.items():

if course == 'Python':

print(teacher, end=' ')

(3)

dict1 = {'小蓝': [123456, 0], '小明': [12345678, 0]} #定义字典用于存储用户信息

while True: #开始循环

name = input('请输入用户名:') #输入用户名

password = int(input('请输入密码:')) #输入密码

if name not in dict1.keys(): #如果输入的用户名不在字典中

print('该用户名不存在') #输出提示语

continue #结束本次循环

if dict1[name][1] == 2: #如果次数大于2

print('3次密码错误,该用户名已被锁定') #输出被锁定提示信息

break #跳出循环

if password == dict1[name][0]: #如果输入的密码正确

print('登录成功') #输出登录成功提示语

break #跳出循环

else: #密码输入错误

print('用户名或密码错误') #输出提示语

dict1[name][1] += 1 #次数加1

(4)

strs = input('请输入一个字符串:') #输入字符串

setStrs = set(strs) #将字符串转换为集合,去重

listStrs = list(setStrs) #将集合转换为列表

listStrs.sort() #将列表按升序排序

for x in listStrs: #输出列表中的所有字符

print(x, end='')

第5章 强大的函数积木

1.选择题

(1)C (2)C (3)A (4)D (5)B (6)D (7)C (8)A

2.填空题

(1)逗号

(2)return

(3)不定长

(4)嵌套

(5)局部

(6)global

(7)7 5

(8)5 4

(9)1 3 4

(10)1

3.编程题

(1)

def narcissistic(n):

b = int(n / 100) #计算百位数

s = int((n - 100 * b) / 10) #计算十位数

g = n % 10 #计算个位数

if n == g ** 3 + s ** 3 + b ** 3: #判断数字的立方和是否等于该数本身

return '{}是水仙花数'.format(n)

else:

return '{}不是水仙花数'.format(n)

num = int(input('请输入一个3位整数:'))

print(narcissistic(num))

(2)

def hano(n, x, y, z): #n表示层数,x表示起始柱、y表示辅助柱、z表示目标柱

if n == 1:

print(x, '->', z)

else:

hano(n-1, x, z, y) #将n-1个盘子从x->y

print(x, '->', z) #将剩余的最后一个盘子从x->z

hano(n-1, y, x, z) #将剩余的n-1个盘子从y->z

n = int(input('请输入汉诺塔的层数:'))

hano(n, 'A', 'B', 'C')

(3)

'''compute.py,定义函数实现加、减、乘、除计算'''

def add(x, y): #定义加法方法

print('{} + {} = {}'.format(x, y, x + y))

def sub(x, y): #定义减法方法

print('{} - {} = {}'.format(x, y, x - y))

def Multiplication(x, y): #定义乘法方法

print('{} * {} = {}'.format(x, y, x * y))

def division(x, y): #定义除法方法

if y == 0:

print('除数不能为0!')

else:

print('{} / {} = {}'.format(x, y, x / y))

'''编程题_3.py,导入compute模块,调用函数计算输入的两个数的和、差、乘和除结果'''

import compute

x = float(input('请输入第一个数:'))

y = float(input('请输入第二个数:'))

compute.add(x, y)

compute.sub(x, y)

compute.Multiplication(x, y)

compute.division(x, y)

第6章 会画画的“小海龟”

1.选择题

(1)A (2)D (3)C (4)C (5)A

2.填空题

(1)设置画笔颜色为红色,填充颜色为黄色

(2)begin_fill() end_fill()

(3)dot(50,'Red')

(4)forward(distance) fd(distance)

(5)画笔移动到(90,0)坐标,然后左转90度

3.编程题

(1)

import turtle as t #导入turtle模块为t

def polygon(n, length): #绘制正n边形,边长为length

for i in range(n): #循环n次

t.forward(length) #前进length

t.left(360 / n) #左转角度为正n边形的外角

n = int(input('请输入边数:')) #输入边数

length = int(input('请输入边长:')) #输入边长

polygon(n, length)

t.done()

(2)

import turtle as t

t.pensize(2) #设置笔画宽度

#绘制半边黑色图形

t.begin_fill()

t.circle(100, 180)

t.seth(0)

t.circle(-50, 180)

t.circle(50, 180)

t.end_fill()

#绘制半边白色图形

t.seth(180)

t.circle(-100, 180)

#绘制黑白两个圆点

t.penup()

t.goto(0, 50)

t.pendown()

t.dot(20, 'White')

t.penup()

t.goto(0, 150)

t.pendown()

t.dot(20, 'Black')

t.hideturtle() #隐藏画笔

t.done() #完成

(3)

import turtle as t

t.pensize(3) #设置画笔宽度

def drawCircle(x, y, c): #绘制一个圆,参数为x、y坐标和画笔颜色

t.pu() #抬起画笔

t.goto(x, y) #移动到圆的起始位置

t.pd() #落下画笔

t.color(c) #设置画笔颜色为c

t.circle(30) #绘制半径为30的圆

drawCircle(0, 0, 'Blue') #绘制蓝色圆

drawCircle(60, 0, 'Black') #绘制黑色圆

drawCircle(120, 0, 'Red') #绘制红色圆

drawCircle(90, -30, 'Green') #绘制绿色圆

drawCircle(30, -30, 'Yellow') #绘制黄色圆

t.ht() #隐藏画笔

t.done() #完成

(4)

import turtle as t

#初始化设置

t.screensize(400, 300)

t.pensize(4) #设置画笔的粗细

t.colormode(255) #设置GBK颜色范围为0-255

t.color((255, 155, 192), 'pink') #设置画笔颜色和填充颜色(pink)

t.setup(840, 500) #设置主窗口的大小为840*500

t.speed(10) #设置画笔速度为10

def nose(): #绘制鼻子

t.pu() #提笔

t.goto(-100, 100) #画笔前往坐标(-100,100)

t.pd() #下笔

t.seth(-30) #笔的角度为-30°

t.begin_fill() #外形填充的开始标志

a = 0.4

for i in range(120):

if 0 <= i < 30 or 60 <= i < 90:

a = a + 0.08

t.lt(3) #向左转3度

t.fd(a) #向前走a的步长

else:

a = a - 0.08

t.lt(3)

t.fd(a)

t.end_fill() #依据轮廓填充

t.pu() #提笔

t.seth(90) #笔的角度为90度

t.fd(25) #向前移动25

t.seth(0) #转换画笔的角度为0

t.fd(10)

t.pd()

t.pencolor(255, 155, 192) #设置画笔颜色

t.seth(10)

t.begin_fill()

t.circle(5) #画一个半径为5的圆

t.color(160, 82, 45) #设置画笔和填充颜色

t.end_fill()

t.pu()

t.seth(0)

t.fd(20)

t.pd()

t.pencolor(255, 155, 192)

t.seth(10)

t.begin_fill()

t.circle(5)

t.color(160, 82, 45)

t.end_fill()

def head(): #绘制头

t.color((255, 155, 192), 'pink')

t.pu()

t.seth(90)

t.fd(41)

t.seth(0)

t.fd(0)

t.pd()

t.begin_fill()

t.seth(180)

t.circle(300, -30) #顺时针画一个半径为300,圆心角为30°的圆

t.circle(100, -60)

t.circle(80, -100)

t.circle(150, -20)

t.circle(60, -95)

t.seth(161)

t.circle(-300, 15)

t.pu()

t.goto(-100, 100)

t.pd()

t.seth(-30)

a = 0.4

for i in range(60):

if 0 <= i < 30 or 60 <= i < 90:

a = a + 0.08

t.lt(3) #向左转3度

t.fd(a) #向前走a的步长

else:

a = a - 0.08

t.lt(3)

t.fd(a)

t.end_fill()

def ear(): #绘制耳朵

t.color((255, 155, 192), 'pink')

t.pu()

t.seth(90)

t.fd(-7)

t.seth(0)

t.fd(70)

t.pd()

t.begin_fill()

t.seth(100)

t.circle(-50, 50)

t.circle(-10, 120)

t.circle(-50, 54)

t.end_fill()

t.pu()

t.seth(90)

t.fd(-12)

t.seth(0)

t.fd(30)

t.pd()

t.begin_fill()

t.seth(100)

t.circle(-50, 50)

t.circle(-10, 120)

t.circle(-50, 56)

t.end_fill()

def eye(): #绘制眼睛

t.color((255, 155, 192), 'white')

t.pu()

t.seth(90)

t.fd(-20)

t.seth(0)

t.fd(-95)

t.pd()

t.begin_fill()

t.circle(15)

t.end_fill()

t.color('black')

t.pu()

t.seth(90)

t.fd(12)

t.seth(0)

t.fd(-3)

t.pd()

t.begin_fill()

t.circle(3)

t.end_fill()

t.color((255, 155, 192), 'white')

t.pu()

t.seth(90)

t.fd(-25)

t.seth(0)

t.fd(40)

t.pd()

t.begin_fill()

t.circle(15)

t.end_fill()

t.color('black')

t.pu()

t.seth(90)

t.fd(12)

t.seth(0)

t.fd(-3)

t.pd()

t.begin_fill()

t.circle(3)

t.end_fill()

def cheek(): #绘制腮

t.color((255, 155, 192))

t.pu()

t.seth(90)

t.fd(-95)

t.seth(0)

t.fd(65)

t.pd()

t.begin_fill()

t.circle(30)

t.end_fill()

def mouth(): #绘制嘴

t.color(239, 69, 19)

t.pu()

t.seth(90)

t.fd(15)

t.seth(0)

t.fd(-100)

t.pd()

t.seth(-80)

t.circle(30, 40)

t.circle(40, 80)

def body(): #绘制身体

t.color('red', (255, 99, 71))

t.pu()

t.seth(90)

t.fd(-20)

t.seth(0)

t.fd(-78)

t.pd()

t.begin_fill()

t.seth(-130)

t.circle(100, 10)

t.circle(300, 30)

t.seth(0)

t.fd(230)

t.seth(90)

t.circle(300, 30)

t.circle(100, 3)

t.color((255, 155, 192), (255, 100, 100))

t.seth(-135)

t.circle(-80, 63)

t.circle(-150, 24)

t.end_fill()

def hand(): #绘制手

t.color((255, 155, 192))

t.pu()

t.seth(90)

t.fd(-40)

t.seth(0)

t.fd(-27)

t.pd()

t.seth(-160)

t.circle(300, 15)

t.pu()

t.seth(90)

t.fd(15)

t.seth(0)

t.fd(0)

t.pd()

t.seth(-10)

t.circle(-20, 90)

t.pu()

t.seth(90)

t.fd(30)

t.seth(0)

t.fd(237)

t.pd()

t.seth(-20)

t.circle(-300, 15)

t.pu()

t.seth(90)

t.fd(20)

t.seth(0)

t.fd(0)

t.pd()

t.seth(-170)

t.circle(20, 90)

def foot(): #绘制脚

t.pensize(10)

t.color((240, 128, 128))

t.pu()

t.seth(90)

t.fd(-75)

t.seth(0)

t.fd(-180)

t.pd()

t.seth(-90)

t.fd(40)

t.seth(-180)

t.color('black')

t.pensize(15)

t.fd(20)

t.pensize(10)

t.color((240, 128, 128))

t.pu()

t.seth(90)

t.fd(40)

t.seth(0)

t.fd(90)

t.pd()

t.seth(-90)

t.fd(40)

t.seth(-180)

t.color('black')

t.pensize(15)

t.fd(20)

def tail(): #绘制尾巴

t.pensize(4)

t.color((255, 155, 192))

t.pu()

t.seth(90)

t.fd(70)

t.seth(0)

t.fd(95)

t.pd()

t.seth(0)

t.circle(70, 20)

t.circle(10, 330)

t.circle(70, 30)

nose() #鼻子

head() #头

ear() #耳朵

eye() #眼睛

cheek() #腮

mouth() #嘴

body() #身体

hand() #手

foot() #脚

tail() #尾巴

t.done()

第7章 神秘的类和对象

1.选择题

(1)C (2)A (3)B (4)C (5)A (6)B (7)A (8)C (9)C (10)B

2.填空题

(1)class

(2)self

(3)对象名 类名 对象名

(4)基类或父类 子类或派生类

(5)私有

(6)super() 父类名.方法名()

(7)@classmethod

(8)重写

3.编程题

(1)

class Car:

def __init__(self, brand, color, productPlace): #初始化品牌、颜色和产地

self.brand = brand

self.color = color

self.productPlace = productPlace

def detail(self): #输出汽车的相关信息

temp = '品牌:{}, 颜色:{}, 产地:{}' .format(self.brand, self.color, self.productPlace)

print(temp)

#创建对象,并调用detail()方法输出汽车相关信息

HongQi = Car('红旗', '黑色', '中国')

BMW = Car('宝马', '白色', '德国')

Chevrolet = Car('雪佛兰', '红色', '美国')

HongQi.detail()

BMW.detail()

Chevrolet.detail()

(2)

import math

class PlaneGraphics(): #定义平面图形父类PlaneGraphics

def __init__(self, shape):

self.shape = shape

def area(self): #定义计算面积方法area()

pass

def show(self): #定义显示面积方法show()

print('{}面积为{}'.format(self.shape, self.area()))

class Rectangle(PlaneGraphics): #定义长方形类Rectangle继承PlaneGraphics类

def __init__(self, lenght, width):

super().__init__('长方形')

self.lenght = lenght

self.width = width

def area(self): #重写area()方法,返回长方形面积

return self.lenght * self.width

class Eclipse(PlaneGraphics): #定义长方形类Eclipse继承PlaneGraphics类

def __init__(self, radius_a, radius_b):

super().__init__('椭圆形')

self.radius_a = radius_a

self.radius_b = radius_b

def area(self): #重写area()方法,返回椭圆形面积

return math.pi * self.radius_a * self.radius_b

r = Rectangle(10, 20)

r.show()

e = Eclipse(10, 20)

e.show()

(3)

class Interest:

def __init__(self, name, age, sex):

self.name = name

self.age = age

self.sex = sex

def chinese(self):

print('{},{}岁,{},喜欢上语文课'.format(self.name, self.age, self.sex))

def moive(self):

print('{},{}岁,{},喜欢看电影'.format(self.name, self.age, self.sex))

def basketball(self):

print('{},{}岁,{},喜欢打篮球'.format(self.name, self.age, self.sex))

lili = Interest('丽丽', 10, '女')

lili.chinese()

lili.moive()

lili.basketball()

qiangqiang = Interest('强强', 12, '男')

qiangqiang.chinese()

qiangqiang.moive()

qiangqiang.basketball()

(4)

class Person:

def __init__(self, na, gen, age, fig):

self.name = na

self.gender = gen

self.age = age

self.fight =fig

def grassland(self):

print('{}参加一次草丛战斗,消耗200战斗力'.format(self.name))

self.fight = self.fight - 200

def practice(self):

print('{}自我修炼一次,增长100战斗力'.format(self.name))

self.fight = self.fight + 100

def incest(self):

print('{}参加多人游戏一次,消耗500战斗力'.format(self.name))

self.fight = self.fight - 500

def detail(self):

temp = '姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s' % (self.name, self.gender, self.age, self.fight)

print(temp)

#创建人物

xiaoA = Person('小A', '女', 18, 1000) #创建小A

xiaoB = Person('小B', '男', 20, 1800) #创建小B

xiaoC = Person('小C', '女', 19, 2500) #创建小C

#输出所有人初始的详细情况

xiaoA.detail()

xiaoB.detail()

xiaoC.detail()

xiaoA.incest() #小A参加一次多人游戏

xiaoB.practice() #小B自我修炼了一次

xiaoC.grassland() #小C参加一次草丛战斗

#输出所有人当前的详细情况

xiaoA.detail()

xiaoB.detail()

xiaoC.detail()

(5)

class Animal(object):

def __init__(self, color):

self.color = color #定义颜色变量

def move(self): #定义叫方法

print('动物动作')

class Fish(Animal):

def __init__(self, color, type):

super().__init__(color) #调用父类的方法

self.type = type

def move(self):

print('{}的{}在吐泡泡'.format(self.color, self.type)) #访问父类的变量

fish = Fish('红色', '金鱼')

fish.move()

第8章 永久存储的文件

1.选择题

(1)D (2)B (3)C (4)A (5)B (6)B (7)C (8)A

2.填空题

(1)close()

(2)列表

(3)tell()

(4)file.seek(10,0)

(5)os.getcwd()

3.编程题

(1)

file = open('1.txt', 'r') #打开文件

content = file.read() #读取文件

list_1 = content.split() #将文件内容使用空格隔开

for i in range(len(list_1)): #将字符串列表转换为整数列表

list_1[i] = int(list_1[i])

list_1.sort() #升序排序

print(list_1)

file.close()

(2)

with open('2.txt', 'w') as file: #打开文件写入

string = input('请输入字符串:\n') #输入字符串

string = string.upper() #将字符串转换为大写

file.write(string) #将字符串写入文件

(3)

with open('a.txt') as file1, open('b.txt') as file2, open('c.txt', 'w') as file3:#同时打开3个文件

string1 = file1.read() #从file1中读取内容赋给string1

string2 = file2.read() #从file2中读取内容赋给string2

string3 = string1 + string2 #将string1和string2连接赋给string3

file3.write(string3) #将string3写入file3

(4)

import os.path #导入os.path模块

path = os.getcwd() + '\\Test' #获取Test文件路径

if not os.path.exists(path): #判断Test文件是否存在,如果不存在则新建

os.mkdir(path)

os.chdir(path) #切换到Test目录

for i in range(10): #新建10个文件夹

name = '\\test' + str(i + 1)

os.mkdir(path + name)

path1 = os.path.split(path)[0] #获取Test文件夹所在目录

for filename in os.listdir(path1): #获取所有文件和文件夹并输出

print(filename)

(5)

import time

def writeNote(): #写便签方法

date = time.localtime() #获取当地时间

date = time.strftime('%Y-%m-%d %H:%M:%S', date) #将时间转换为指定格式字符串

word = input('请输入便签内容:')

with open('note.txt', 'a') as file:

file.write(date + '\t' + word + '\n')

def queryNote(): #查询便签方法

str = input('请输入要查询的文字:')

with open('note.txt') as file:

while True:

line = file.readline() #读取便签信息

if line == '': #如果信息为空

break #跳出循环

if str in line: #如果查询问文字在便签中则输出

print(line, end='')

def showNote():

with open('note.txt') as file:

while True:

line = file.readline() #读取便签信息

if line == '': #如果信息为空

break #跳出循环

print(line, end='') #输出便签信息

print('===============便签本============')

while True:

choice = input('1:写便签,2:查询便签,3:浏览全部便签,q:退出系统\n')

if choice == 'q':

print('退出电子便签')

break

if choice == '1':

writeNote()

elif choice == '2':

queryNote()

elif choice == '3':

showNote()

第9章 一起捉bug

1.选择题

(1)B (2)C (3)C (4)D (5)A (6)B (7)B (8)A

2.填空题

(1)IndexError

(2)assert

(3)except

(4)raise

(5)出错啦!

文件已经关闭!

3.编程题

(1)

while True:

try:

c = input('请输入一个小写字符:')

if len(c) == 1: #如果字符的长度为1

if 'a' <= c and c <= 'z': #如果字符为小写字母

print(c) #输出字符

break #跳出循环

else:

raise Exception('应输入小写字符')#抛出异常

else:

raise Exception('只需输入一个字符') #抛出异常

except Exception as e: #捕获异常

print(e)

(2)

class LessZeroException(Exception):

def __init__(self, value):

self.value = value

def __str__(self):

return '电量应大于0,输入的电量是{}'.format(self.value)

def ElectricityBill(count):

if count <= 0: #如果count小于0,抛出自定义异常

raise LessZeroException(count)

elif count <= 240: #计算count小于等于240的bill

bill = count * 0.50;

elif count <= 400: #计算count小于等于400的bill

bill = 240 * 0.50 + (count - 240) * 0.53;

else: #计算count大于400的bill

bill = 240 * 0.50 + 160 * 0.53 + (count - 400) * 0.78;

return bill

while True:

try:

count = int(input('请输入用电度数:'))

bill = ElectricityBill(count)

print('本月电费为{}元'.format(bill))

print('本月电费与用电量的比值为', bill / count)

break

except ValueError:

print('输入的电量应为整数!')

except LessZeroException as e:

print(e)

(3)

while True:

try:

player1 = int(input('请用户1输入:0(剪刀) 1(石头) 2(布):'))

#断言player1必须是0,1或2,如果不是抛出异常

assert player1 >= 0 and player1 < 3, 'player1必须是0,1或2'

player2 = int(input('请用户2输入:0(剪刀) 1(石头) 2(布):'))

#断言player2必须是0,1或2,如果不是抛出异常

assert player2 >= 0 and player2 < 3, 'player2必须是0,1或2'

#用户1所有能获胜的判断条件

if ((player1 == 0) and (player2 == 2)) or ((player1 == 1) and (player2 == 0)) \

or ((player1 == 2) and (player2 == 1)):

print('用户1获得胜利') #输出“用户1获得胜利”

elif player1 == player2: #用户1输入与用户2相同时

print('平局,再来一局') #输出“平局,再来一局”

else: #用户2获胜

print('用户2获得胜利') #输出“用户2获得胜利”

break #跳出循环

except AssertionError as e:

print(e)

第10章 玩游戏不如自己开发游戏

1.选择题

(1)D (2)B (3)B (4)A (5)B

2.填空题

(1)Surface

(2)pygame.QUIT

(3)pygame.display.update()

3.编程题

(1)

import pygame, sys #导入模块

pygame.init() #初始化pygame

screen = pygame.display.set_mode((400,300)) #设置窗口的大小,单位为像素

pygame.display.set_caption('Drawing') #设置窗口标题

#定义颜色

BLACK = (0, 0, 0)

WHITE = (255, 255, 255)

#设置背景颜色

screen.fill(WHITE)

pygame.draw.circle(screen, BLACK, [200, 150], 30)

#程序主循环

while True:

#获取事件并遍历

for event in pygame.event.get():

#如果为退出事件

if event.type == pygame.QUIT:

pygame.quit() #退出pygame

sys.exit() #退出系统

pygame.display.update() #刷新绘图

(2)

import pygame, sys #导入模块

pygame.init() #初始化pygame

FPS = 30 #设置帧率

fpsClock = pygame.time.Clock() #创建时钟对象

#设置窗口大小

screen = pygame.display.set_mode((500, 400))

pygame.display.set_caption('动画') #设置窗口标题

WHITE = (255, 255, 255) #定义颜色

img = pygame.image.load('images\\球.png') #加载图片

sound = pygame.mixer.Sound('sounds\\peng.wav') #创建音效对象

imgx, imgy = 10, 10 #初始化图片的位置

direction = 'right' #初始化图片的移动方向

while True: #循环

screen.fill(WHITE) #背景填充为白色

if direction == 'right': #如果图片向右移动

imgx += 5 #图片x坐标加5

if imgx == 420: #如果图片x坐标等于420

direction = 'down' #设置方向为向下

sound.play() #播放音效

elif direction == 'down': #如果图片向下移动

imgy += 5 #图片y坐标加5

if imgy == 320: #如果图片y坐标等于320

direction = 'left' #设置方向为向左

sound.play() #播放音效

elif direction == 'left': #如果图片向左移动

imgx -= 5 #图片x坐标减5

if imgx == 0: #如果图片x坐标等于0

direction = 'up' #设置方向为向上

sound.play() #播放音效

elif direction == 'up': #如果图片向上移动

imgy -= 5 #图片y坐标减5

《《Python少儿编程》同步训练答案》相关文档:

少儿舞蹈兴趣小组活动计划通用09-15

少儿英语培训学习心得精选范文5篇202309-22

做少儿艺术培训策划方案09-24

社区暑期少儿活动方案七篇09-27

少儿才艺大赛活动方案10-06

少儿绘画比赛活动策划方案范文10-10

少儿节目主持词稿3分钟(精选)10-10

少儿演讲与口才教材10-15

2021少儿美术促销策划方案5篇10-20

少儿美术培训策划书10-20

Top