Fury_Chen 2022-08-24 10:33 采纳率: 100%
浏览 34
已结题

Python print如何将竖排骰子打印成横排

Python print相关类问题 :

请问我现在有一些竖排的字符串内容请问如何能使用print语句将竖排内容横排打印:
比如用户输入[1,2,3]以下竖排骰子将可以横排打印出来


| |
| o |
| |



| |
| o o |
| |



| o |
| o |
| o |


  • 写回答

1条回答 默认 最新

  • 汤卓杰 2022-08-24 10:49
    关注
    1. 将字符串分成list,以\n分隔
    2. 所有list所有元素,得到最长的串max
    3. 遍历所有list所有元素,在字符后加空格,直到长度等于max+1
    4. 一个新list,每项都等于前面list的同索引元素相加
    5. list转字符串,用\n拼接
    max=0; #最长行str长度
    max2=0; #比较每项str行数,取最大行数
    strList=["| |\n| o |\n| |","| |\n| o o |\n| |","| o |\n| o |\n| o |1","测试不同行数的str\n2333"]
    for i in range(len(strList)):
        strList[i]=strList[i].split("\n")
        if max2<len(strList[i]):
            max2=len(strList[i]);
        for item in strList[i]:
            if max<len(item):
                max=len(item)
    
    for i in range(len(strList)):
        for j in range(len(strList[i])):
            l=len(strList[i][j]);
            strList[i][j]=strList[i][j]+" "*(max+1-l)
    
    list2=[None]*max2
    for i in range(max2):
        string=""
        for j in range(len(strList)):
            if len(strList[j])<(i+1):
                string+=" "*(max+1)
            else:
                string+=strList[j][i]
        list2[i]=string
    
    print("\n".join(list2))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 已采纳回答 8月25日
  • 创建了问题 8月24日

悬赏问题

  • ¥15 【matlab】已知功率谱密度反求时域信号
  • ¥15 mindspore项目_模型适配
  • ¥15 openstack使用cinder后,实例运行时分配的总空间不能大于ceph的总空间
  • ¥15 [pcl::PLYWriter::writeASCII] Error during opening (?鶂?)!
  • ¥15 得到XY两轴的数据如何绘制成圆,输入整形器
  • ¥29 PHP读取PDF文件添加多个数字签名
  • ¥25 联邦学习vgg修改最后一个全连接层报错(默认是1000个输出,我的改为11就报错,改为200就没问题)
  • ¥15 maple画图问题,为什么会是这样
  • ¥15 RC522开发arduino作品刷卡失效
  • ¥15 comsol仿真频域研究以及结果处理