【Python3】练习二

4 阅读3分钟

sleep

题目 暂停一秒输出

import time
# 循环4次
for i in range(4):
    # 打印当前时间的后两位
    print(str(int(time.time()))[-2:])
    # 休眠1秒
    time.sleep(1)

time.time() 是 Python 标准库 time 模块中的一个函数,用于获取当前时间的时间戳。

实现原理

time.time() 返回的是当前时间的时间戳,即从1970年1月1日00:00:00(也称为“Unix纪元”或“Epoch”)到当前时间的秒数。这个时间戳是一个浮点数,表示秒数,并且通常包含小数部分,用于表示更精确的时间。

用途

性能测量:可以通过记录代码执行前后的时间戳来计算代码的执行时间。 时间间隔计算:可以用来计算两个事件之间的时间间隔。 时间戳生成:可以用来生成一个唯一的时间戳,用于日志记录、数据标记等。

注意事项

时区问题:time.time() 返回的是UTC时间的时间戳,不考虑本地时区。 精度问题:虽然 time.time() 返回的是秒数,但它通常包含小数部分,以提供更高的时间精度。但在某些系统上,精度可能受到限制。 系统时钟调整:如果系统时钟被手动调整,使用 time.time() 计算的时间间隔可能会不准确

import time

# 获取当前时间的时间戳
current_time = time.time()
print("当前时间的时间戳:", current_time)

# 计算代码执行时间
start_time = time.time()
# 模拟一些操作
time.sleep(2)
end_time = time.time()
execution_time = end_time - start_time
print("代码执行时间(秒):", execution_time)

输出

当前时间的时间戳: 1704178730.837637
代码执行时间(秒): 2.000020980834961

时间显示

题目 暂停一秒输出,并格式化当前时间

import time

# 循环4次
for i in range(4):
    # 打印当前时间
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
    # 等待1秒
    time.sleep(1)

下面是代码的详细解释:

time.time():获取当前时间的时间戳,即从1970年1月1日00:00:00开始按秒计算的偏移量。 time.localtime(time.time()):将时间戳转换为本地时间的结构化时间(struct_time对象)。 time.strftime('%Y-%m-%d %H:%M:%S', ...):将结构化时间格式化为指定的字符串格式。

养兔子

题目 有一只兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

# 输入繁殖几个月
month=int(input('繁殖几个月?: '))
# 初始化1月兔、2月兔、3月兔和成年兔的数量
month_1=1
month_2=0
month_3=0
month_elder=0
# 循环每个月
for i in range(month):
    # 更新每个月兔子的数量
    month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
    # 输出每个月兔子的数量
    print('第%d个月共'%(i+1),month_1+month_2+month_3+month_elder,'对兔子')
    print('其中1月兔:',month_1)
    print('其中2月兔:',month_2)
    print('其中3月兔:',month_3)
    print('其中成年兔:',month_elder)

在Python中,%d 是一种旧的字符串格式化方法,用于将整数插入到字符串中。它属于百分号格式化(也称为旧式字符串格式化)的一部分。这种格式化方法使用百分号 (%) 作为占位符,后面跟一个格式说明符来指定如何格式化值。

具体来说,%d 中的 d 表示十进制整数。当你使用 %d 时,它会被替换为后面提供的整数值。

例如:

name = "Alice"
age = 30
formatted_string = "My name is %s and I am %d years old." % (name, age)
print(formatted_string)

在这个例子中,%s 是一个字符串占位符,%d 是一个整数占位符。% (name, age) 部分提供了要插入到字符串中的实际值。运行这段代码会输出:

My name is Alice and I am 30 years old.