最近幾周使用了一下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è)比較令人滿意的答案的。
最牛逼的還是屬于程序編寫方面,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ì)一些通用的問(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: 麻煩編寫一個(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)了,可能我們需要編寫一些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 =這個(gè)程序與上面類似,首先將要排序的學(xué)生數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)組中,然后使用; 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}, " "; }
在排序類型為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)注
10文章
1725瀏覽量
88601 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84682 -
GPT
+關(guān)注
關(guān)注
0文章
354瀏覽量
15372 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1560瀏覽量
7666
原文標(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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論