电子说

最近几周使用了一下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 循环输出排序后的数据。
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 正序/倒序 
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}, "
";
}
这个程序与上面类似,首先将要排序的学生数据存储在一个数组中,然后使用
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 函数读取排序关键字和排序类型,按照关键字进行排序。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !