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日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵