簡體   English   中英

如何讓我的代碼看起來更專業?

[英]How can I make my code look more professional?

我對 Python 還很陌生,我覺得我的代碼仍然沒有達到應有的干凈和高效。 我不知道哪些來源可以激發我以其他方式構建我的代碼。

你們中有人對我應該如何格式化我的代碼有建議嗎? 例如:使用盡可能多的函數,在代碼的開頭定義它們等。

我試過研究 PEP8,它告訴我如何使用注釋和縮進。 我需要更深入地了解我的代碼的內部運作。

import tabula
import pandas as pd

def pdf_df(filename):
    df = tabula.read_pdf(filename, pages='all', multiple_tables=True)
    pages = len(df)
    print('Pages in PDF: ' + str(pages))
    TOTAL = {} ; START = 0
    for i in df:
        if START == 0:
            p = i.dropna(subset=[2,3], how='all')
            p = p.drop(columns=1)
            p.columns = range(p.shape[1])
            TOTAL['Page' + str(START + 1)] = p
        if START != 0:
            p = i.dropna(subset=[4,5], how='all')
            p = p.dropna(axis=1, how='all')
            p[0] = p[0].str.cat(p[2], sep =" ") 
            p = p.drop(columns=2)
            p.columns = range(p.shape[1])
            TOTAL['Page' + str(START + 1)] = p    
        START += 1

    df1 = pd.concat(TOTAL.values(), ignore_index=True)
    df1.columns = df1.iloc[8]
    df1 = df1.loc[~df1["Bedrag af (debet)"].str.contains("debet", na=False)]
    df1 = df1[~df1["Bedrag af (debet)"].str.contains("debet", na=False)] ;df1 = df1.drop(index=[0,1,2,3,4,5,6,7])     
    return df1

TOTAL = pdf_df(input("What is the filename?"))
TOTAL.to_excel('test.xlsx')

嘗試使用 python代碼linter 。 pylint是您可以使用的一個示例。 一些代碼編輯器(例如Visual Studio Code )內置了對 linter 的支持,並且可以在您鍵入時指出風格建議。

你需要學習並遵循一些基本規則,看看如何不重復自己(DRY),然后是單一的原則。

肯定 pylint 和其他工具會幫助你。 但是在這里你需要重新格式化這個在較小的函數中做很多事情的函數。

在你的情況下:

  • 一個 function 讀取文件並返回表格 object
  • 一個執行丟棄邏輯的 function
  • 一個格式化決賽桌的 function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM