ChatGPT是一个强大的智能AI软件,对所有人都可以提供帮助,像程序员这种专业性比较强的职业,也可以在工作上有基础的帮助,功能性很强。下面我们给大家说一下ChatGPT程序员使用指南,让程序员们可以减轻一点工作压力。
生成代码骨架
当构建新项目时,ChatGPT 是我的秘密武器。只需几个提示,它就可以生成我所需的代码骨架,包括我选择的技术、框架和版本。它不仅每次为我节省了至少一个小时的工作,还有助于保持我的文档(或团队的文档)组织并且是最新的。这就像团队中多了一只手一样!
例如,假设我想使用一些外部 API。我可以请 ChatGPT 为我起草初步的代码结构。
使用 Python 生成集成外部 API 的样板代码。
ChatGPT 立刻回答
截图ChatGPT聊天。ChatGPT给了我一个代码的骨架。
或者我甚至可以请求使用Selenium爬取LinkedIn的骨架,ChatGPT给我输出:
from selenium import webdriverfrom 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 credentialsemail.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 loadtime.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[@class='inline t-24 t-black t-normal break-words']").text
location = driver.find_element_by_xpath("//span[@class='t-16 t-black t-normal inline-block']").textprint(name)print(location)
# close the browserdriver.quit()
简单吧?试着用你能想到的任何问题向ChatGPT提问。
研究和
比较
决定如何实现某些东西可能很困难,特别是当有多个选择时。我第一步是为每种方法创建一个基本的概念,然后进行比较。但是,在ChatGPT的帮助下,这个过程变得更容易了。
现在,我可以直接询问它的意见,看哪个选项或库最适合我的代码开发。这为我节省了很多时间和精力,并确保我使用最好的工具来完成工作。
假设我想处理地理空间数据,但我不确定是否应该使用Geopandas还是Plotly。我可以询问ChatGPT这两个库的主要区别。
截图ChatGPT聊天记录。ChatGPT向我解释了geopandas和plotly的区别。
如果现在我想爬取一个网站,我可以问ChatGPT哪个库是最好用。ChatGPT列出Python中最流行的网站爬虫库:
屏幕截图ChatGPT聊天。ChatGPT解释了最受欢迎的网站爬虫库
理解代码
我们都有过这样的经历:强逼着去看一个不是由我们自己写的代码库源码。在复杂且组织混乱的代码中,俗称为代码屎山,是一项令人沮丧且耗时的任务。
但是,有了ChatGPT,理解一个新的代码库源码就变得容易多了。我现在可以简单地要求它解释代码的功能,并在短时间内理解它。再也不用浪费宝贵的时间和精力去解读写得不好的代码了。
假设我想爬取Linkedin,我在github上找了一些代码,但是我不是很理解这些代码。
下面的代码是做什么的 [插入代码]
#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])*1000else: 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 = 2while 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还可以帮助我们提高代码的质量和可维护性。通过要求它逐行添加注释,我们可以确保我们的代码在发布前有正确的文档。使其他人更容易理解和使用我们的代码。
ChatGPT可以大大改善代码可读性、可维护性和与他人的合作。
假设,以前写的代码忘记添加注释。我们可以直接要求ChaGPT为其添加注释。
为以下代码添加注释 [插入代码]
# 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 has a comma (e.g. 1,000) if len(jobs_num.split(',')) > 1: # if it does, remove the comma and multiply the number by 1000 jobs_num = int(jobs_num.split(',')[0])*1000else: # if there is no comma, convert it to integer jobs_num = int(jobs_num) # convert the number of jobs to integer jobs_num = int(jobs_num) # set the number of jobs to 1000 jobs_num = 1000;# initialize a counter for the while loop i = 2 # loop until the counter is less than or equal to half of the number of jobs plus 1 while i <= int(jobs_num/2)+1: # scroll down to the end of the page driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # increase the counter by 1 i = i + 1 # print the current counter and the percentage print("Current at: ", i, "Percentage at: ", ((i+1)/(int(jobs_num/2)+1))*100, "%",end="r") try: # try to find the "Load more results" button infinite_scroller_button = driver.find_element(By.XPATH, ".//button[@aria-label='Load more results']") # click the button if it exists infinite_scroller_button.click() # wait for 0.1 seconds time.sleep(0.1) except: # if the button does not exist, wait for 0.1 seconds and continue the loop time.sleep(0.1) pass
令人印象深刻吧?不再有没有注释的代码了!
使用一些风格重构我们的代码
ChatGPT不仅是理解陌生代码的宝贵神器,它还可以帮助我们确保自己的代码遵循行业标准和惯例。通过要求它纠正我们的代码以符合Pep-8标准,甚至为我们的编码风格创建一个自定义的标准。这样可以避免在合并不同仓库或团队的代码时进行耗力和耗时的重构。
如果我们要求ChatGPT用Pep-8标准来写以前的代码,它将直接给我们重构后的代码。
你能否使用Pep8标准重写以下代码 [插入代码]
屏幕截图ChatGPT聊天。ChatGPT按照Pep8标准给出我们的代码