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日

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码