我们今天不学习新的知识点,只处理前一周多留下的作业,大家若是对作业解答有不同见解,都可以留言交流。
作业:
模拟了一个简单的倒计时器,外层循环控制剩余的分钟数,内层循环控制剩余的秒数。
import time# 设置倒计时时间:2分钟minutes = 2seconds = 0# 外层循环:控制分钟while minutes >= 0: # 内层循环:控制秒数 while seconds >= 0: # 格式化输出,保持两位数显示 print(f"\r剩余时间: {minutes:02d}:{seconds:02d}", end="", flush=True) # 等待1秒 time.sleep(1) seconds -= 1 # 当秒数减到负数时,分钟减1,秒数重置为59 minutes -= 1 seconds = 59print("\n时间到!")
代码解释:
外层循环 while minutes >= 0:负责分钟级别的倒计时。
内层循环 while seconds >= 0:负责秒数级别的倒计时,每分钟执行60次(从59秒到0秒)。
print(f"\r剩余时间: ...", end="", flush=True):使用 \r让光标回到行首,实现同一行动态更新显示,end=""避免换行,flush=True确保立即输出。
time.sleep(1):模拟每秒前进一次。
运行这段代码,你会看到终端上显示一个动态更新的倒计时,从2分00秒开始,直到0分00秒,然后输出"时间到!"。
作业:
我们用for循环已经求过0-100的和,今天作业就是使用for循环,求1~100之间所有偶数的和。
方法1:
result = 0for i in range(1, 101): if i % 2 == 0: result += iprint(f'1~100之间所有偶数的和为:{result}')
方法2:
result = 0for i in range(2, 101, 2): # range(1, 101, 2)是1、3、5、7... result += iprint(f'1~100之间所有偶数的和为:{result}')
代码解释:
直接通过range(),将1-101以内的偶数都列出来,再相加。
作业:
写一个程序,要求:
① 让用户亲自输入一个大于1的整数;
② 检查这个数是否是素数,并输出结果。
(科普:素数(也称质数)是指在大于1的自然数中,除了1和它本身之外,无法被其他自然数整除的数。
100以内的素数:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97)
# 检查一个数是否是素数num = int(input("请输入一个大于1的整数: "))# 如果输入的数小于等于1,则不是素数if num > 1: for i in range(2, num): # 如果num能被i整除,则不是素数,跳出循环 if num % i == 0: print(f"{num} 不是素数,因为它能被 {i} 整除。") break else: # 否则继续检查下一个数 continue else: # 如果循环正常结束(即没有break),则说明是素数 print(f"{num} 是素数!")else: print(f"{num} 不是素数。")
代码解释:
① 用户输入:我们使用input()函数获取用户输入,并将其转换为整数;
② 初步判断:如果输入的数小于等于1,则直接判断不是素数;
③ for循环:从2开始到num-1,依次检查这些数是否能整除num。如果发现一个能整除的数,就打印结果并执行break跳出循环。此时,由于循环被中断,else子句不会执行。如果没有找到能整除的数,则循环会正常结束,然后执行else子句,打印该数是素数;
④ continue的使用:当num % i != 0时(即当前i不能整除num),使用continue跳过当前迭代,继续下一个。
作业:
熟悉了小海龟基础后,运用今日所学知识,绘制太阳花。
import turtlepen = turtle.Turtle()pen.speed(0) # 最快速度turtle.bgcolor("black")pen.color("red", "yellow") # 笔色为red,填充色为yellowpen.begin_fill()for _ in range(50): pen.forward(200) pen.left(170) # 左转170度pen.end_fill()pen.hideturtle()turtle.done()
代码解释:
① 每次画一条长200像素的线段,然后左转170度,重复50次;
② begin_fill()和end_fill()方法则会将路径形成的复杂闭合区域填充为黄色,线条为红色,最终在黑色背景上形成一个绚丽的太阳花。
今日学习完毕,课后作业:
有空的小伙伴,可以参考代码运行,还是建议不看着代码自己手打,学习效率更好。明天开始学习新的python知识点。