Python实现:任务超时后每超10秒扣除1枚用户金币
实现超时扣金币的Python逻辑
核心逻辑很明确:先算出实际耗时超出限时的部分,每满10秒扣除1枚金币,不足10秒的部分不扣。下面是具体实现代码:
# 基础参数设置 initial_coins = 10 time_limit = 40 # 用户完成任务的实际耗时(可替换为任意数值) actual_time = 50 # 计算超出限定时间的时长 over_time = actual_time - time_limit # 计算需要扣除的金币数:超出时间每10秒扣1枚,不足10秒不扣,且扣除数不能为负 coins_deducted = max(0, over_time // 10) # 更新剩余金币,确保金币不会变成负数 final_coins = max(0, initial_coins - coins_deducted) # 输出结果 print(f"实际耗时{actual_time}秒,扣除{coins_deducted}枚金币,剩余金币:{final_coins}")
代码说明
- 参数定义:先明确初始金币、任务限时和实际耗时三个变量,实际耗时可以根据需求动态传入(比如从用户输入获取)
- 超时计算:
over_time得到实际耗时和限时的差值,若实际耗时未超过限时,差值为负数 - 扣除逻辑:用整数除法
//计算超出时长里包含多少个10秒,再通过max(0, ...)确保不会出现负的扣除数(即未超时不扣金币) - 金币保底:最后用
max(0, ...)保证剩余金币不会低于0,避免出现负金币的不合理情况
测试案例
- 当
actual_time=50时,超时10秒,扣除1枚金币,剩余9枚 - 当
actual_time=60时,超时20秒,扣除2枚金币,剩余8枚 - 当
actual_time=45时,超时5秒,扣除0枚金币,剩余10枚 - 当
actual_time=30时,未超时,扣除0枚金币,剩余10枚 - 当
actual_time=140时,超时100秒,扣除10枚金币,剩余0枚
内容的提问来源于stack exchange,提问作者Fusion Developers
相关产品推荐
相关产品推荐

