chatGPT对于一个python初学者有什么用?
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
一、前言
我最近开始学习python感觉python整体语法啥的还是很好学的但是正是由于太简单且我还有多年的java编程基础便很难沉下心去学习。想到之前看到的一段话人性总是趋利避害的做一件事情没有短期、中期、长期的正反馈。不利于一致坚持做下去
。 想到之前搞java 的经验想快速上手java并对java程序产生兴趣 那就是拿java写出各种各样的小工具获取短期的正反馈培养学习Java的兴趣故我在学习python的时候也想这样切入再次感叹python的GUI类库真是太全面语法使用啥的都很简单故写了一篇 python干饭神器—今天吃什么python告诉你 写完以后还是小有成就感但是想着我这样写的是不是不太正规会不会代码结构不够规范呢身边认识的也没有会python的正在苦思冥想之际突然刷到一个 chatGPT的相关的推文这不是巧了吗 我可以让chatGPT 当我的老师帮我检查我的代码或者给我一个代码示例同时还可以检验一下chatGPT真的有大家说的那么厉害吗? 一箭双雕岂不是美哉
二、开始请教
我写的程序其实简单来说就是一个轮播图如上图所示同时还有可以手动切换的功能故我就这样像chatGPT发起了提问用python 写一个带界面 可切换的轮播图
, 没想到 chatGPT 的反应很快啊嗖的一下 就开始编码了丝毫不带犹豫的
完整python代码
import tkinter as tk
from PIL import ImageTk, Image
class 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 os
import tkinter as tk
from PIL import ImageTk, Image
class 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当成一个良师益友帮助我们进行编程开发。
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |