0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用ChatGPT编写各种脚本

jf_tpHP8OJR 来源:集成电路设计及EDA教程 2023-01-13 10:11 次阅读

88d830fc-9281-11ed-bfe3-dac502259ad0.png

最近几周使用了一下ChatGPT,它给我的感觉是眼前一亮,让我直呼牛逼~~提升办公效率的神器~~

与Siri这种人工智zhang而言,ChatGPT感觉上才是真正的人工智能助手。从聊天上来看能感觉到它几乎已经完全理解了人们说的是什么了(包括中文),且能联系上下文语境,而非孤零零的看待每个问题,这一点我给个大大的赞

(这一点在下面的编程实例上能明显看出来)

经使用发现,除了专业领域的问题之外, 相较于某度和普通的搜索引擎而言,它还是更能给出一个比较令人满意的答案的。

最牛逼的还是属于程序编写方面,ChatGPT在各个编程语言上面都挺在行的(尝试了下Python, Perl, Tcl都挺不错的),可以说是一个各个语言都很了解的程序员了。(各种语言都很了解,能信手拈来的人估计不多吧。。。这一点非常佩服它)

对于初学者而言或者一些简单的程序编写而言,它都能给出非常正确的答案,且还会给代码加上注释,也会对程序做出相应的解释,因此应对一些通用的问题而言它是绰绰有余的(程序员即使不会失业但也感到后背发凉~~)。它对小白而言应该也非常友好,如果一些小白想问问题的话,那ChatGPT可以说是一个孜孜不倦的老师了,能一直回答各种小白问题的老师估计只有机器了吧~~

另外对于一些非常复杂的问题,它不一定会给出完全正确的答案,但是它的结果还是比较有参考意义的,甚至还能给出一些Idea,比如想实现某个功能,想查询是否有哪个已有的库可以实现这个功能,可以直接问ChatGPT。

下面用一个问题来看一下ChatGPT的回答是否出乎了你的意料:

H: 麻烦编写一个python脚本对下面的内容可以指定按照年龄或者成绩进行排序。 姓名 年龄 成绩 小明 9 95 小张 10 84 小红 8 99 小李 12 67 小赵 9 87 ChatGPT:您可以使用 Python 的sorted 函数来对下列数据进行排序。这里是一个示例脚本,该脚本按照年龄或者成绩进行排序,根据指定的关键字进行排序:

students = [
    {"name": "小明", "age": 9, "score": 95},
    {"name": "小张", "age": 10, "score": 84},
    {"name": "小红", "age": 8, "score": 99},
    {"name": "小李", "age": 12, "score": 67},
    {"name": "小赵", "age": 9, "score": 87}
]


key = input("请输入排序关键字(age或score): ")


if key == "age":
    students = sorted(students, key=lambda x: x["age"])
elif key == "score":
    students = sorted(students, key=lambda x: x["score"])
else:
    print("输入错误,请输入age或score")


for student in students:
    print(student["name"], student["age"], student["score"])

这个脚本首先将要排序的学生数据存储在一个列表中,然后使用input 函数读取排序关键字(age 或 score)。使用sorted 函数按照指定的关键字进行排序,最后使用一个 for 循环输出排序后的数据。

程序测试结果:

891bcd8a-9281-11ed-bfe3-dac502259ad0.png    

H:麻烦修改上面的程序,同时可以控制正序或者倒序(这个问题能明显判断AI是否理解了上下文语境)

ChatGPT: 可以在使用 sorted 函数的时候指定参数 reverse=True 来让排序结果为倒序,参数reverse=False 或不指定时为正序。这里是修改后的代码:
students = [
    {"name": "小明", "age": 9, "score": 95},
    {"name": "小张", "age": 10, "score": 84},
    {"name": "小红", "age": 8, "score": 99},
    {"name": "小李", "age": 12, "score": 67},
    {"name": "小赵", "age": 9, "score": 87}
]


key = input("请输入排序关键字(age或score): ")
sortType = input("请输入排序类型(asc或desc): ")


if sortType == "asc":
    reverse = False
elif sortType == "desc":
    reverse = True
else:
    print("输入错误,请输入asc或desc")
    exit()


if key == "age":
    students = sorted(students, key=lambda x: x["age"], reverse=reverse)
elif key == "score":
    students = sorted(students, key=lambda x: x["score"], reverse=reverse)
else:
    print("输入错误,请输入age或score")


for student in students:
    print(student["name"], student["age"], student["score"])
这里在之前的程序基础上增加了输入排序类型,然后在对排序关键字进行分支时传入了排序类型,具体实现就是在sorted 中 reverse=reverse 正序/倒序

程序测试结果:

89371c34-9281-11ed-bfe3-dac502259ad0.png

非常棒!!

最精彩的地方来了,可能我们需要编写一些perl, python, tcl脚本,因为ChatGPT是知道上下文语境的,所以我们只要输入 “麻烦用perl实现与上面同样的功能”就可以了。

H:麻烦用perl实现与上面同样的功能

ChatGPT: 在 Perl 中,可以使用sort 函数来对列表元素进行排序。这里是一个示例程序,它按照年龄或者成绩进行排序,并能正序或倒序排序:
use strict;
use warnings;


my @students = (
    { name => "小明", age => 9, score => 95 },
    { name => "小张", age => 10, score => 84 },
    { name => "小红", age => 8, score => 99 },
    { name => "小李", age => 12, score => 67 },
    { name => "小赵", age => 9, score => 87 },
);


print "请输入排序关键字(age或score):";
my $key = ;
chomp($key);
print "请输入排序类型(asc或desc):";
my $sortType = ;
chomp($sortType);


my $reverse = $sortType eq "desc" ? 1 : 0;


if($key eq "age"){
    @students = sort { $a->{age} <=> $b->{age} } @students;
}elsif($key eq "score"){
    @students = sort { $a->{score} <=> $b->{score} } @students;
}else{
    print "输入错误,请输入age或score
";
}


@students = reverse @students if $reverse;


for my $student (@students) {
    print $student->{name}, " ", $student->{age}, " ", $student->{score}, "
";
}

这个程序与上面类似,首先将要排序的学生数据存储在一个数组中,然后使用 读取排序关键字和排序类型,按照关键字进行排序。

在排序类型为desc时将数组 reverse 一下就能达到倒序排序的效果了。

程序测试结果:

89447014-9281-11ed-bfe3-dac502259ad0.png89770812-9281-11ed-bfe3-dac502259ad0.png    

同样也是非常棒!

接下来测试一下ChatGPT是否会Tcl语言:

H:麻烦用tcl语言实现同样的功能

ChatGPT: 在 Tcl 中,可以使用lsort 命令来对列表元素进行排序。这里是一个示例程序,它按照年龄或者成绩进行排序,并能正序或倒序排序:
set students {
    {小明 9 95} {小张 10 84} {小红 8 99} {小李 12 67} {小赵 9 87}
}


puts "请输入排序关键字(age或score):"
flush stdout
set key [gets stdin]


puts "请输入排序类型(asc或desc):"
flush stdout
set sortType [gets stdin]


set sortType [string trim $sortType]


if {$key eq "age"} {
    set students [lsort -integer -index 1 $students]
} elseif {$key eq "score"} {
    set students [lsort -integer -index 2 $students]
} else {
    puts "输入错误,请输入age或score"
    exit
}


if {$sortType eq "desc"} {
    set students [lreverse $students]
}


foreach student $students {
    puts $student
}

这个程序首先将要排序的学生数据存储在一个列表中,然后使用 gets 函数读取排序关键字和排序类型,按照关键字进行排序。

在排序类型为desc时使用 lreverse 函数来实现倒序排序的效果。

这里 lsort -integer -index 1 指的是以第1个数字进行排序, lsort -integer -index 2 为按照第二个数字进行排序

评价:ChatGPT给出的结果是相当令人满意了。

测试结果:完全正确,ChatGPT给出结果的速度也非常快

89854eea-9281-11ed-bfe3-dac502259ad0.png   8993bdea-9281-11ed-bfe3-dac502259ad0.png  





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1656

    浏览量

    87919
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83443
  • GPT
    GPT
    +关注

    关注

    0

    文章

    294

    浏览量

    14852
  • ChatGPT
    +关注

    关注

    27

    文章

    1404

    浏览量

    4550

原文标题:免费的万能程序员 - ChatGPT编写各种脚本(Python, Perl, Tcl...)

文章出处:【微信号:集成电路设计及EDA教程,微信公众号:集成电路设计及EDA教程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用ChatGPT通过Shell脚本来实现日志分析

    ChatGPT自出道以来,其出色的代码能力被众多程序员追捧,今天浩道就运维工作中常见的日志分析场景,利用ChatGPT让它通过Shell脚本来实现日志分析
    的头像 发表于 04-07 09:09 2509次阅读

    在FPGA设计中是否可以应用ChatGPT生成想要的程序呢

    当下AI人工智能崛起,很多开发领域都可看到ChatGPT的身影,FPGA设计中,是否也可以ChatGPT辅助设计呢?
    发表于 03-28 23:41

    脚本引擎编写

    tcl脚本小白,我现在需要编写一个脚本引擎,目前已经建立好了自己的一套指令系统,需要能使用这个脚本引擎将我记事本编写的程序翻译成机器码,换句
    发表于 03-19 16:16

    什么是脚本? makefile的编写规则有哪些

    一、实验目的和要求1了解什么是脚本2掌握shell编程方法3掌握makefile的编写规则二、实验内容和原理1编写一个Shell脚本,要求:显示当前目录的所有内容,并统计可执行文件(.
    发表于 12-22 07:52

    在IC设计/验证中怎么应用ChatGPT呢?

    工具,提升效率进一步解放生产力?首先想到的就是,日常工作中会用到的各种脚本,包括但不限于shell/python/perl/makefile,实现特定功能,帮助流程自动化,提升效率。如果这个工具真的
    发表于 02-21 15:16

    科技大厂竞逐AIGC,中国的ChatGPT在哪?

    ChatGPT“对话”的过程中,人们发现它的“智慧程度”远超其他的人工智能机器人。除了聊天,ChatGPT被网友们用来写文案、翻译文本、为代码纠错,甚至用来编写代码。 凭借出色的表现,Cha
    发表于 03-03 14:28

    python编写脚本方法

    对于具有484个引脚的芯片,如果手动一个一个设置引脚,必然是一场噩梦。网上有使用Capture进行自动导入的帖子,不过没有找到AD方面的帖子。本文使用python,编写脚本,自动分配引脚。
    发表于 11-17 11:38 4783次阅读

    u-boot中Hush shell的功能及编写脚本的方法介绍

    了解u-boot中Hush shell的功能,以及如何为其编写脚本。 说明了存储和检索脚本的方法。
    的头像 发表于 11-22 07:00 5036次阅读

    什么是脚本脚本程序学习

    脚本编写VB脚本代码。可以象使用系统函数一样使用项目中完成的脚本。创建脚本时,确定其型号并定义传送参数。“Function”类型的
    的头像 发表于 05-11 10:39 6068次阅读
    什么是<b class='flag-5'>脚本</b>?<b class='flag-5'>脚本</b>程序学习

    什么是脚本?---脚本程序学习

    脚本编写VB脚本代码。可以象使用系统函数一样使用项目中完成的脚本。创建脚本时,确定其型号并定义传送参数。“Function”类型的
    的头像 发表于 06-12 15:39 3732次阅读
    什么是<b class='flag-5'>脚本</b>?---<b class='flag-5'>脚本</b>程序学习

    Linux命令行与shell脚本编写

    Linux命令行与shell脚本编写
    发表于 01-11 16:50 4次下载

    ChatGPT几个有趣的玩法

    文章目录 开启一个VM 以……的风格发文 自动写代码 用脚本编写一个多进程ping主机的程序用chatGPT学习loki 客制化脚本 生成一个自动建立软连接的
    发表于 02-15 09:48 0次下载
    <b class='flag-5'>ChatGPT</b>几个有趣的玩法

    编写一个点名器脚本

    目的:编写一个脚本,可以将准别好的名字合集的.txt传入脚本,然后每次随机显示一个人的姓名
    的头像 发表于 11-06 12:41 334次阅读
    <b class='flag-5'>编写</b>一个点名器<b class='flag-5'>脚本</b>

    shell脚本编写程序

    编写Shell脚本时,你需要按照以下步骤进行: 打开一个文本编辑器,例如vi、nano或gedit。 创建一个新文件,并将其保存为以.sh为扩展名的文件, 例如script.sh 。 在文件的第一
    的头像 发表于 11-08 10:12 511次阅读

    shell实例三(编写批量修改扩展名脚本)

    实现功能: 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 执行脚本时,需要给脚本添加位置参数
    的头像 发表于 11-09 09:35 250次阅读
    shell实例三(<b class='flag-5'>编写</b>批量修改扩展名<b class='flag-5'>脚本</b>)