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

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日

悬赏问题

  • ¥20 如何在visual studio 2022中添加ImageMagick库
  • ¥50 如何实现uniapp编译的微信小程序做可回溯视频
  • ¥15 求Houdini使用行家,付费。价格面议。
  • ¥15 前端高拍仪调用问题报错
  • ¥15 想用octave解决这个数学问题
  • ¥15 Centos新建的临时ip无法上网,如何解决?
  • ¥15 海康威视如何实现客户端软件对设备语音请求的处理。
  • ¥15 支付宝h5参数如何实现跳转
  • ¥15 MATLAB代码补全插值
  • ¥15 Typegoose 中如何使用 arrayFilters 筛选并更新深度嵌套的子文档数组信息