最近幾周使用了一下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 循環輸出排序后的數據。
程序測試結果:
? ?
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 正序/倒序
程序測試結果:
非常棒!!
最精彩的地方來了,可能我們需要編寫一些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 一下就能達到倒序排序的效果了。
程序測試結果:
? ?
同樣也是非常棒!
接下來測試一下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給出結果的速度也非常快
? ?
審核編輯:劉清
-
TCL
+關注
關注
10文章
1725瀏覽量
88601 -
python
+關注
關注
56文章
4797瀏覽量
84683 -
GPT
+關注
關注
0文章
354瀏覽量
15372 -
ChatGPT
+關注
關注
29文章
1560瀏覽量
7666
原文標題:免費的萬能程序員 - ChatGPT編寫各種腳本(Python, Perl, Tcl...)
文章出處:【微信號:集成電路設計及EDA教程,微信公眾號:集成電路設計及EDA教程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論