一、课程介绍
本节课将结合前面所学知识,实现在地图上规划最佳救援路线,找到在森林中走丢的四只精灵并安全抵达出口。
二、知识点
- 复习 if...elif...else... 条件语句
- 复习 and
- 复习 for、if 嵌套
三、单词卡
start [stɑːrt] 开始
end [end] 终止
step [step] 步
order ['ɔːrdər] 命令
四、小试牛刀
4.1 源码操作
阳光小学举行了一场趣味投篮赛。在规定的时间内,投中数量大于30个,获得“神射手”称号;投中数量大于20个,小于等于30个,获得“获得超级射手”称号;投中数量大于10个,小于等于20个,获得“射手”称号;小于等于10个,获得“新手”称号。
要求:
运行程序后,要求输入投中数量;
根据输入的投篮数量,输出对应的称号;
每个判断条件中,不能使用 and 或 or;
输入范例如下所示。
num = int(input("请输入投中数量:"))
if num > 30:
print("获得神射手称号")
elif num > 20:
print("获得超级射手称号")
elif num > 10:
print("获得射手称号")
else:
print("获得新手称号")
4.2 考考你
小明想实现一个简易的网站登录提示代码,仅当账号和密码分别为xiaoming和123时,才显示登录成功。以下哪个选项的代码符合要求?
A
user = input("请输入账号:")
password = input("请输入密码:")
if user=="xiaoming" and password=="123":
print("登录成功")
else:
print("账号或密码错误")
B
user = input("请输入账号:")
password = input("请输入密码:")
if user=="codemao" and password==123:
print("登录成功")
else:
print("账号或密码错误")
C
user = input("请输入账号:")
password = input("请输入密码:")
if user=="codemao" or password=="123":
print("登录成功")
else:
print("账号或密码错误")
答案:A
解析:分析题目可知,账号和密码要同时输入正确才判断登录成功,所以两个条件需要用 and 连接,故A选项正确,而C选项错误。
又因密码通过input输入后默认保存为字符串数据(带引号的数据),所以在判断时需将其与字符串"123"进行比较,故B选项错误。
五、扩展练习
import turtle
start = [-300, -250]
end = [300, 250]
x = [-250, -150, 100, 50]
y = [100, -150, -100, 0]
turtle.bgpic('森林地图.gif')
p = turtle.Pen()
p.speed(20)
p.penup()
p.goto(start[0],start[1])
p.dot(40,'yellow')
p.goto(end[0],end[1])
p.dot(40,'green')
for i in range(4):
p.goto(x[i],y[i])
p.dot(40,'red')
turtle.addshape('阿短.gif')
p.shape('阿短.gif')
p.goto(start[0],start[1])
step = 34
d = 50
n = 0
p_x = start[0]
p_y = start[1]
p.pendown()
for i in range(step):
print('剩余步数:',step - i)
order = input('请输入要移动的方向,w上、s下、a左、d右:')
if order == 'w':
p_y = p_y +d
elif order == 's':
p_y = p_y -d
elif order == 'a':
p_x = p_x -d
elif order == 'd':
p_x = p_x +d
else:
print('浪费机会,剩余步数减一')
p.goto(p_x,p_y)
for j in range(4):
if p_x == x[j] and p_y == y[j]:
n = n + 1
if p_x == end[0] and p_y ==end[1]:
if n ==4:
print('救援任务圆满完成!')
else:
print('尚有精灵未救出,救援任务失败')
else:
print('未抵达出口,迷失在迷雾森林')
turtle.done()
六、大开脑洞
新一代智能计算器出炉啦,不妨来试试?
print('------新一代智能计算器-------')
a = input('加?减?乘?除?:')
b = int(input('输入第一个数:'))
c = int(input('输入第二个数:'))
if a == '加':
print(b+c)
elif a == '减':
print(b-c)
elif a == '乘':
print(b*c)
else:
print(b/c)
print('-------谢谢使用~下次见!-------')