You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASCII字符日期显示换行问题求助(竞赛限定time库)

ASCII日期艺术字符并排显示修复方案

问题描述

编写的ASCII日期程序需要输出日/月的艺术字符,但当前字符总是自动换行,无法并排显示;尝试print(one, end='')无效,且竞赛限制仅能使用time库(原代码用了datetime,需要替换)。

问题根源

当前每个数字的ASCII艺术是包含换行符的完整字符串,打印时会直接输出所有换行,导致两个数字上下排列而非并排。必须按行拆分数字艺术,逐行拼接对应行后打印才能实现并排。

解决方案代码

import time

# ASCII标题(可选保留)
today_date = '   _____        _              _      ___      _____      _    _ \n  |_   _|__  __| |__ _ _  _ __( )___ |   \ __ |_   _|__  (_)__(_)\n    | |/ _ \/ _` / _` | || (_-</(_-< | |) / _` || |/ -_) | (_-<_ \n    |_|\___/\__,_\__,_|\_, /__/ /__/ |___/\__,_||_|\___| |_/__(_)\n                       |__/                                      '

# 每个数字的ASCII艺术按行拆分为列表,确保每行长度一致
digits = {
    '0': ['   __  ', '  /  \\ ', ' | () |', '  \\__/ '],
    '1': ['  _    ', ' / |   ', ' | |   ', ' |_|   '],
    '2': ['  ___  ', ' |_  ) ', '  / /  ', ' /___| '],
    '3': [' ____  ', ' |__ / ', '  |_ \\ ', ' |___/ '],
    '4': ['  _ _  ', ' | | | ', ' |_  _|', '   |_| '],
    '5': ['  ___  ', ' | __| ', ' |__ \\ ', ' |___/ '],
    '6': ['   __  ', '  / /  ', ' / _ \\ ', ' \\___/ '],
    '7': ['  ____ ', ' |__  |', '   / / ', '  /_/  '],
    '8': ['  ___  ', ' ( _ ) ', ' / _ \\ ', ' \\___/ '],
    '9': ['  ___  ', ' / _ \\ ', ' \\_, / ', '  /_/  ']
}

# 使用time库获取当前日期
current_time = time.localtime()
day = f"{current_time.tm_mday:02d}"  # 日,补零为两位
month = f"{current_time.tm_mon:02d}"  # 月,补零为两位
dt_string = day + month
print("date and time =", dt_string)

# 获取日和月的每一位数字对应的ASCII行
day_digits = [digits[day[0]], digits[day[1]]]
month_digits = [digits[month[0]], digits[month[1]]]

# 逐行拼接打印:日的两位 + 分隔 + 月的两位
for line in range(4):
    day_line = day_digits[0][line] + ' ' + day_digits[1][line]
    month_line = month_digits[0][line] + ' ' + month_digits[1][line]
    print(f"{day_line}    {month_line}")

关键修改点

  • 替换datetime为time库:用time.localtime()获取日期信息,符合竞赛限制。
  • 重构数字定义:将每个数字的ASCII艺术拆分为行列表,保证每行长度统一,方便拼接。
  • 逐行打印逻辑:循环遍历每一行,把日的两位数字对应行、月的两位数字对应行分别拼接后整行输出,实现并排效果。
  • 修正原代码错误:原代码中dt_string[0] == 0的判断逻辑错误,重构后通过字典直接索引避免此类问题。

内容的提问来源于stack exchange,提问作者Ian Keh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:30:32