中国科学技术协会发布深度解析ChatGPT编程能力与应用实例
前言
在这个快速变化的数字时代,ChatGPT作为人工智能的一个重要分支,其在编程开发领域的潜力得到了广泛关注。今天,我们将通过十三个章节、50个示例,为大家展示ChatGPT如何简化工作流程、减少错误甚至改进代码,从而为初学者学习知识和专业人员提升效率提供强有力的支持。
一、代码生成
1.1 提示词: Generate a semantic and accessible HTML and (framework) CSS [UI component] consisting of [component parts]. The [component parts] should be [layout].
举例:
Generate a semantic HTML and Tailwind CSS Contact Support form consisting of the users name, email, issue type, and message. The form elements should be stacked vertically and placed inside a card.
生成结果下面是一个使用语义化HTML和Tailwind CSS构建的“联系支持”表单,包含用户的姓名、电子邮件、问题类型和留言。表单元素垂直堆叠,放置在一个卡片中。
联系支持 在这个表单中,姓名和电子邮件是必填字段,因此可以在输入框中使用required属性。您还可以根据需要自定义CSS样式。
1.2 提示词: Write a JavaScript function. It accepts [input] and returns [output].
举例:
Write a JavaScript function. It accepts a full name as input and returns avatar letters.
生成结果以下是接受全名为输入并返回头像字母的JavaScript函数:
function getAvatarLetters(fullName) { // 分割全名为名字和姓氏 const names = fullName.trim().split( ); let avatar = ; // 遍历每个名字并将其第一个字符添加到头像中 for (let i = 0; i < names.length; i++) { if (i === 0 || i % 2 !== 0) { avatar += names[i][0]; } } // 返回头像 return avatar;}该函数首先将输入的全名分割成名字和姓氏,然后遍历每个名字,并以奇数索引取出每个名字中的第一个字符来构成头像。如果出现长度大于两个字符,则截断到两个字符。最后,该函数返回头像。
例如,如果输入的是“张三”,则该函数返回“张”,如果输入的是“张三丰”,则该函数返回“张三”。
1.3 提示词: Write an Express.js API to fetch the current users profile information using MongoDB.
举例:
Write an Express.js API to fetch the current users profile information using MongoDB.
生成结果以下是一个使用Express.js及MongoDB编写API来获取当前用户个人资料信息:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
mongoose.connect("mongodb://localhost/myapp", {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log("MongoDB connected"))
.catch((err) => console.error("Failed to connect to MongoDB:", err));
// 创建用户模型
const userSchema = new mongoose.Schema({
name: String,
email: String,
password: String
});
const User = mongoose.model(User, userSchema);
// 添加中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 定义路由
app.get('/api/profile', async(req, res) => {
const userId = req.user.id;
try {
const userDocumetnId=await User.findById(userId);
if (!userDocumentId)
res.status(404).send(User not found);
else {
const userInfo={
_id:userDocumentId._id.toString(),
username:userDocumentId.username.toLowerCase(),
email:userDocumentId.email.toLowerCase()
};
res.send(userInfo);
}
} catch(error){
console.error(Error fetching data from database, error.message);
res.status(500).send(Internal Server Error);
}
});
// 启动服务器
var port=3000;
var server=app.listen(port,function(){
var host='127.0.0.1';
var port=server.address().port;
console.log(Server started on http://${host}:${port});
});