一、课程介绍
本节课将学习 for 循环与 if 判断的嵌套,实现更为复杂的逻辑,最终完成一个测试两个人是否契合的程序。
二、重难点解析
len()
使用 len() 方法可以获取一个列表的元素个数,我们也把列表的元素个数称为列表长度。
l = [0, 1, 2, 3]
print(len(l))
for 与 if 嵌套
for 循环与 if 判断可以互相嵌套使用,注意缩进的使用。
示例1:
for 循环
if 判断
示例2:
if 判断
for 循环
循环结构中嵌套使用分支结构时,每次循环都会进行 if 判断,根据判断结果选择执行对应的代码。
for 循环
if 判断
代码示例:
for i in range(10):
if i >= 5:
print(1)
else:
print(2)
分支结构中嵌套循环结构时,先进行 if 判断,如果成立就会执行内部的 for 循环。
if 判断
for 循环
代码示例:
a = 1
b = 2
if a < b:
for i in range(3):
print(1)
else:
print(2)
三、单词卡
question [ˈkwestʃən] 问题
answer [ˈænsər] 回答
choice [tʃɔɪs] 选择
score [skɔːr] 分数
四、小试牛刀
4.1 源码操作
实现一个可以多次进行计算的计算器,可以不断输入任意两个数字和一个算术运算符,使得两个数字进行此运算符对应的数学运算。
比如第一次可以输入 3、+、2,会计算出 3+2 的结果为 5;第二次可以输入 4、-、2,会计算出 4-2 的结果为 2。
for i in range(100):
num1 = int(input('请输入第一个数字:'))
symbol = input('请输入运算符(+、-、*、/):')
num2 = int(input('请输入第二个数字:'))
if symbol == '+':
print(num1+num2)
elif symbol == '-':
print(num1-num2)
elif symbol == '*':
print(num1*num2)
elif symbol == '/':
print(num1/num2)
else:
print('你输入的运算符错误')
print('---------------------------------------')
4.2 源码操作
实现一个猜数字的游戏。先随机获取一个指定范围(比如 1 到 10)内的整数,然后给 5 次机会猜这个数字。如果猜的数字比答案的整数小,则打印 '低了';如果猜的数字比答案的整数大,则打印 '高了';如果相等,则打印 '猜对了'。
import random
num = random.randint(1, 10)
for i in range(5):
choice = int(input('请输入你猜的数字:'))
if choice < num:
print('低了')
elif choice > num:
print('高了')
else:
print('猜对了')
五、扩展练习
import turtle
shapes = ['契合0.gif','契合1.gif','契合2.gif','契合3.gif','契合4.gif','契合5.gif']
for i in shapes:
turtle.addshape(i)
p = turtle.Pen()
p.shape('契合0.gif')
questions = []
answers = []
questions.append('喜欢吃烧烤还是海鲜:')
answers.append('海鲜')
questions.append('喜欢喝柠檬红茶还是乌龙茶:')
answers.append('柠檬红茶')
questions.append('喜欢吃巧克力还是糖果:')
answers.append('糖果')
questions.append('喜欢游泳还是打羽毛球:')
answers.append('游泳')
questions.append('喜欢美术还是体育:')
answers.append('美术')
score = 0
for i in range(len(questions)):
question = questions[i]
answer = answers[i]
choice = input(question)
if choice == answer:
print('喜好相同')
score = score + 1
p.shape(shapes[score])
else:
print('喜好不同')
print(score)
turtle.done()
六、大开脑洞
import turtle
import random
p = turtle.Pen()
for i in range(10):
p.penup()
x = random.randint(-100, 100)
y = random.randint(-100, 100)
p.goto(x, y)
p.pendown()
choice = random.randint(1, 2)
if choice == 1:
for j in range(4):
p.forward(100)
p.left(90)
elif choice == 2:
p.forward(100)
p.left(90)
p.forward(50)
p.left(90)
p.forward(100)
p.left(90)
p.forward(50)
p.left(90)
p.ht()
turtle.done()