DeepSeek写代码比Claude强?
DeepSeek写代码这件事,网上有各种声音。
有人说DeepSeek写代码比Claude强,有人说Claude还是大哥。
今天这期,威少不站队,用同一道题,让DeepSeek和Claude同时写,看看到底谁更强。
结果可能会跟你想的不太一样。
测试题目:写一个简单的爬虫
威少选了一道实战中很常见的题:
写一个Python爬虫,爬取一个网页的标题和链接,保存到JSON文件。
这道题不简单也不难,刚好能看出两个AI的思路差异。
先看DeepSeek写的:
import requests
from bs4 import BeautifulSoup
import json
def scrape_website(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'
}
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
results = []
# 找到所有链接
for link in soup.find_all('a', href=True):
title = link.get_text(strip=True)
href = link['href']
if title and href.startswith('http'):
results.append({'title': title, 'url': href})
# 保存到JSON
with open('results.json', 'w', encoding='utf-8') as f:
json.dump(results, f, ensure_ascii=False, indent=2)
print(f'已保存 {len(results)} 条数据到 results.json')
使用示例
url = ‘https://example.com’
scrape_website(url)
python
再看Claude写的:
import requests
from bs4 import BeautifulSoup
import json
def scrape_website(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'
}
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
results = []
for link in soup.find_all('a', href=True):
title = link.get_text(strip=True)
href = link['href']
if title and href.startswith('http'):
results.append({'title': title, 'url': href})
with open('results.json', 'w', encoding='utf-8') as f:
json.dump(results, f, ensure_ascii=False, indent=2)
return len(results)
if name == ‘main’:
url = ‘https://example.com’
count = scrape_website(url)
print(f’Saved {count} items’)
python
两份代码都能跑,但有几个细节不一样。
差异一:错误处理谁更严谨
DeepSeek加了 response.raise_for_status(),如果请求失败会直接抛异常。
Claude没有加这个,用 if name == ‘main’: 判断入口,这是一个好习惯。
这一点,两个AI各有优点。
DeepSeek的错误处理意识更强,Claude的入口判断更规范。
如果你想让它写得更好,可以这么说:
写一个Python爬虫,要求:
- 必须有错误处理
- 要有try/except
- 要有if name == 'main’入口判断
加上约束条件之后,两个AI出来的代码都会更规范。
差异二:注释风格不一样
DeepSeek的注释更详细,每个步骤基本都有说明。
Claude的注释更简洁,只在关键地方加。
这个没有对错,看个人喜好。
威少的经验是,如果你想让它按你的风格写,直接告诉它:
注释风格:用中文,每个函数加一行说明,不解释为什么,只说明做什么
或者:
代码风格:无注释,代码即注释,变量名要自解释
AI都能做到。
差异三:调试错误的能力
这道题是让它写代码,但实际工作中,更常用的是让它帮你找bug。
威少测试了一下,把一段有问题的代码发给两个AI,让它们找错。
def calculate(a, b):
return a + b
result = calculate([1, 2, 3], [4, 5, 6])
print(result)
python
这段代码会输出 [1, 2, 3, 4, 5, 6],不是数字相加,逻辑上有问题。
DeepSeek怎么说?
它会告诉你:函数逻辑本身没问题,列表会拼接,数字相加要改成 a + b,如果想加和要遍历或者用 sum()。
Claude怎么说?
它会直接指出:你想做的是求和,但列表拼接了,应该用 sum(a) + sum(b) 或者遍历相加。
两者都能找到问题,但表达方式不太一样。
DeepSeek更像一个老师,告诉你原理。
Claude更像一个同事,直接告诉你解决方案。
威少的结论
用了一轮下来,威少的感受是这样的:
DeepSeek更适合:学习理解阶段,想知道为什么这么做,需要详细解释
Claude更适合:直接干活阶段,想要最快的解决方案,不需要解释
但这不是绝对的。
威少现在的用法是:先用Claude快速拿到代码,能跑就行。然后把代码发给DeepSeek,让它帮我解释、帮我优化。
两个AI配合着用,比只用一个好。
三个实用技巧
最后给你三个DeepSeek写代码的实用技巧:
第一个,代码写完让它解释。
请解释这段代码的逻辑,用通俗的语言,一句话总结这段代码在做什么。
第二个,让它帮你优化。
请优化这段代码,让它更简洁、更高效、更易读。
第三个,让它写注释版本。
请给这段代码加上注释,注释要清晰但不啰嗦,重点解释为什么这么做,而不是做了什么。
结尾
今天这期,威少用同一道题测试了DeepSeek和Claude,发现了几个有意思的差异:
DeepSeek解释详细,Claude解决直接。
DeepSeek错误处理强,Claude结构更规范。
两者配合用,比只用一个好。
这5个功能,你之前用到了几个?
用到了2个以下的,评论区告诉威少,下期我给你出配套练习题。
我是威少,我们下期见。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)