首页 > 编程语言 >python 中英文对齐

python 中英文对齐

时间:2023-04-13 18:12:56浏览次数:45  
标签:20 中英文 python 11.1 172.17 128 对齐 aligned

python 中英文对齐

代码

def get_len(string: str):
    length = 0
    for ch in string:
        if '\u4e00' <= ch <= '\u9fa5':  # 是中文字符
            length += 2
        else:
            length += 1
    return length


def aligned(string: str, length=10, align_type='<') -> str:
    """

    :param string: 要对齐的字符串
    :param length: 要对齐的长度
    :param align_type: 要对齐的类型
    :return: 对齐后的字符串 用空格补充空白
    """
    len_s = get_len(string)
    if len_s < length:
        if align_type == '>':
            show = ' ' * (length - len_s) + string
        elif align_type == '<':
            show = string + ' ' * (length - len_s)
        else:
            left = int((length - len_s) / 2)
            show = ' ' * left + string + ' ' * (length - left - len_s)
    else:
        raise RuntimeError(f"给定的length应该大于string的长度, {length}<->{string}({len(string)})")
    return show


if __name__ == '__main__':
    data = [['ip', 'core', 'disk', 'memory'],
            ['172.17.11.1', '128', '12349', '50G'],
            ['172.17.11.1', '2654', '1234984', '150G'],
            ['172.17.11.1', '128', '1234933433484', '10240G']]
    for i in data:
        s = aligned(i[0], 20) + aligned(i[1], 20) + aligned(i[2], 20) + aligned(i[3], 20)
        print(s)
    """
    ip                  core                disk                memory              
    172.17.11.1         128                 12349               50G                 
    172.17.11.1         2654                1234984             150G                
    172.17.11.1         128                 1234933433484       10240G   
    """
    print("*"*100)

    data = [['这是IP', '这是核心数core', '这是磁盘disk', '这是内存memory'],
            ['172.17.11.1', '128', '12349', '50G'],
            ['172.17.11.1', '2654', '1234984', '150G'],
            ['172.17.11.1', '128', '1234933433484', '10240G']]
    for i in data:
        s = aligned(i[0], 20) + aligned(i[1], 20) + aligned(i[2], 20) + aligned(i[3], 20)
        # print('"{}""{}""{}""{}"'.format(aligned(i[0], 20),aligned(i[1], 20),aligned(i[2], 20),aligned(i[3], 20)))
        print(s)
    """
    ip                  core                disk                memory              
    172.17.11.1         128                 12349               50G                 
    172.17.11.1         2654                1234984             150G                
    172.17.11.1         128                 1234933433484       10240G   
    """

运行

在cmd中和Linux中都能对齐

image-20230413175449743

但是在pycharm中对不齐

image-20230413175556043

参考链接

标签:20,中英文,python,11.1,172.17,128,对齐,aligned
From: https://www.cnblogs.com/rainbow-tan/p/17315925.html

相关文章

  • 基于pip的python包管理工具
    以下是软件下载链接:https://mysecreat.lanzoub.com/i5yvf0swgtne软件功能:可以对python包进行安装、卸载、升级、换源等操作,不用输入复杂命令源码:importosdefmenu():while(True):choice=input("1.安装2.卸载3.升级4.查看5.换源\n请输入:")if(choice==......
  • python面试题-2023(面试)
    1.python中有哪些可变类型与不可变类型?可变:list、dict、set不可变:tuple、str、整型(int、float、complex)注意:可变对象可以在原来地址上修改元素,不可变则不行(即不能在自己身上增删改),若要修改可以使用对象拼接赋值给新的对象,总之不能修改自身       参考链......
  • 跟着查老四学Python Day 8:面向对象编程
    面向对象编程基本概念日常寒暄之后,查老四开始讲课了查老四:好的,我会尽量满足你的要求。现在我们开始第一节:面向对象编程。面向对象编程(Object-OrientedProgramming,简称OOP)是一种编程范式,它提倡将现实世界中的事物抽象为程序中的类(Class)和对象(Object),通过封装(Encapsulation)、继承(Inhe......
  • 跟着查老四学Python Day 9:继承和多态
    继承例行寒暄之后,课程正式开始查老四:继承是面向对象编程中的一个重要概念。它允许我们创建一个新类,继承一个现有类的属性和方法,从而实现代码的重用。新类被称为子类,现有类被称为父类。在Python中,通过在子类名后的括号中写入父类名来实现继承。下面是一个简单的示例#父类classAni......
  • 跟着查老四学Python Day 11:类的高级特性
    学习类的特殊方法例行寒暄之后,查老四开始了几天的课程查老师:1.学习类的特殊方法,例如__init__、__str__、__repr__等Python中的类可以具有一些特殊方法,这些方法具有双下划线前缀和后缀,例如__init__、__str__和__repr__等。它们在特定情况下被自动调用。__init__:当创建类的实例时,会......
  • 跟着查老四学Python Day 11:常用 Python 库
    Python库概览例行寒暄之后,查老四就开始授课了老猫:请大致介绍一下Python库查老四:Python库是一组预先编写好的模块或函数,它们可以实现特定功能或解决特定问题。Python有许多库,它们覆盖了各种不同的领域和应用。以下是一些常用Python库的简要介绍:NumPy:一个用于处理数组和矩阵运算的......
  • Python网络爬虫学习实战:爬虫快速入门
    很多同学私信问爬虫的相关教程,想了想,还是专门跟大家出些Python爬虫学习相关的教程,从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站的爬虫实战来进行。我们编写网络爬虫最主要的目的是爬......
  • Python Xlwings 同时选择/删除 多个不连续的列
    找了很多次答案最终结果确定如下先调用api.Range选择多列然后删除sht.api.Range("C:E,G:H").Delete()https://blog.csdn.net/weixin_39608134/article/details/111820149https://m.656463.com/wenda/xuanzezhenggelie_568删除单列或连续多列就很简单了不需要调用api也可以sht[......
  • python compile函数用法
    将文本代码编译成Python可执行代码,这个代码对象可以通过eval()或exec()函数执行。compile()函数的语法如下:compile(source,filename,mode,flags=0,dont_inherit=False,optimize=-1)参数说明:source:必选.必须是一个字符串,表示要编译的代码。filename:必选? 表示......
  • Graphs with Python: Overview and Best Libraries
    GraphswithPython:OverviewandBestLibrariesGraphanalysis,interactivevisualizations,andgraphmachinelearning Agraphisarelativelyoldmathematicaldataentitythatisasetofconnectedelements.Sincethegraphisaveryflexiblestructure......