Python如何实现每隔1秒打印一个*,总时长由用户输入指定
实现方案
需要用到Python标准库中的time.sleep()方法实现秒级等待,不需要安装第三方依赖。
基础实现版本
完全匹配需求逻辑,适合初学者快速上手:
import time # 获取用户输入的总运行时长 total_time = int(input("enter time:...")) # 循环次数等于总时长,每轮等待1秒后打印星号 for _ in range(total_time): time.sleep(1) print("*")
代码说明:
time.sleep(1)会让程序暂停1秒后再执行后续代码- 循环执行次数和输入的总时长相等,刚好可以打印对应数量的星号,总运行时间和输入的数值基本一致
可选调整
如果你希望所有星号打印在同一行而非每行一个,可以修改print语句的参数,同时开启强制刷新避免输出缓存:
print("*", end="", flush=True)
鲁棒性优化版本
新增输入合法性校验,避免用户输入非整数、负整数时程序报错:
import time # 循环校验输入合法性 while True: try: total_time = int(input("enter time:...")) if total_time <= 0: print("请输入正整数作为运行时长") continue break except ValueError: print("输入不合法,请输入整数") for _ in range(total_time): time.sleep(1) print("*")
内容的提问来源于stack exchange,提问作者Miguel Dichoso
相关产品推荐
相关产品推荐

