精华内容
下载资源
问答
  • python自动排版
    2021-04-27 10:46:02

    想了解python Autopep8实现按PEP8风格自动排版Python代码的相关内容吗,Data_IT_Farmer在本文为您仔细讲解python Autopep8自动排版的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,Autopep8自动排版,python,Autopep8,下面大家一起来学习吧。

    Autopep8是一个将Python代码自动排版为PEP8风格的小工具。它使用pep8工具来决定代码中的哪部分需要被排版。Autopep8可以修复大部分pep8工具中报告的排版问题。

    参考网址:

    (1)安装步骤如下:

    localhost:~ a6$ sudo pip install autopep8

    Password:

    The directory '/Users/a6/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

    The directory '/Users/a6/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

    Collecting autopep8

    Collecting pycodestyle>=2.3 (from autopep8)

    Downloading pycodestyle-2.3.1-py2.py3-none-any.whl (45kB)

    100% |████████████████████████████████| 51kB 324kB/s

    Installing collected packages: pycodestyle, autopep8

    Successfully installed autopep8-1.3.3 pycodestyle-2.3.1

    localhost:~ a6$ sudo pip install autopep8

    The directory '/Users/a6/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

    The directory '/Users/a6/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

    Requirement already satisfied: autopep8 in /Library/Python/2.7/site-packages

    Requirement already satisfied: pycodestyle>=2.3 in /Library/Python/2.7/site-packages (from autopep8)

    (2)示例代码:

    1)运行命令前代码的排版 (保存在test_autopep8.py)

    import math, sys;

    def example1():

    ####This is a long comment. This should be wrapped to fit within 72 characters.

    some_tuple=( 1,2, 3,'a' );

    some_variable={'long':'Long code lines should be wrapped within 79 characters.',

    'other':[math.pi, 100,200,300,9876543210,'This is a long string that goes on'],

    'more':{'inner':'This whole logical line should be wrapped.',some_tuple:[1,

    20,300,40000,500000000,60000000000000000]}}

    return (some_tuple, some_variable)

    def example2(): return {'has_key() is deprecated':True}.has_key({'f':2}.has_key(''));

    class Example3( object ):

    def __init__ ( self, bar ):

    #Comments should have a space after the hash.

    if bar : bar+=1; bar=bar* bar ; return bar

    else:

    some_string = """

    Indentation in multiline strings should not be touched.

    Only actual code should be reindented.

    """

    return (sys.path, some_string)

    2)运行命令

    bogon:AB a6$ autopep8 --in-place --aggressive --aggressive test_autopep8.py

    3)运行命令后代码的排版

    import math

    import sys

    def example1():

    # This is a long comment. This should be wrapped to fit within 72

    # characters.

    some_tuple = (1, 2, 3, 'a')

    some_variable = {

    'long': 'Long code lines should be wrapped within 79 characters.',

    'other': [

    math.pi,

    100,

    200,

    300,

    9876543210,

    'This is a long string that goes on'],

    'more': {

    'inner': 'This whole logical line should be wrapped.',

    some_tuple: [

    1,

    20,

    300,

    40000,

    500000000,

    60000000000000000]}}

    return (some_tuple, some_variable)

    def example2(): return ('' in {'f': 2}) in {'has_key() is deprecated': True};

    class Example3(object):

    def __init__(self, bar):

    # Comments should have a space after the hash.

    if bar:

    bar += 1

    bar = bar * bar

    return bar

    else:

    some_string = """

    Indentation in multiline strings should not be touched.

    Only actual code should be reindented.

    """

    return (sys.path, some_string)

    相关文章

    更多相关内容
  • 上节python办公自动化:自动打开word文档我们一起学会了在python里打开并保存一个word文档。这节我们将会学会如何利用python进行文本处理和将其在word里进行排版等技巧。python进行文本处理和将其在word里进行排版等...

    上节python办公自动化:自动打开word文档我们一起学会了在python里打开并保存一个word文档。这节我们将会学会如何利用python进行文本处理和将其在word里进行排版等技巧。

    0244362446-0.jpg

    python进行文本处理和将其在word里进行排版等技巧

    使用文本

    要有效地处理文本,首先要了解一些块级元素(如段落)和内联级对象(如运行),这一点很重要。

    块级与内联文本对象

    该段落是Word中的主要块级对象。

    块级项目在其左右边缘之间流动包含的文本,每次文本超出其右边界时添加一条附加行。对于段落,边界通常是页边距,但如果页面按列布局,它们也可以是列边界,如果段落出现在表格单元格内,则它们也可以是单元格边界。

    表也​​是块级对象。

    内联对象是在块级项目内发生的内容的一部分。一个例子是以粗体显示的单词或全部大写的句子。最常见的内联对象是运行。块容器中的所有内容都在内联对象内。通常,段落包含一个或多个运行,每个运行包含段落文本的某些部分。

    块级项目的属性指定其在页面上的位置,例如段落前后的缩进和空格。内联项的属性通常指定内容显示的字体,如字体,字体大小,粗体和斜体。

    段落属性

    段落具有各种属性,用于指定其在容器(通常是页面)中的位置以及将其内容划分为单独行的方式。

    通常,最好定义将这些属性收集到有意义的组中的段落样式,并将适当的样式应用于每个段落,而不是将这些属性直接重复应用于每个段落。这类似于层叠样式表(CSS)如何与HTML一起使用。此处描述的所有段落属性都可以使用样式设置,也可以直接应用于段落。

    使用段落属性可用的对象 访问段落的格式属性 。

    水平对齐(对齐)

    也称为对齐,可以使用枚举值将段落的水平对齐设置为左对齐,居中对齐,右对齐或完全对齐(在左侧和右侧对齐) :

    >>> from docx.enum.text import WD_ALIGN_PARAGRAPH

    >>> document = Document()

    >>> paragraph = document.add_paragraph()

    >>> paragraph_format = paragraph.paragraph_format

    >>> paragraph_format.alignment

    None # indicating alignment is inherited from the style hierarchy

    >>> paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

    >>> paragraph_format.alignment

    CENTER (1)

    缩进

    缩进是段落与其容器边缘之间的水平空间,通常是页边距。段落可以在左侧和右侧分别缩进。第一行也可以具有与段落其余部分不同的缩进。第一行缩进比段落的其余部分缩进了第一行缩进。缩进的第一行有一个悬挂缩进。

    压痕被指定使用的值,诸如,,或 。负值有效并导致段落与保证金重叠指定的金额。值为None表示从样式层次结构继承的缩进值。分配None到缩进属性将删除任何直接应用的缩进设置,并从样式层次结构中恢复继承:

    >>> from docx.shared import Inches

    >>> paragraph = document.add_paragraph()

    >>> paragraph_format = paragraph.paragraph_format

    >>> paragraph_format.left_indent

    None # indicating indentation is inherited from the style hierarchy

    >>> paragraph_format.left_indent = Inches(0.5)

    >>> paragraph_format.left_indent

    457200

    >>>paragraph_format.left_indent.inches

    0.5

    右侧缩进以类似的方式工作:

    >>> from docx.shared import Pt

    >>> paragraph_format.right_indent

    None

    >>> paragraph_format.right_indent = Pt(24)

    >>> paragraph_format.right_indent

    304800

    >>> paragraph_format.right_indent.pt

    24.0

    使用属性指定第一行缩进, 并相对于左缩进进行解释。负值表示悬挂缩进:

    >>> paragraph_format.first_line_indent

    None

    >>> paragraph_format.first_line_indent = Inches(-0.25)

    >>> paragraph_format.first_line_indent

    -228600

    >>> paragraph_format.first_line_indent.inches

    -0.25

    制表符

    制表位确定段落文本中制表符的呈现。特别是,它指定制表符后面的文本将开始的位置,它将如何与该位置对齐,以及一个可选的引导字符,它将填充由制表符跨越的水平空间。

    段落或样式的制表位包含在使用以下属性 访问的对象中:

    >>> tab_stops = paragraph_format.tab_stops

    >>> tab_stops

    使用以下方法添加新的制表位:

    >>> tab_stop = tab_stops.add_tab_stop(Inches(1.5))

    >>> tab_stop.position

    1371600

    >>> tab_stop.position.inches

    1.5

    对齐默认为左,但可以通过提供枚举的成员来指定 。leader字符默认为空格,但可以通过提供 枚举的成员来指定:

    >>> from docx.enum.text import WD_TAB_ALIGNMENT, WD_TAB_LEADER

    >>> tab_stop = tab_stops.add_tab_stop(Inches(1.5), WD_TAB_ALIGNMENT.RIGHT, WD_TAB_LEADER.DOTS)

    >>> print(tab_stop.alignment)

    RIGHT (2)

    >>> print(tab_stop.leader)

    DOTS (1)

    使用序列语义访问现有制表位:

    >>>tab_stops[0]

    更多详细信息是可用和API文档

    段间距

    的和 属性控制随后的段落之间的间隔,前后段落,控制间隔分别。间段间距折叠页面布局中,这意味着两个段落之间的间距是最大的的 space_after为第一段和space_before第二段的。段落间距指定为值,通常使用 :

    >>> paragraph_format.space_before, paragraph_format.space_after

    (None, None) # inherited by default

    >>> paragraph_format.space_before = Pt(18)

    >>> paragraph_format.space_before.pt

    18.0

    >>> paragraph_format.space_after = Pt(12)

    >>> paragraph_format.space_after.pt

    12.0

    行间距

    行间距是段落行中后续基线之间的距离。行间距可以指定为绝对距离或相对于行高(基本上是所用字体的点大小)。典型的绝对衡量标准是18分。典型的相对测量是双倍间距(2.0线高)。默认行间距是单行间距(1.0行高)。

    行间距由和 属性的相互作用控制 。 line_spacing是值,a(小ish)或None。甲值表示的绝对距离。A 表示行数高度。None表示行间距是继承的。line_spacing_rule是枚举的成员或None:

    >>> from docx.shared import Length

    >>> paragraph_format.line_spacing

    None

    >>> paragraph_format.line_spacing_rule

    None

    >>> paragraph_format.line_spacing = Pt(18)

    >>> isinstance(paragraph_format.line_spacing, Length)

    True

    >>> paragraph_format.line_spacing.pt

    18.0

    >>> paragraph_format.line_spacing_rule

    EXACTLY (4)

    >>> paragraph_format.line_spacing = 1.75

    >>> paragraph_format.line_spacing

    1.75

    >>> paragraph_format.line_spacing_rule

    MULTIPLE (5)

    分页属性

    四个段落属性,, , ,和 的段落如何表现近页边界控制方面。

    导致整个段落出现在同一页面上,如果否则会在两个页面中断开,则在段落之前发出分页符。

    将段落保留在与后续段落相同的页面上。例如,这可用于将节标题保留在与节的第一段相同的页面上。

    导致段落放在新页面的顶部。这可以在章节标题上使用,以确保章节从新页面开始。

    打破页面以避免将段落的第一行或最后一行放在与段落其余部分不同的页面上。

    这些属性的所有四个都是三态,这意味着他们可以采取的价值 True,False或None。None表示属性值是从样式层次结构继承的。True表示"开启",False表示"关闭":

    >>> paragraph_format.keep_together

    None # all four inherit by default

    >>> paragraph_format.keep_with_next = True

    >>> paragraph_format.keep_with_next

    True

    >>> paragraph_format.page_break_before = False

    >>> paragraph_format.page_break_before

    False

    应用字符格式

    在运行级别应用字符格式。示例包括字体字体和大小,粗体,斜体和下划线。

    一个对象有一个只读提供访问属性的对象。run的对象提供了获取和设置该运行的字符格式的属性。

    这里提供了几个例子。有关完整的可用属性集,请参阅API文档。

    可以像这样访问运行的字体:

    >>> from docx import Document

    >>> document = Document()

    >>> run = document.add_paragraph().add_run()

    >>> font = run.font

    字体和大小设置如下:

    >>> from docx.shared import Pt

    >>> font.name = 'Calibri'

    >>> font.size = Pt(12)

    许多字体属性是三态,这意味着他们可以采取的价值观 True,False和None。True表示该物业处于"开启"状态,表示该物业处于False"关闭"状态。从概念上讲,该None值意味着"继承"。样式继承层次结构中存在运行,并且默认情况下从该层次结构继承其字符格式。使用该对象直接应用的任何字符格式都会覆盖继承的值。

    大胆和斜体都是三态属性,如全帽,删除线,上标等等。有关完整列表,请参阅API文档:

    >>> font.bold, font.italic

    (None, None)

    >>> font.italic = True

    >>> font.italic

    True

    >>> font.italic = False

    >>> font.italic

    False

    >>> font.italic = None

    >>> font.italic

    None

    下划线是一种特殊情况。它是三态属性和枚举值属性的混合体。True意味着单一下划线,是迄今为止最常见的。False意味着没有下划线,但None如果不想要下划线,通常是正确的选择。其他形式的下划线(如double或dashed)是使用 枚举的成员指定的:

    >>> font.underline

    None

    >>> font.underline = True

    >>> # or perhaps

    >>> font.underline = WD_UNDERLINE.DOT_DASH

    字体颜色

    每个对象都有一个对象,可以通过其只读属性访问其颜色。

    将特定RGB颜色应用于字体:

    >>> from docx.shared import RGBColor

    >>> font.color.rgb = RGBColor(0x42, 0x24, 0xE9)

    通过指定枚举的成员,还可以将字体设置为主题颜色 :

    >>> from docx.enum.dml import MSO_THEME_COLOR

    >>> font.color.theme_color = MSO_THEME_COLOR.ACCENT_1

    通过分配None以下属性或 属性,可以将字体的颜色恢复为其默认(继承)值 :

    >>>font.color.rgb = None

    确定字体的颜色首先要确定其颜色类型:

    >>>font.color.type

    RGB (1)

    属性的值可以是枚举的成员,也可以是 None。MSO_COLOR_TYPE.RGB表示它是RGB颜色。MSO_COLOR_TYPE.THEME表示主题颜色。 MSO_COLOR_TYPE.AUTO表示其值由应用程序自动确定,通常设置为黑色。(此值相对较少。)None 表示未应用颜色,颜色从样式层次结构继承; 这是最常见的情况。

    当颜色类型为MSO_COLOR_TYPE.RGB时,该 属性将是一个指示RGB颜色的值:

    >>>font.color.rgb

    RGBColor(0x42, 0x24, 0xe9)

    当颜色类型是MSO_COLOR_TYPE.THEME,该 属性将是成员 指示主题颜色:

    >>> font.color.theme_color

    ACCENT_1 (5)

    学了这么多有趣的自动化排版知识,接下来,我们对章节的操作来进行学习。

    展开全文
  • Python|图形排版

    千次阅读 2021-01-14 09:02:57
    假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版:1. 该工具会按照图片顺序,在宽度 M 以内,将尽可能多的图片排在一行。该行的高度是行内最高的图片的高度。例如在 M=10 的纸张上依次...

    问题描述

    小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi。

    假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版:

    1. 该工具会按照图片顺序,在宽度 M 以内,将尽可能多的图片排在一行。该行的高度是行内最高的图片的高度。例如在 M=10 的纸张上依次打印 3x4, 2x2, 3x3 三张图片,则效果如下图所示,这一行高度为4。(分割线以上为列标尺,分割线以下为排版区域;数字组成的矩形为第x张图片占用的版面)

    0123456789

    ----------

    111

    111 333

    11122333

    11122333

    2. 如果当前行剩余宽度大于0,并且小于下一张图片,则下一张图片会按比例缩放到宽度为当前行剩余宽度(高度向上取整),然后放入当前行。例如再放入一张4x9的图片,由于剩余宽度是2,这张图片会被压缩到2x5,再被放入第一行的末尾。此时该行高度为5:

    0123456789

    ----------

    44

    111    44

    111 33344

    1112233344

    1112233344

    3. 如果当前行剩余宽度为0,该工具会从下一行开始继续对剩余的图片进行排版,直到所有图片都处理完毕。此时所有行的总高度和就是这 N 张图片的排版高度。例如再放入11x1, 5x5, 3x4 的图片后,效果如下图所示,总高度为11:

    0123456789

    ----------

    44

    111    44

    111 33344

    1112233344

    1112233344

    5555555555

    66666

    66666777

    66666777

    66666777

    66666777

    现在由于排版高度过高,图片的先后顺序也不能改变,小明只好从 N 张图片中选择一张删除掉以降低总高度。他希望剩余N-1张图片按原顺序的排版高度最低,你能求出最低高度是多少么?

    【输入格式】

    第一行包含两个整数 M 和 N,分别表示纸张宽度和图片的数量。

    接下来 N 行,每行2个整数Wi, Hi,表示第 i 个图大小为 Wi*Hi。

    (对于30%的数据,满足1<=N<=1000,

    对于100%的数据,满足1<=N<=100000,1<=M, Wi, Hi<=100)

    【输出格式】

    一个整数,表示在删除掉某一张图片之后,排版高度最少能是多少。

    【样例输入】

    4 3

    2 2

    2 3

    2 2

    【样例输出】

    2

    【样例解释】

    纸张宽度是4,要排版3张图片,其规格(宽*高)分别是“2*2”、“2*3”、“2*2”;在删除第二张“2*3”图片后,效果如下所示,高度为2:

    1122

    1122

    另一个示例,

    【样例输入】

    2 10

    4 4

    4 3

    1 3

    4 5

    2 1

    2 3

    5 4

    5 3

    1 5

    2 4

    【样例输出】

    17解决方案

    思路很简单:要找到最低的高度,我们将输入的图片,依次删除一次,即求出每张图片删除后的排版高度,再取其中最低的即可。

    示例代码:import math#导入库,方便ceil函数向上取整

    M,N=map(int,input().split(' '))

    d=[]

    for i in range(N):

    d.append(list(map(int,input().split(' '))))

    e=[]

    for iii in range(len(d)):

    a=d[0:iii]+d[iii+1:] #按顺序每次去掉一个图片格式

    b,c=[],[]

    m=M #M宽度会随图片的排版而减少,先设定一个固定宽度值,方便开启新一层排版

    x=len(a)

    for i in a:#按序遍历列表

    x-=1

    if i[0]<=M:#有空间直接装下

    M-=i[0]

    b.append(i[1])#将高度存入b,方便取最大高度

    if M==0:#存在不需要压缩就可装下的情况

    c.append(max(b))#将最大高度存入c列表

    b=[]#本层最大高度已取出,前往下一层

    M=m #本层宽度用完,前往下一层

    else:#没空间压缩挤下

    s=i[0]/M

    f=i[1]

    f=math.ceil(f/s)#向上取整

    M=m

    b.append(f)

    c.append(max(b))

    b=[]

    if x==0:#存在最后空间未占满的情况

    if len(b)==0:#存在最后一个强行挤下,但此时执行了前面else的操作,b为空集

    pass

    else:

    c.append(max(b))

    e.append(sum(c))#将所有情况的高度收集

    print(min(e))#输出所有情况的最低高度

    运行效果:

    图4.1 运行效果结语

    这道题思路很简单,关键在图片排版时的情况是否考虑完全:

    图5.1 思路

    在设置条件时,注意可能发生的情况。要求我们树立全局观,严谨对待问题。END

    实习编辑   |   王楠岚

    责       编   |   梁   林where2go 团队微信号:算法与编程之美

    展开全文
  • 如何一键实现代码排版首先,各个编程语言都有自己的代码规范,统一的代码规范,不仅能提高代码的可读性,还能提升代码的维护性,团队内部的集成也会更加顺畅,同时也能更轻易发现代码的问题。团队编程的目标,所有人...

    你熟悉Python的代码规范吗?如何一键实现代码排版

    首先,各个编程语言都有自己的代码规范,统一的代码规范,不仅能提高代码的可读性,还能提升代码的维护性,

    团队内部的集成也会更加顺畅,同时也能更轻易发现代码的问题。团队编程的目标,所有人写的代码像一个人写出来的。

    Python之禅

    都说Python是一门优雅的语言,那就更少不了装饰和美化。Python在开发之初,已经规范了代码的整体原则,那就是Python之禅。

    在交互式解释器中输入import this就会显示 Tim Peters 的 “The Zen of Python”

    整体意思就是Python以优雅简洁为目标。具体翻译,大家可以参考下:

    优美胜于丑陋(Python 以编写优美的代码为目标)

    明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

    简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

    复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

    扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

    间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

    可读性很重要(优美的代码是可读的)

    即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

    不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

    当存在多种可能,不要尝试去猜测

    而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

    虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

    做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

    如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

    命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

    官网推荐的编码规范

    目前比较通用的是pep8规范,大家可以根据下方的官方文档进行学习,其中的PEP8是Style Guide for Python Code,译为:Python代码样式指南。

    pep8 官网规范地址

    下面是pep8规范中主要的一些要求:

    每级缩进用4个空格。

    # 对准左括号

    foo = long_function_name(var_one, var_two,

    var_three, var_four)

    # 不对准左括号,但加多一层缩进,以和后面内容区别。

    def long_function_name(

    var_one, var_two, var_three,

    var_four):

    print(var_one)

    # 悬挂缩进必须加多一层缩进.

    foo = long_function_name(

    var_one, var_two,

    var_three, var_four)

    右边括号也可以另起一行。有两种格式,建议第2种。

    # 右括号不回退,个人不推荐

    my_list = [

    1, 2, 3,

    4, 5, 6,

    ]

    result = some_function_that_takes_arguments(

    'a', 'b', 'c',

    'd', 'e', 'f',

    )

    # 右括号回退

    my_list = [

    1, 2, 3,

    4, 5, 6,

    ]

    result = some_function_that_takes_arguments(

    'a', 'b', 'c',

    'd', 'e', 'f',

    )

    空格或Tab?在 list, dict, tuple, set, 参数列表的 , 后面加一个空格

    在 dict 的 : 后面加一个空格

    空格是首选的缩进方法。

    Tab仅仅在已经使用tab缩进的代码中为了保持一致性而使用。

    Python 3中不允许混合使用Tab和空格缩进。

    最大行宽限制所有行的最大行宽为79字符。

    文本长块,比如文档字符串或注释,行长度应限制为72个字符。

    空行function 和 class 顶上两个空行

    class 的 method 之间一个空行

    函数内逻辑无关的段落之间空一行,不要过度使用空行

    不要把多个语句写在一行,然后用 ; 隔开

    if/for/while 语句中,即使执行语句只有一句,也要另起一行

    导入在单独行推荐:

    import os

    import sys

    from subprocess import Popen, PIPE

    导入位置:在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。

    导入顺序:标准库,相关的第三方库,本地库。各组的导入之间要有空行。

    禁止使用通配符导入:通配符导入(from import *)应该避免,因为它不清楚命名空间有哪些名称存,混淆读者和许多自动化的工具。

    括号里边避免空格

    # 括号里边避免空格

    #推荐

    spam(ham[1], {eggs: 2})

    # 不推荐

    spam( ham[ 1 ], { eggs: 2 } )

    逗号,冒号,分号之前避免空格

    if x == 4: print x, y; x, y = y, x

    函数调用的左括号之前不能有空格

    # 推荐

    spam(1)

    dct['key'] = lst[index]

    spam (1)

    dct ['key'] = lst [index]

    赋值等操作符前后不能因为对齐而添加多个空格

    x = 1

    y = 2

    variable = 3

    二元运算符两边放置一个空格

    涉及 =、符合操作符 ( += , -=等)、比较( == , < , > , != , <> , <= , >= , in , not in , is , is not )、布尔( and , or , not )。

    优先级高的运算符或操作符的前后不建议有空格。

    i = i + 1

    submitted += 1

    x = x*2 - 1

    hypot2 = x*x + y*y

    c = (a+b) * (a-b)

    关键字参数和默认值参数的前后不要加空格

    def complex(real, imag=0.0):

    return magic(r=real, i=imag)

    包和模块名

    模块名要简短,全部用小写字母,可使用下划线以提高可读性。包名和模块名类似,但不推荐使用下划线。

    避免采用如下名字

    决不要用字符'l'(小写字母el),'O'(大写字母oh),或 'I'(大写字母eye) 作为单个字符的变量名。一些字体中,这些字符不能与数字1和0区别。用'L' 代替'l'时。

    有什么工具,可以自动帮我们,快速实现简洁优雅,符合pep8规范的代码呢?

    autopep8工具

    autopep8是一个开源的命令行工具,它能够将Python代码自动格式化为PEP8风格,可以继承到pycharm中,从而便捷的实现代码排版。

    autopep8可以直接使用pip进行安装:

    pip install autopep8

    PyCharm -> Preferences -> Tools -> Extends Tools -> 点击+加号

    在Create Tool的设置如下:

    name:随意写一个,建议写autopep8

    Programs:autopep8 (前提是你已经安装了哦)

    Parameters:--in-place --aggressive --aggressive $FilePath$

    Working directory:$ProjectFileDir$

    Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

    在pycharm代码编辑界面,鼠标右键,选择autopep8就能对当前代码进行自动排版。

    比如下面这段代码,左侧是原始代码,右侧代码是经过autopep8工具排版过的,怎么样,是不是优雅简洁了很多。

    展开全文
  • 12.数据类型-序列类型字符串-排版和交互 13.数据类型-序列类型列表创建取值和切片 14.数据类型-序列类型列表-常用方法 15.数据类型-序列类型列表-深浅拷贝和列表推导式 16.数据类型-序列类型元组. 17数据类型-映射...
  • 如何基于Python实现word文档重新排版

    千次阅读 2021-02-09 08:11:00
    介绍舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作。分析需求对文档中的内容进行分析,只留下题目,选项,并且题号要从1...
  • 更多:python word 自动排版写码时应该缩进使用 tab 还是空格? https://www.002pc.comhttps://www.002pc.com/python/2799.html 你可能感兴趣的写码,tab,缩进,空格,应该,使用 No alive nodes found in your cluster 0...
  • pip install python-docx word文件处理:要有批量重复的工作前提,word文档按每段来自定义处理,逻辑简单 小案例1 入门–批量通知客户黄金的价格(纯文字) from docx import Document from docx.enum.text import...
  • You should consider upgrading via the 'python -m pip install --upgrade pip' command. 仔细看了下,要进行版本升级(不升级其实也可以用,但是既然提示了就更新下)。 按照提示输入 python -m pip install...
  • 为什么我要重新排版我之前在 “学习Python的正确姿势”这个公众号写的文章的排版非常随意,心情好就排版的稍微好看一点, 心情没那么好的时候就随便整一下,曾经一度认为只要内容足够好就行,但是我后来看了些文章后...
  • Python 文字排版工具

    千次阅读 2022-02-15 21:31:08
    Python学习案例——文字排版工具
  • python实现 文件排版

    2022-04-13 12:52:27
    英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号':'分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字符构成)之间...
  • Python 环境安装:1.资源下载:直接到 Python 官网 下载安装包,有两个分支:2.x 和 3.x,两者有着巨大的差别,当然现在比较流行的还是 2.7.x 系列,这里我直接下载此系列的最新版本:python-2.7.13.msi 。C:\Users\...
  • 主要介绍了Python 实现自动完成A4标签排版打印功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • MaxPress:MarkDown+Python实现微信公众号一键排版更新针对非技术人员的小白教程:【上篇:基本原理】【下篇:语法指南】基本功能批量转换MarkDown文档为适合粘贴微信编辑器HTML文件。支持自定义:正文字号、文字...
  • autopep8是一款将python代码自动排版为的工具,autopep8安装 1、安装autopep8 pip install autopep8 2、PyCharm配置autopep8 Program(autopep8安装路径): C:\Users\BY-HR\AppData\Local\Programs\Python\...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼就是那个技术文档的第五章,我...cdpythonD:\python>cdmysiteD:\python\mysite>pythonmanage.pysqlallbooksBEGIN;CREATETABLE"books_publisher"("id"integerNOTNUL...
  • 将文字按现代汉语习惯及发表出版要求进行规范编排。文字排版工具一般具备删除空格,英文标点替换,英文单词大写功能。
  • 使用Python对word文档进行操作一、安装Python-docxPython-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件。说白了,python就相当于windows操作系统,QQ就是跑在windows操作系统上的软件,QQ最大...
  • Python常用快捷键整理

    千次阅读 2021-12-13 10:51:29
    Python常用快捷键整理 文章目录Python常用快捷键整理一、注释二、删除三、格式四、 查看其它1. 代码自动整理 一、注释 行注释/取消行注释: Ctrl + / 多行注释:Ctrl + Shift + / 块注释 二、删除 删除选定的行:Ctrl ...
  • python 排版

    千次阅读 2020-11-30 10:19:54
    作者 | 李秋键责编 | 晋兆雨 在很多的公司项目中,常常有很多对office项目的比较机械化的操作,在这里就可以借助python实现对office的合理排版。 而这里我们就将借助海尔公司的出货表爬取对应图片信息,并重新排版...
  • 之前这么多天实现上述需要的主要流程如下: (采取各种方式优化排版)把文章发布到(不支持各种常用功能的)头条号上 文章发布后,获取其文章链接,并到草料二维码生成器网站,上传实验室logo后生成二维码下载至本地...
  • 作者 | 李秋键责编 |晋兆雨头图 |CSDN下载自视觉中国继我们上次用Python实现Excel排版程序之后,我们这次通过使用Python建立Word自动排版程序。其中涉及的知识包...
  • VScode python基本设置

    2022-02-17 15:42:23
    VScode python基本设置配置文件settings.json推荐插件 配置文件settings.json { "python.testing.unittestArgs": [ "-v", "-s", "./__pycache__", "-p", "*test.py" ], "python.testing.pytestEnabled": ...
  • 可以进行单个文档或多个文档的处理和合并,格式转化等,用于批量修改文档内容,批量转pdf或转图片等系列操作
  • I have my filetype set to Python etc. and my format to unix. 解决方案 This is what you want: Settings > Preferences > MISC. > Auto-Indent (checkbox) -- Sometimes people ask, "How can I do x in ...
  • 在使用Sublime时通常为了方便安装各类插件,...Package Installation是一个可以控制Sublime软件包的控制器,他可以十分方便的安装我们想要的软件包,并且在软件包安装好以后,他们就会被自动更新,始终保持最新状态。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,839
精华内容 4,735
关键字:

python自动排版

友情链接: tidu.rar