一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。
声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。
第十六关 for循环
练习:打印20以内的偶数
请用 for 循环 和 条件判断 的知识编写一段代码,按顺序输出 0-20 之间(包括 0 和 20)的所有偶数(除以 2 余数为 0 则为偶数)。
提示:要记得正确缩进代码块哦~
for i in range(21):
x =int(i / 2)
ifi / 2 > x:
print(i + 1)
最初用的print(i),结果打出来的是奇数,于是我改成了i+1,能打出正确的结果,但是系统反馈是和要求不一致。这里少了一个0,0是偶数,所以答案说不符合题意
这里x是i除以2的结果的取整,如果i/2大于x,说明i不能被2整除啊,然后打印出i+1,因为i+1肯定就能被2整除,就是偶数了。
这个判断偶数的方法来自群里一位网友的思路,黄帮主说也可以。
for i in range(21):
if i % 2 == 0: 这里表示,i被2整除,余数为0。
print(i)
以下这个也可以:
for i in range(0, 21, 2):
print(i)
编程是很灵活的,很多时候并非只有唯一解。只要能实现目标,代码怎么写都可以。首先得先能写出符合要求的代码,之后再考虑如何写得更好!
练习:挑出低于60的分数
语文考试刚考完,语文老师让会编程的小贝帮她统计一下分数,将分数低于60 的筛选出来。但小贝最近贪玩没有好好学编程,你来运用列表生成式的知识帮帮小贝吧。
scores = [91, 4, 20, 67, 24, 13, 84, 40,77, 47]
low_scores =[x for x in scores if x < 60] #列表生成式,三个部分放在一起,不用标点
print(low_scores)
注意:
表达是x、for循环 for x in
scores、条件语句if x<60 这三个部分之间都不用任何标点,空格即可,加上标点就成了坏输入了。
这样也可以
scores = [91, 4, 20, 67, 24, 13, 84, 40,77, 47]
y = []
for i in scores: 最后有英文冒号
if i < 60: 最后有英文冒号如果不是列表生成式,不可以放一起,否则会报错。
y.append(i)
print(y)
练习:存钱吃大餐
小贝最近想存 100 块钱去吃一顿大餐,但小贝每次只能存 5-10 元(每次金额随机)。你能写段代码在小贝每次存钱时提示小贝已经存了多少钱,并在存款大于等于 100 时提醒小贝钱存够了吗?(小贝现存款为 0)
from random import randint
y = []
# 使用 randint(5, 10)随机生成 5-10 之间的数(包括 5 和 10)
whilei < 100:
x = randint(5, 10)
y.append(x)
i = i + x
if i >= 100:
break
print('钱存够了,可以去吃大餐了')
print(y)
结果是
钱存够了,可以去吃大餐了
[9, 7, 8, 6, 9, 9, 7, 9, 5, 9, 5, 7, 9, 8]
这个程序结果是正确的,每次运行之后结果都不一样,但是都是元素和大于100,符合题意
但是看过答案之后,我的思路和答案一是一样的。
但是我的程序中了解多余了,比如
i = 0
while i < 100:
x =randint(5, 10)
y.append(x)
i =i + x
if i >= 100:
break
i < 100和i>=100两个条件重复了,去掉一个if、break条件也可以的。
答案中,while会永远执行,所以加入一个条件判断,来终止循环。
而在答案一种,由于已经有了判断条件,所以就不需要break终止的语句了。
练习:要不要停车检查
最近正严厉打击黑恶势力,所有过往的车辆都需要停车检查,执行公务的救护车🚑 和警车🚔 除外。现在排着一列车队等待接受检查,请你写一段程序来判断车辆是否需要接受检查。如果需要车辆需要检查,输出 xxx 请停车接受检查。如果不需要则输出 xxx 放行,并跳过后续检查步骤。
cars = ['小汽车', '救护车', '大卡车', '警车', '公交车']
for i in cars:
ifi == '救护车' or i == '警车':
print(i + '放行')
continue
print(i + '请停车接受检查')
结果是:
小汽车请停车接受检查
救护车放行
大卡车请停车接受检查
警车放行
公交车请停车接受检查
练习:小蝌蚪找妈妈
小蝌蚪找妈妈的故事你小时候一定听过,接下来我们用 for 循环 的知识编写小蝌蚪找妈妈的故事。
要求:
使用 for 循环 遍历animals;
每次循环都在屏幕上打印 请问你是我妈妈吗?;
当遇到 青蛙 时打印 青蛙:我是你妈妈 并结束循环,遇到其他动物时则打印 xxx:我不是你妈妈(xxx 为具体动物名)。
animals = ['鸭', '鱼', '乌龟', '鹅', '青蛙', '虾', '鳄鱼']
for animal in animals:
print('请问你是我的妈妈吗?')
ifanimal == '青蛙':
print('青蛙:我是你的妈妈')
break
print(animal + ':我不是你的妈妈')
最初忘记了每次循环都打印“请问你是我的妈妈吗?”这个条件,后来看答案补上了。
例子:九九乘法表 嵌套
for i in range(1, 10):
for j in range(1,i + 1):
# \t是制表符,用来对齐。end 默认是 \n,打印后会换行,end='' 可以防止换行
print(str(j) +'×' + str(i) + '=' + str(i * j) + '\t', end='')
#打印完一行后换行
print('')
# 输出:
# 1×1=1
# 1×2=2 2×2=4
# 1×3=3 2×3=6 3×3=9
# 1×4=4 2×4=8 3×4=12 4×4=16
# 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
# 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
# 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
# 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
# 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

网友评论