首頁 >科技週邊 >人工智慧 >ChatGPT 的五大功能可以幫助你提升程式碼品質

ChatGPT 的五大功能可以幫助你提升程式碼品質

WBOY
WBOY轉載
2023-04-14 14:58:151491瀏覽

ChatGPT 目前徹底改變了開發程式碼的方式,然而,大多數軟體開發人員和數據專家仍然沒有使用 ChatGPT 來改進和簡化他們的工作。

這就是為什麼我在這裡概述 5 個不同的功能,以提高我們的日常工作速度和品質。

我們可以在日常工作中使用它們。現在,我們一起來了解一下吧。

注意:切勿在 ChatGPT 中使用關鍵程式碼或資訊。

01.產生專案程式碼的框架

從頭開始建立新專案時,ChatGPT 是我的秘密武器。只需幾個提示,它就可以產生我需要的程式碼框架,包括我選擇的技術、框架和版本。它不僅為我節省了至少一個小時左右的工作時間,而且還有助於使我的文檔(或團隊的文檔)井井有條並保持最新,這就好像在給團隊加外掛,感覺無形之中多了一雙手!

例如,假設我想使用一些外部API,我可以請ChatGPT 為我起草一個初始程式碼結構。

使用 Python 產生整合外部 API 的樣板程式碼。

ChatGPT 立即回答:

ChatGPT 的五大功能可以幫助你提升程式碼品質

甚至,我可以請求一個框架來使用 Selenium 抓取 LinkedIn,ChatGPT 會給我以下輸出。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# Initialize the web driver
driver = webdriver.Firefox()

# Navigate to LinkedIn
driver.get("https://www.linkedin.com/")

# Find the email and password input fields
email = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

# Enter your credentials
email.send_keys("YOUR_EMAIL")
password.send_keys("YOUR_PASSWORD")

# Click the login button
driver.find_element_by_xpath("//button[@type='submit']").click()

# Wait for the page to load
time.sleep(5)

# Navigate to the profile of the desired user
driver.get("https://www.linkedin.com/in/USER_PROFILE_NAME")

# Extract the information you want from the page
name = driver.find_element_by_xpath("//span[@]").text
location = driver.find_element_by_xpath("//span[@]").text

print(name)
print(location)

# close the browser
driver.quit()

很容易,對吧?嘗試用您能想像到的任​​何項目來挑戰 ChatGPT。

02.研究和比較

就如何實施某些事情做出決定可能很困難,尤其是當有多種選擇可供選擇時。我的首選方法是為每種方法建立一個基本的概念證明,然後將它們進行比較。但是,在 ChatGPT 的幫助下,這個過程變得簡單多了。

我現在可以直接詢問它的專家意見,了解哪個選項或函式庫最適合我的程式碼開發。這節省了我在決策過程中的時間和精力,並確保我使用最好的工具來完成工作。

假設我想處理地理空間數據,但不確定我是否應該使用 Geopandas 或 Plotly。我可以讓 ChatGPT 為我進行比較——包含一個類型 ;它會立即回答兩個庫之間的主要區別。

ChatGPT 的五大功能可以幫助你提升程式碼品質

螢幕截圖來源與ChatGPT 聊天,ChatGPT 向我解釋了geopandas 和plotly 之間的區別

如果現在我想抓取一個網站,我可以問問最好的庫是什麼。 ChatGPT 使用 Python 中最受歡迎的網頁抓取庫來回答。

ChatGPT 的五大功能可以幫助你提升程式碼品質

螢幕截圖來源與ChatGPT 聊天,ChatGPT 解釋最受歡迎的抓取網站

你甚至可以詢問你想要抓取的網站的最佳選擇是什麼——儘管ChatGPT 很可能會警告你這將違反該網站的內容政策——所以要小心。

抓取社交網路的最佳選擇是什麼?

ChatGPT 的五大功能可以幫助你提升程式碼品質

03.理解程式碼

#我們都去過那裡,努力理解不是我們創建的程式碼庫。瀏覽複雜且組織不當的程式碼(也稱為義大利麵程式碼)可能是一項令人沮喪且耗時的任務。

但是,有了 ChatGPT,理解新的程式碼庫就變得容易多了。我現在可以簡單地要求它解釋程式碼的功能並立即理解它。無需再浪費寶貴的時間和精力來破解糟糕的程式碼。

假設我正在嘗試抓取 Linkedin,我在網路上發現了一個隨機程式碼,該程式碼應該可以向下捲動 Linkedin 工作機會網站。

以下程式碼的作用是什麼?

#We find how many jobs are offered.
jobs_num = driver.find_element(By.CSS_SELECTOR,"h1>span").get_attribute("innerText")
if len(jobs_num.split(',')) > 1:
jobs_num = int(jobs_num.split(',')[0])*1000
else:
jobs_num = int(jobs_num)

jobs_num = int(jobs_num)

#Here I choose manually a number of jobs, so it wont take that long:
jobs_num = 1000;


#We create a while loop to browse all jobs. 
i = 2
while i <= int(jobs_num/2)+1:
#We keep scrollind down to the end of the view.
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
i = i + 1
print("Current at: ", i, "Percentage at: ", ((i+1)/(int(jobs_num/2)+1))*100, "%",end="r")
try:
#We try to click on the load more results buttons in case it is already displayed.
infinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']")
infinite_scroller_button.click()
time.sleep(0.1)
except:
#If there is no button, there will be an error, so we keep scrolling down.
time.sleep(0.1)
pass

ChatGPT 會立即對上面的程式碼進行非常詳細的解釋,你甚至可以在程式碼給定部分中詢問更多詳細資訊——只要稍微玩一下ChatGPT,您會發現它可以創造很多奇蹟。

ChatGPT 的五大功能可以幫助你提升程式碼品質

螢幕截圖ChatGPT 聊天,ChatGPT 解釋了我沒看懂的程式碼

04.在我們的程式碼中加入註解

# ChatGPT 還可以幫助我們提高自己程式碼的品質和可維護性,透過你提出的要求,它會逐行添加註釋,我們可以確保我們的程式碼在發布前得到正確記錄。這幫助我們實現了對程式碼添加註解的要求,並使其他人更容易理解和使用我們的程式碼。

ChatGPT 可以明显提高了代码可读性、可维护性和与他人协作的能力。

假设之前的代码根本没有注释,我们可以让 ChaGPT 直接给它添加注释。

以下是ChatGPT为代码添加注释 :

# Find the number of jobs offered on the website
jobs_num = driver.find_element(By.CSS_SELECTOR,"h1>span").get_attribute("innerText")

# Check if the number of jobs contains a ',' and if so, convert it to number * 1000
if len(jobs_num.split(',')) > 1:
jobs_num = int(jobs_num.split(',')[0])*1000
else:
jobs_num = int(jobs_num)

# Convert jobs_num to an integer
jobs_num = int(jobs_num)

# Set the number of jobs to scrape to 1000
jobs_num = 1000;

# Initialize a counter variable to scroll through the jobs
i = 2

# Start a while loop to scroll through the jobs
while i <= int(jobs_num/2)+1:
# Scroll to the bottom of the page
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Increment the counter variable
i = i + 1
# Print the current number of jobs scrolled through and the percentage of completion
print("Current at: ", i, "Percentage at: ", ((i+1)/(int(jobs_num/2)+1))*100, "%",end="r")
try:
# Try to locate the "Load more results" button and click on it
infinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']")
infinite_scroller_button.click()
# Sleep for 0.1 seconds
time.sleep(0.1)
except:
# If the button is not present, sleep for 0.1 seconds and continue scrolling
time.sleep(0.1)
pass

令人印象深刻吧?基本可以添加注释的代码均添加了。

05.使用某种风格重写我们的代码

ChatGPT 不仅是理解陌生代码的宝贵工具,而且还可以帮助我们确保自己的代码遵循行业标准和惯例,通过要求它更正我们的代码以符合 Pep-8 约定,或者甚至为我们的编码风格创建自定义约定,我们可以避免在合并来自不同存储库或团队的代码时进行昂贵且耗时的重构。

这有助于简化协作流程并提高效率,总的来说,ChatGPT 是一个多功能工具,可以提高我们代码库的质量和可维护性。

如果我们让ChatGPT用Pep-8标准写之前的代码,它会直接给我们重构后的代码。

你能用 Pep8 标准重写下面的代码吗 ?

ChatGPT 的五大功能可以幫助你提升程式碼品質

屏幕截图 ChatGPT 聊天,ChatGPT 按照 Pep8 标准提供我们的代码

总结

我希望读完本文后,您会意识到 ChatGPT 可以帮助我们提高工作效率并创造更高质量的输出。我知道很容易陷入认为人工智能最终会接管我们工作的陷阱,但正确的人工智能可以成为一种强大的资产,想办法让它可以为我们所用。

然而,重要的是要记住,批判性思维在与 AI 合作时仍然是关键,就像在与我们的人类同事合作时一样。

因此,在您急于实施 AI 生成的响应之前,请确保先花时间审查和评估它们。相信我,这最终是值得的!

如果 ChatGPT 的其他一些优秀功能让您感到惊讶,请您在留言区告诉我,让我们一起努力让人工智能为我们服务。

以上是ChatGPT 的五大功能可以幫助你提升程式碼品質的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除