当前位置:首页 » 《随便一记》 » 正文

chatGPT对于一个python初学者有什么用?

20 人参与  2023年05月07日 17:13  分类 : 《随便一记》  评论

点击全文阅读


目录

一、前言二、开始请教三、总结

一、前言

我最近开始学习python,感觉python整体语法啥的还是很好学的,但是正是由于太简单,且我还有多年的java编程基础,便很难沉下心去学习。想到之前看到的一段话:人性总是趋利避害的,做一件事情没有短期、中期、长期的正反馈。不利于一致坚持做下去。 想到之前搞java 的经验:想快速上手java,并对java程序产生兴趣 那就是拿java写出各种各样的小工具,获取短期的正反馈,培养学习Java的兴趣,故我在学习python的时候,也想这样切入,再次感叹python的GUI类库真是太全面,语法使用啥的都很简单,故写了一篇 python干饭神器—今天吃什么?python告诉你 ,写完以后还是小有成就感,但是想着我这样写的是不是不太正规?会不会代码结构不够规范呢?身边认识的也没有会python的,正在苦思冥想之际,突然刷到一个 chatGPT的相关的推文,这不是巧了吗?? 我可以让chatGPT 当我的老师,帮我检查我的代码或者给我一个代码示例,同时还可以检验一下chatGPT真的有大家说的那么厉害吗? 一箭双雕岂不是美哉????

二、开始请教

在这里插入图片描述我写的程序其实简单来说就是一个轮播图(如上图所示),同时还有可以手动切换的功能,故我就这样像chatGPT发起了提问:用python 写一个带界面 可切换的轮播图, 没想到 chatGPT 的反应很快啊,嗖的一下 就开始编码了,丝毫不带犹豫的:
在这里插入图片描述
完整python代码:

import tkinter as tkfrom PIL import ImageTk, Imageclass App(tk.Tk):    def __init__(self, images):        super().__init__()        self.images = images        self.current_image = 0        self.create_widgets()    def create_widgets(self):        self.canvas = tk.Canvas(self, width=400, height=300)        self.canvas.pack()        self.show_image()        prev_button = tk.Button(self, text='Prev', command=self.prev_image)        prev_button.pack(side=tk.LEFT)        next_button = tk.Button(self, text='Next', command=self.next_image)        next_button.pack(side=tk.RIGHT)    def show_image(self):        image = Image.open(self.images[self.current_image])        image = image.resize((400, 300), Image.ANTIALIAS)        photo = ImageTk.PhotoImage(image)        self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)        self.after(5000, self.next_image)    def prev_image(self):        self.current_image -= 1        if self.current_image < 0:            self.current_image = len(self.images) - 1        self.canvas.delete('all')        self.show_image()    def next_image(self):        self.current_image += 1        if self.current_image >= len(self.images):            self.current_image = 0        self.canvas.delete('all')        self.show_image()if __name__ == '__main__':    images = ['image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg']    app = App(images)    app.mainloop()

chatGPT写这段这么长的代码没超过1分钟且看上去还很规范,而我写的那段代码花了我差不多1上午的时间,(我好菜,???),我修改了一下 图片的获取路径,便到编译器去运行了一下,本以为会一把过,没想到程序运行没有报错,但是图片没有加载出来,难道是我把代码的改坏了??,我为了偷懒就写了一个函数遍历某一个文件夹下面的图片,仔细检查了一下没有发现什么错,于是乎我把完整代码 贴给 chatGPT 让他帮我找bug,
在这里插入图片描述
他又给我提供了一个方案 我试了一下还是不行,接着提问:
在这里插入图片描述
这次它直接教我在代码加上 try catch 来捕获异常,不得不说 chatGPT还是有2把刷子的,考虑问题全面,还能手把手教学写代码 ???,于是乎我又加了一点需求 要求程序窗口需要在屏幕中央(居中显示)并让它把完整代码都打印出来:

import osimport tkinter as tkfrom PIL import ImageTk, Imageclass App(tk.Tk):    def __init__(self, images):        super().__init__()        assert tk.TkVersion >= 8.6, "PhotoImage not supported with this version of Tkinter"        self.images = images        self.current_image = 0        self.create_widgets()    def create_widgets(self):        self.canvas = tk.Canvas(self, width=800, height=600)        self.canvas.pack()        self.show_image()        prev_button = tk.Button(self, text='Prev', command=self.prev_image)        prev_button.pack(side=tk.LEFT)        next_button = tk.Button(self, text='Next', command=self.next_image)        next_button.pack(side=tk.RIGHT)    def show_image(self):        try:            self.image_obj = Image.open(self.images[self.current_image])            image = self.image_obj.resize((800, 600), Image.LANCZOS)            # photo = ImageTk.PhotoImage(image)            # self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)            self.photo = ImageTk.PhotoImage(image)            self.canvas.create_image(0, 0, anchor=tk.NW, image=self.photo)            #self.after(5000, self.next_image)        except Exception as e:            print(f"Error: {e}")            print(f"Image file path: {self.images[self.current_image]}")    def prev_image(self):        self.current_image -= 1        if self.current_image < 0:            self.current_image = len(self.images) - 1        self.canvas.delete('all')        self.show_image()    def next_image(self):        self.current_image += 1        if self.current_image >= len(self.images):            self.current_image = 0        self.canvas.delete('all')        self.show_image()if __name__ == '__main__':    # 指定目录    directory = "imgs/"    # 获取目录下的所有文件的绝对路径    file_paths = []    for filename in os.listdir(directory):        path = os.path.join(directory, filename)        if any(ext in filename.lower() for ext in ('jpg', 'jpeg', 'png', 'gif')):            file_paths.append(path)            print(path)    app = App(file_paths)    app.mainloop()

三、总结

经过一番试用 不得不说chatGPT还是很棒的,写代码真是66的,的确比之前接触的人工智能产品要完全提升一个层次,也真的让人感觉配得上智能二字。但是,要说替代程序员估计还有很长的距离。从目前来看,它在某些方面充当辅助工具是可以胜任的,例如,搜索引擎、编程开发。但是像架构设计这一块还是不能胜任。所以我们程序员完全可以把chatGPT当成一个良师益友,帮助我们进行编程开发。


点击全文阅读


本文链接:http://zhangshiyu.com/post/61419.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1