0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用ChatGPT編寫各種腳本

jf_tpHP8OJR ? 來(lái)源:集成電路設(shè)計(jì)及EDA教程 ? 2023-01-13 10:11 ? 次閱讀

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

最近幾周使用了一下ChatGPT,它給我的感覺是眼前一亮,讓我直呼牛逼~~提升辦公效率的神器~~

與Siri這種人工智zhang而言,ChatGPT感覺上才是真正的人工智能助手。從聊天上來(lái)看能感覺到它幾乎已經(jīng)完全理解了人們說(shuō)的是什么了(包括中文),且能聯(lián)系上下文語(yǔ)境,而非孤零零的看待每個(gè)問題,這一點(diǎn)我給個(gè)大大的贊

(這一點(diǎn)在下面的編程實(shí)例上能明顯看出來(lái))

經(jīng)使用發(fā)現(xiàn),除了專業(yè)領(lǐng)域的問題之外, 相較于某度和普通的搜索引擎而言,它還是更能給出一個(gè)比較令人滿意的答案的。

最牛逼的還是屬于程序編寫方面,ChatGPT在各個(gè)編程語(yǔ)言上面都挺在行的(嘗試了下Python, Perl, Tcl都挺不錯(cuò)的),可以說(shuō)是一個(gè)各個(gè)語(yǔ)言都很了解的程序員了。(各種語(yǔ)言都很了解,能信手拈來(lái)的人估計(jì)不多吧。。。這一點(diǎn)非常佩服它)

對(duì)于初學(xué)者而言或者一些簡(jiǎn)單的程序編寫而言,它都能給出非常正確的答案,且還會(huì)給代碼加上注釋,也會(huì)對(duì)程序做出相應(yīng)的解釋,因此應(yīng)對(duì)一些通用的問題而言它是綽綽有余的(程序員即使不會(huì)失業(yè)但也感到后背發(fā)涼~~)。它對(duì)小白而言應(yīng)該也非常友好,如果一些小白想問問題的話,那ChatGPT可以說(shuō)是一個(gè)孜孜不倦的老師了,能一直回答各種小白問題的老師估計(jì)只有機(jī)器了吧~~

另外對(duì)于一些非常復(fù)雜的問題,它不一定會(huì)給出完全正確的答案,但是它的結(jié)果還是比較有參考意義的,甚至還能給出一些Idea,比如想實(shí)現(xiàn)某個(gè)功能,想查詢是否有哪個(gè)已有的庫(kù)可以實(shí)現(xiàn)這個(gè)功能,可以直接問ChatGPT。

下面用一個(gè)問題來(lái)看一下ChatGPT的回答是否出乎了你的意料:

H: 麻煩編寫一個(gè)python腳本對(duì)下面的內(nèi)容可以指定按照年齡或者成績(jī)進(jìn)行排序。 姓名 年齡 成績(jī) 小明 9 95 小張 10 84 小紅 8 99 小李 12 67 小趙 9 87 ChatGPT:您可以使用 Python 的sorted 函數(shù)來(lái)對(duì)下列數(shù)據(jù)進(jìn)行排序。這里是一個(gè)示例腳本,該腳本按照年齡或者成績(jī)進(jìn)行排序,根據(jù)指定的關(guān)鍵字進(jìn)行排序:

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("請(qǐng)輸入排序關(guān)鍵字(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("輸入錯(cuò)誤,請(qǐng)輸入age或score")


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

這個(gè)腳本首先將要排序的學(xué)生數(shù)據(jù)存儲(chǔ)在一個(gè)列表中,然后使用input 函數(shù)讀取排序關(guān)鍵字(age 或 score)。使用sorted 函數(shù)按照指定的關(guān)鍵字進(jìn)行排序,最后使用一個(gè) for 循環(huán)輸出排序后的數(shù)據(jù)。

程序測(cè)試結(jié)果:

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

H:麻煩修改上面的程序,同時(shí)可以控制正序或者倒序(這個(gè)問題能明顯判斷AI是否理解了上下文語(yǔ)境)

ChatGPT: 可以在使用 sorted 函數(shù)的時(shí)候指定參數(shù) reverse=True 來(lái)讓排序結(jié)果為倒序,參數(shù)reverse=False 或不指定時(shí)為正序。這里是修改后的代碼:
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("請(qǐng)輸入排序關(guān)鍵字(age或score): ")
sortType = input("請(qǐng)輸入排序類型(asc或desc): ")


if sortType == "asc":
    reverse = False
elif sortType == "desc":
    reverse = True
else:
    print("輸入錯(cuò)誤,請(qǐng)輸入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("輸入錯(cuò)誤,請(qǐng)輸入age或score")


for student in students:
    print(student["name"], student["age"], student["score"])
這里在之前的程序基礎(chǔ)上增加了輸入排序類型,然后在對(duì)排序關(guān)鍵字進(jìn)行分支時(shí)傳入了排序類型,具體實(shí)現(xiàn)就是在sorted 中 reverse=reverse 正序/倒序

程序測(cè)試結(jié)果:

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

非常棒??!

最精彩的地方來(lái)了,可能我們需要編寫一些perl, python, tcl腳本,因?yàn)镃hatGPT是知道上下文語(yǔ)境的,所以我們只要輸入 “麻煩用perl實(shí)現(xiàn)與上面同樣的功能”就可以了。

H:麻煩用perl實(shí)現(xiàn)與上面同樣的功能

ChatGPT: 在 Perl 中,可以使用sort 函數(shù)來(lái)對(duì)列表元素進(jìn)行排序。這里是一個(gè)示例程序,它按照年齡或者成績(jī)進(jìn)行排序,并能正序或倒序排序:
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 "請(qǐng)輸入排序關(guān)鍵字(age或score):";
my $key = ;
chomp($key);
print "請(qǐng)輸入排序類型(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 "輸入錯(cuò)誤,請(qǐng)輸入age或score
";
}


@students = reverse @students if $reverse;


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

這個(gè)程序與上面類似,首先將要排序的學(xué)生數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)組中,然后使用 讀取排序關(guān)鍵字和排序類型,按照關(guān)鍵字進(jìn)行排序。

在排序類型為desc時(shí)將數(shù)組 reverse 一下就能達(dá)到倒序排序的效果了。

程序測(cè)試結(jié)果:

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

同樣也是非常棒!

接下來(lái)測(cè)試一下ChatGPT是否會(huì)Tcl語(yǔ)言:

H:麻煩用tcl語(yǔ)言實(shí)現(xiàn)同樣的功能

ChatGPT: 在 Tcl 中,可以使用lsort 命令來(lái)對(duì)列表元素進(jìn)行排序。這里是一個(gè)示例程序,它按照年齡或者成績(jī)進(jìn)行排序,并能正序或倒序排序:
set students {
    {小明 9 95} {小張 10 84} {小紅 8 99} {小李 12 67} {小趙 9 87}
}


puts "請(qǐng)輸入排序關(guān)鍵字(age或score):"
flush stdout
set key [gets stdin]


puts "請(qǐng)輸入排序類型(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 "輸入錯(cuò)誤,請(qǐng)輸入age或score"
    exit
}


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


foreach student $students {
    puts $student
}

這個(gè)程序首先將要排序的學(xué)生數(shù)據(jù)存儲(chǔ)在一個(gè)列表中,然后使用 gets 函數(shù)讀取排序關(guān)鍵字和排序類型,按照關(guān)鍵字進(jìn)行排序。

在排序類型為desc時(shí)使用 lreverse 函數(shù)來(lái)實(shí)現(xiàn)倒序排序的效果。

這里 lsort -integer -index 1 指的是以第1個(gè)數(shù)字進(jìn)行排序, lsort -integer -index 2 為按照第二個(gè)數(shù)字進(jìn)行排序

評(píng)價(jià):ChatGPT給出的結(jié)果是相當(dāng)令人滿意了。

測(cè)試結(jié)果:完全正確,ChatGPT給出結(jié)果的速度也非???br />
89854eea-9281-11ed-bfe3-dac502259ad0.png ? 8993bdea-9281-11ed-bfe3-dac502259ad0.png ?





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCL
    TCL
    +關(guān)注

    關(guān)注

    10

    文章

    1699

    瀏覽量

    88265
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4752

    瀏覽量

    84066
  • GPT
    GPT
    +關(guān)注

    關(guān)注

    0

    文章

    347

    瀏覽量

    15178
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1517

    瀏覽量

    6904

原文標(biāo)題:免費(fèi)的萬(wàn)能程序員 - ChatGPT編寫各種腳本(Python, Perl, Tcl...)

文章出處:【微信號(hào):集成電路設(shè)計(jì)及EDA教程,微信公眾號(hào):集成電路設(shè)計(jì)及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用ChatGPT通過(guò)Shell腳本來(lái)實(shí)現(xiàn)日志分析

    ChatGPT自出道以來(lái),其出色的代碼能力被眾多程序員追捧,今天浩道就運(yùn)維工作中常見的日志分析場(chǎng)景,利用ChatGPT讓它通過(guò)Shell腳本來(lái)實(shí)現(xiàn)日志分析
    的頭像 發(fā)表于 04-07 09:09 ?2939次閱讀

    shell腳本編寫之本地腳本編寫和執(zhí)行

    用來(lái)指定使用的shell應(yīng)用;echo "my first shell !"為腳本編寫的命令代碼。2、執(zhí)行在執(zhí)行腳本時(shí),腳本必須要有執(zhí)行權(quán)限,首先給
    發(fā)表于 08-28 09:36

    腳本引擎編寫

    tcl腳本小白,我現(xiàn)在需要編寫一個(gè)腳本引擎,目前已經(jīng)建立好了自己的一套指令系統(tǒng),需要能使用這個(gè)腳本引擎將我記事本編寫的程序翻譯成機(jī)器碼,換句
    發(fā)表于 03-19 16:16

    在IC設(shè)計(jì)/驗(yàn)證中怎么應(yīng)用ChatGPT呢?

    工具,提升效率進(jìn)一步解放生產(chǎn)力?首先想到的就是,日常工作中會(huì)用到的各種腳本,包括但不限于shell/python/perl/makefile,實(shí)現(xiàn)特定功能,幫助流程自動(dòng)化,提升效率。如果這個(gè)工具真的
    發(fā)表于 02-21 15:16

    科技大廠競(jìng)逐AIGC,中國(guó)的ChatGPT在哪?

    ChatGPT“對(duì)話”的過(guò)程中,人們發(fā)現(xiàn)它的“智慧程度”遠(yuǎn)超其他的人工智能機(jī)器人。除了聊天,ChatGPT被網(wǎng)友們用來(lái)寫文案、翻譯文本、為代碼糾錯(cuò),甚至用來(lái)編寫代碼。 憑借出色的表現(xiàn),Cha
    發(fā)表于 03-03 14:28

    python編寫腳本方法

    對(duì)于具有484個(gè)引腳的芯片,如果手動(dòng)一個(gè)一個(gè)設(shè)置引腳,必然是一場(chǎng)噩夢(mèng)。網(wǎng)上有使用Capture進(jìn)行自動(dòng)導(dǎo)入的帖子,不過(guò)沒有找到AD方面的帖子。本文使用python,編寫腳本,自動(dòng)分配引腳。
    發(fā)表于 11-17 11:38 ?4885次閱讀

    u-boot中Hush shell的功能及編寫腳本的方法介紹

    了解u-boot中Hush shell的功能,以及如何為其編寫腳本。 說(shuō)明了存儲(chǔ)和檢索腳本的方法。
    的頭像 發(fā)表于 11-22 07:00 ?5411次閱讀

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    chatgpt國(guó)內(nèi)怎么

    chatgpt國(guó)內(nèi)怎么 ChatGPT國(guó)內(nèi)能用嗎?隨著這個(gè)人工智能AI的火爆,各種國(guó)內(nèi)用戶也希望能夠嘗試使用,如何在國(guó)內(nèi)使用也是大家想知道的點(diǎn),在這里為大家介紹,可以來(lái)看看。
    發(fā)表于 02-10 14:11 ?19.8w次閱讀

    chatgpt怎么

    chatgpt怎么 chatgpt怎么?chatgpt 簡(jiǎn)介 ChatGPT是一種語(yǔ)言模型,
    發(fā)表于 02-10 14:22 ?5.7w次閱讀

    ChatGPT幾個(gè)有趣的玩法

    文章目錄 開啟一個(gè)VM 以……的風(fēng)格發(fā)文 自動(dòng)寫代碼 腳本編寫一個(gè)多進(jìn)程ping主機(jī)的程序chatGPT學(xué)習(xí)loki 客制化
    發(fā)表于 02-15 09:48 ?0次下載
    <b class='flag-5'>ChatGPT</b>幾個(gè)有趣的玩法

    chatgpt是什么意思 chatgpt有什么

    有不少教程,搜索觀看即可?! ?b class='flag-5'>ChatGPT 是一款由 OpenAI 開發(fā)的大型語(yǔ)言模型,主要功能是回答用戶的問題和完成各種語(yǔ)言任務(wù),如對(duì)話生成、文本摘要、翻譯、生成文本 等。它使用了先進(jìn)的深度學(xué)習(xí)技術(shù)和海量的語(yǔ)言數(shù)據(jù)進(jìn)行訓(xùn)練,可以在
    發(fā)表于 07-19 14:21 ?4次下載

    編寫一個(gè)點(diǎn)名器腳本

    目的:編寫一個(gè)腳本,可以將準(zhǔn)別好的名字合集的.txt傳入腳本,然后每次隨機(jī)顯示一個(gè)人的姓名
    的頭像 發(fā)表于 11-06 12:41 ?471次閱讀
    <b class='flag-5'>編寫</b>一個(gè)點(diǎn)名器<b class='flag-5'>腳本</b>

    shell腳本編寫程序

    當(dāng)編寫Shell腳本時(shí),你需要按照以下步驟進(jìn)行: 打開一個(gè)文本編輯器,例如vi、nano或gedit。 創(chuàng)建一個(gè)新文件,并將其保存為以.sh為擴(kuò)展名的文件, 例如script.sh 。 在文件的第一
    的頭像 發(fā)表于 11-08 10:12 ?760次閱讀

    shell實(shí)例三(編寫批量修改擴(kuò)展名腳本)

    實(shí)現(xiàn)功能: 編寫批量修改擴(kuò)展名腳本,如批量將 txt 文件修改為 doc 文件 執(zhí)行腳本時(shí),需要給腳本添加位置參數(shù)
    的頭像 發(fā)表于 11-09 09:35 ?573次閱讀
    shell實(shí)例三(<b class='flag-5'>編寫</b>批量修改擴(kuò)展名<b class='flag-5'>腳本</b>)