中国科学技术协会发布深度解析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});

});

标签: 白家电