
最近幾周使用了一下ChatGPT,它給我的感覺(jué)是眼前一亮,讓我直呼牛逼~~提升辦公效率的神器~~
與Siri這種人工智zhang而言,ChatGPT感覺(jué)上才是真正的人工智能助手。從聊天上來(lái)看能感覺(jué)到它幾乎已經(jīng)完全理解了人們說(shuō)的是什么了(包括中文),且能聯(lián)系上下文語(yǔ)境,而非孤零零的看待每個(gè)問(wèn)題,這一點(diǎn)我給個(gè)大大的贊
(這一點(diǎn)在下面的編程實(shí)例上能明顯看出來(lái))
經(jīng)使用發(fā)現(xiàn),除了專業(yè)領(lǐng)域的問(wèn)題之外, 相較于某度和普通的搜索引擎而言,它還是更能給出一個(gè)比較令人滿意的答案的。
最牛逼的還是屬于程序編寫(xiě)方面,ChatGPT在各個(gè)編程語(yǔ)言上面都挺在行的(嘗試了下Python, Perl, Tcl都挺不錯(cuò)的),可以說(shuō)是一個(gè)各個(gè)語(yǔ)言都很了解的程序員了。(各種語(yǔ)言都很了解,能信手拈來(lái)的人估計(jì)不多吧。。。這一點(diǎn)非常佩服它)
對(duì)于初學(xué)者而言或者一些簡(jiǎn)單的程序編寫(xiě)而言,它都能給出非常正確的答案,且還會(huì)給代碼加上注釋,也會(huì)對(duì)程序做出相應(yīng)的解釋,因此應(yīng)對(duì)一些通用的問(wèn)題而言它是綽綽有余的(程序員即使不會(huì)失業(yè)但也感到后背發(fā)涼~~)。它對(duì)小白而言應(yīng)該也非常友好,如果一些小白想問(wèn)問(wèn)題的話,那ChatGPT可以說(shuō)是一個(gè)孜孜不倦的老師了,能一直回答各種小白問(wèn)題的老師估計(jì)只有機(jī)器了吧~~
另外對(duì)于一些非常復(fù)雜的問(wèn)題,它不一定會(huì)給出完全正確的答案,但是它的結(jié)果還是比較有參考意義的,甚至還能給出一些Idea,比如想實(shí)現(xiàn)某個(gè)功能,想查詢是否有哪個(gè)已有的庫(kù)可以實(shí)現(xiàn)這個(gè)功能,可以直接問(wèn)ChatGPT。
下面用一個(gè)問(wèn)題來(lái)看一下ChatGPT的回答是否出乎了你的意料:
H: 麻煩編寫(xiě)一個(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é)果:
? ?H:麻煩修改上面的程序,同時(shí)可以控制正序或者倒序(這個(gè)問(wèn)題能明顯判斷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é)果:

非常棒??!
最精彩的地方來(lái)了,可能我們需要編寫(xiě)一些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ù)組中,然后使用在排序類型為desc時(shí)將數(shù)組 reverse 一下就能達(dá)到倒序排序的效果了。
程序測(cè)試結(jié)果:

? ?同樣也是非常棒!
接下來(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 />
?
?
審核編輯:劉清
-
TCL
+關(guān)注
關(guān)注
11文章
1807瀏覽量
91441 -
python
+關(guān)注
關(guān)注
57文章
4869瀏覽量
89931 -
GPT
+關(guān)注
關(guān)注
0文章
368瀏覽量
16843 -
ChatGPT
+關(guān)注
關(guān)注
31文章
1598瀏覽量
10216
原文標(biāo)題:免費(fèi)的萬(wàn)能程序員 - ChatGPT編寫(xiě)各種腳本(Python, Perl, Tcl...)
文章出處:【微信號(hào):集成電路設(shè)計(jì)及EDA教程,微信公眾號(hào):集成電路設(shè)計(jì)及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
利用ChatGPT通過(guò)Shell腳本來(lái)實(shí)現(xiàn)日志分析
shell腳本編寫(xiě)之本地腳本的編寫(xiě)和執(zhí)行
腳本引擎編寫(xiě)
在IC設(shè)計(jì)/驗(yàn)證中怎么應(yīng)用ChatGPT呢?
python編寫(xiě)腳本方法
u-boot中Hush shell的功能及編寫(xiě)腳本的方法介紹
什么是腳本?腳本程序?qū)W習(xí)
chatgpt國(guó)內(nèi)怎么用
ChatGPT幾個(gè)有趣的玩法
chatgpt是什么意思 chatgpt有什么用
shell腳本編寫(xiě)程序
shell實(shí)例三(編寫(xiě)批量修改擴(kuò)展名腳本)
用ChatGPT編寫(xiě)各種腳本
評(píng)論