20223210 2022-2023-2 《Python程序设计》实验四报告

20223210 2022-2023-2 《Python程序设计》实验四报告

课程:《Python程序设计》
班级: 2232
姓名: 黄湛
学号:20223210
实验教师:王志强
实验日期:2023年5月20日
必修/选修: 公选课

(一)实验内容

python的综合应用
利用tkinter编写扫雷小游戏

(二)实验过程及结果

扫雷小游戏 懂得都懂

1.初始化设置
import random
from tkinter import *
import tkinter as tk
from tkinter.messagebox import *
from functools import partial

game = Tk()
game.title("扫雷")
nx = [-1,-1,-1,0,0,1,1,1]
ny = [-1,0,1,-1,1,-1,0,1]
color = ["White","Blue","Green","Red","Brown","Gold","Pink","Purple","Black"] #不同数字的颜色
game_map = []  #隐藏的地图 ‘X’表示雷
state_map = [] #地图的状态 0未被点击 1已点击 2被标记 3被质疑 4雷被引爆
game_size = "" #地图的尺寸 (窗口大小用
size = 25  #格子大小
length = 0 #长
widthh = 0 #宽
tot = 1e9    #雷的个数
2.主界面
def home():
    clear()
    length = widthh = 0
    tot = 1e9
    game.geometry("300x280")  # 窗口大小 字母x
    words = tk.Label(game, text = "欢迎来到扫雷游戏!\n请选择您的游戏难度", font="五号")
    words.place(y=10, relx=0.2)
    b = tk.Button(game, text= "初级   9x9", font="五号", command=partial(create, 9, 9, 10))
    b.place(y=60, relx=0.3)
    b = tk.Button(game, text= "中级 16x16", font="五号", command=partial(create, 16, 16, 40))
    b.place(y=100, relx=0.3)
    b = tk.Button(game, text= "高级 16x30", font="五号", command=partial(create, 30, 16, 99))
    b.place(y=140, relx=0.3)

    global v1,v2,v3  #自定义地图
    v1 = tk.StringVar()
    e = tk.Entry(game,  textvariable = v1, font="五号", bg = "White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.2)
    v2 = tk.StringVar()
    e = tk.Entry(game, textvariable = v2, font="五号", bg="White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.4)
    v3 = tk.StringVar()
    e = tk.Entry(game, textvariable = v3, font="五号", bg="White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.6)
    b = tk.Button(game, text = "  自定义  ",font = "五号", command=DIY)
    b.place(y=180, relx = 0.3)
3.自定义地图的合法性判断和弹窗
def DIY():
    a = v1.get()
    b = v2.get()
    c = v3.get()
    if a.isdigit() == 0 or b.isdigit() == 0 or c.isdigit() == 0:
        showinfo(parent=game, title="请重试", message="抱歉,输入数据不合法  (>﹏<)")
        return
    a = int(a)
    b = int(b)
    c = int(c)
    if a <= 0 or b <= 0 or a > 24 or b > 50:
        showinfo(parent=game, title="请重试", message="抱歉,地图大小不合法  (>﹏<)")
        return
    elif c < 0 or c > a * b:
        showinfo(parent=game, title="请重试", message="抱歉,地雷数目不合法  (>﹏<)")
        return
    create(a, b, c)
4.菜单栏设置

Home键返回主界面
Help键显示游戏规则

def showhelp():
    with open('扫雷游戏Help.txt', encoding='utf-8') as file:
        words = file.read()
    showinfo(parent=game, title="扫雷游戏", message=words)
def showmenu():
    m = tk.Menu(game)
    m.add_command(label="Home", command=partial(home))
    m.add_command(label="Help", command=partial(showhelp))
    game.config(menu=m)
5.游戏地图创建以及绘制

def clear(): #用 winfo_children() 获取窗口中的所有子部件
    for item in game.winfo_children():
        if item.winfo_class() != "Menu":
            item.destroy()
def draw():
    clear()
    button = Button(game, text = "≥Ö‿Ö≤", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 3, relx = 0.4, width = 80)
    if judge() == 1:
        success()
        return
    game_size = str((length + 1)* size) + "x" + str((widthh + 2)* size)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game, bg = "Gainsboro")
            if state_map[i][j] == 0:
                pass
                #button["text"] = game_map[i][j]
            elif state_map[i][j] == 2:
                button["fg"] = "Red"
                button["text"] = "!"
            elif state_map[i][j] == 3:
                button["fg"] = "DarkBlue"
                button["text"] = "?"
            else:
                button["bg"] = "White"
                button["fg"] = color[game_map[i][j]]
                if game_map[i][j] != 0:
                    button["text"] = str(game_map[i][j])
            button.bind("<Button-1>", partial(left_work, a = i, b = j))
            button.bind("<Button-3>", partial(right_work, a = i, b = j))
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    game.geometry(game_size)
def create(a, b, c):
    global game_map, state_map,length,widthh,tot
    length = a
    widthh = b
    tot = c
    data = random.sample(range(0, length * widthh - 1), tot)
    # random.sample(range(1, n), k) 表示从1~n的范围内随机生成k个不重复的数 结果以列表返回
    game_map = [[0] * widthh for i in range(length)]
    state_map = [[0] * widthh for i in range(length)]
    for val in data:
        game_map[int(val / widthh)][val % widthh] = 'X' #雷的位置为'X'
    for i in range(length):
        for j in range(widthh):
            if game_map[i][j] != 'X':
                for k in range(8):
                    if i + nx[k] < 0 or i + nx[k] >= length:
                        pass
                    elif j + ny[k] < 0 or j + ny[k] >= widthh:
                        pass
                    elif game_map[i + nx[k]][j + ny[k]] == 'X':
                        game_map[i][j] = game_map[i][j] + 1
    draw()
6.判断游戏胜利条件

地雷全部被正确标记 or 只剩含雷的方块没有被点击


def judge():
    cnt1 = 0 #被成功标记的雷的个数
    cnt2 = 0 #被错误标记的雷的个数
    cnt3 = 0 #没被点开的格子的个数
    for i in range(length):
        for j in range(widthh):
            if state_map[i][j] == 1:
                pass
            cnt3 = cnt3 + 1
            if state_map[i][j] == 2:
                if game_map[i][j] == 'X':
                    cnt1 = cnt1 + 1
                else:
                    cnt2 = cnt2 + 1
    if cnt3 == tot:
        return 1
    if cnt2 > 0:
        return 0
    if cnt1 == tot :
        return 1
    return 0
7.鼠标右/左击设置

左击点开格子
右击标记/质疑/取消质疑格子

def spread(a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    state_map[a][b] = 1
    if game_map[a][b] == 0:
        for k in range(8):
            if a + nx[k] < 0 or a + nx[k] >= length:
                pass
            elif b + ny[k] < 0 or b + ny[k] >= widthh:
                pass
            else:
                spread(a + nx[k], b + ny[k])
def left_work(event, a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    elif game_map[a][b] == 'X':
        state_map[a][b] = 4
        failure()
    else:
        spread(a, b)
        draw()
def right_work(event, a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    elif state_map[a][b] == 0:
        state_map[a][b] = 2
    elif state_map[a][b] == 2:
        state_map[a][b] = 3
    elif state_map[a][b] == 3:
        state_map[a][b] = 0
    draw()
8.游戏胜利
def success():
    button = Button(game, text = "(ღ♡‿♡ღ)", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 0, rely = 0.4, width = 80)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game)
            if state_map[i][j] == 1:
                button["bg"] = "White"
                if game_map[i][j] != 0:
                    button["fg"] = color[game_map[i][j]]
                    button["text"] = game_map[i][j]
            elif game_map[i][j] == "X":
                button["bg"] = "LawnGreen"
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    showinfo(parent=game, title="游戏结束", message="恭喜你,游戏胜利  (ღ♡‿♡ღ)")
9.游戏失败
def failure():
    button = Button(game, text = "(>﹏<)", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 3, relx = 0.4, width = 80)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game)
            if state_map[i][j] == 4:
                button["bg"] = "Red"
            elif state_map[i][j] == 1:
                button["bg"] = "White"
                if game_map[i][j] != 0:
                    button["fg"] = color[game_map[i][j]]
                    button["text"] = game_map[i][j]
            elif game_map[i][j] != "X":
                button["bg"] = "Gainsboro"
                if state_map[i][j] == 2:    #错误标记
                    button["fg"] = "Red"
                    button["text"] = "X"
            else:
                if state_map[i][j] != 2:
                    button["bg"] = "MidnightBlue"
                else:
                    button["bg"] = "LawnGreen"
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    showinfo(parent=game, title="游戏结束", message="很遗憾,游戏失败  (>﹏<)")
10.源代码
import random
from tkinter import *
import tkinter as tk
from tkinter.messagebox import *
from functools import partial

game = Tk()
game.title("扫雷")
nx = [-1,-1,-1,0,0,1,1,1]
ny = [-1,0,1,-1,1,-1,0,1]
color = ["White","Blue","Green","Red","Brown","Gold","Pink","Purple","Black"] #不同数字的颜色
game_map = []  #隐藏的地图 ‘X’表示雷
state_map = [] #地图的状态 0未被点击 1已点击 2被标记 3被质疑 4雷被引爆
game_size = "" #地图的尺寸 (窗口大小用
size = 25  #格子大小
length = 0 #长
widthh = 0 #宽
tot = 1e9    #雷的个数



def judge():
    cnt1 = 0 #被成功标记的雷的个数
    cnt2 = 0 #被错误标记的雷的个数
    cnt3 = 0 #没被点开的格子的个数
    for i in range(length):
        for j in range(widthh):
            if state_map[i][j] == 1:
                pass
            cnt3 = cnt3 + 1
            if state_map[i][j] == 2:
                if game_map[i][j] == 'X':
                    cnt1 = cnt1 + 1
                else:
                    cnt2 = cnt2 + 1
    if cnt3 == tot:
        return 1
    if cnt2 > 0:
        return 0
    if cnt1 == tot :
        return 1
    return 0
def success():
    button = Button(game, text = "(ღ♡‿♡ღ)", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 0, rely = 0.4, width = 80)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game)
            if state_map[i][j] == 1:
                button["bg"] = "White"
                if game_map[i][j] != 0:
                    button["fg"] = color[game_map[i][j]]
                    button["text"] = game_map[i][j]
            elif game_map[i][j] == "X":
                button["bg"] = "LawnGreen"
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    showinfo(parent=game, title="游戏结束", message="恭喜你,游戏胜利  (ღ♡‿♡ღ)")
def failure():
    button = Button(game, text = "(>﹏<)", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 3, relx = 0.4, width = 80)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game)
            if state_map[i][j] == 4:
                button["bg"] = "Red"
            elif state_map[i][j] == 1:
                button["bg"] = "White"
                if game_map[i][j] != 0:
                    button["fg"] = color[game_map[i][j]]
                    button["text"] = game_map[i][j]
            elif game_map[i][j] != "X":
                button["bg"] = "Gainsboro"
                if state_map[i][j] == 2:    #错误标记
                    button["fg"] = "Red"
                    button["text"] = "X"
            else:
                if state_map[i][j] != 2:
                    button["bg"] = "MidnightBlue"
                else:
                    button["bg"] = "LawnGreen"
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    showinfo(parent=game, title="游戏结束", message="很遗憾,游戏失败  (>﹏<)")
def spread(a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    state_map[a][b] = 1
    if game_map[a][b] == 0:
        for k in range(8):
            if a + nx[k] < 0 or a + nx[k] >= length:
                pass
            elif b + ny[k] < 0 or b + ny[k] >= widthh:
                pass
            else:
                spread(a + nx[k], b + ny[k])
def left_work(event, a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    elif game_map[a][b] == 'X':
        state_map[a][b] = 4
        failure()
    else:
        spread(a, b)
        draw()
def right_work(event, a, b):
    global state_map
    if state_map[a][b] == 1:
        return
    elif state_map[a][b] == 0:
        state_map[a][b] = 2
    elif state_map[a][b] == 2:
        state_map[a][b] = 3
    elif state_map[a][b] == 3:
        state_map[a][b] = 0
    draw()
def clear(): #用 winfo_children() 获取窗口中的所有子部件
    for item in game.winfo_children():
        if item.winfo_class() != "Menu":
            item.destroy()
def draw():
    clear()
    button = Button(game, text = "≥Ö‿Ö≤", bg = "Gainsboro", command = partial(create, length, widthh, tot))
    button.place(y = 3, relx = 0.4, width = 80)
    if judge() == 1:
        success()
        return
    game_size = str((length + 1)* size) + "x" + str((widthh + 2)* size)
    for i in range(length):
        for j in range(widthh):
            button = tk.Button(game, bg = "Gainsboro")
            if state_map[i][j] == 0:
                pass
                #button["text"] = game_map[i][j]
            elif state_map[i][j] == 2:
                button["fg"] = "Red"
                button["text"] = "!"
            elif state_map[i][j] == 3:
                button["fg"] = "DarkBlue"
                button["text"] = "?"
            else:
                button["bg"] = "White"
                button["fg"] = color[game_map[i][j]]
                if game_map[i][j] != 0:
                    button["text"] = str(game_map[i][j])
            button.bind("<Button-1>", partial(left_work, a = i, b = j))
            button.bind("<Button-3>", partial(right_work, a = i, b = j))
            button.place(x = (i + 0.5) * size , y = (j + 1.5) * size, height = size, width = size)
    game.geometry(game_size)
def create(a, b, c):
    global game_map, state_map,length,widthh,tot
    length = a
    widthh = b
    tot = c
    data = random.sample(range(0, length * widthh - 1), tot)
    # random.sample(range(1, n), k) 表示从1~n的范围内随机生成k个不重复的数 结果以列表返回
    game_map = [[0] * widthh for i in range(length)]
    state_map = [[0] * widthh for i in range(length)]
    for val in data:
        game_map[int(val / widthh)][val % widthh] = 'X' #雷的位置为'X'
    for i in range(length):
        for j in range(widthh):
            if game_map[i][j] != 'X':
                for k in range(8):
                    if i + nx[k] < 0 or i + nx[k] >= length:
                        pass
                    elif j + ny[k] < 0 or j + ny[k] >= widthh:
                        pass
                    elif game_map[i + nx[k]][j + ny[k]] == 'X':
                        game_map[i][j] = game_map[i][j] + 1
    draw()
def DIY():
    a = v1.get()
    b = v2.get()
    c = v3.get()
    if a.isdigit() == 0 or b.isdigit() == 0 or c.isdigit() == 0:
        showinfo(parent=game, title="请重试", message="抱歉,输入数据不合法  (>﹏<)")
        return
    a = int(a)
    b = int(b)
    c = int(c)
    if a <= 0 or b <= 0 or a > 24 or b > 50:
        showinfo(parent=game, title="请重试", message="抱歉,地图大小不合法  (>﹏<)")
        return
    elif c < 0 or c > a * b:
        showinfo(parent=game, title="请重试", message="抱歉,地雷数目不合法  (>﹏<)")
        return
    create(a, b, c)


def home():
    clear()
    length = widthh = 0
    tot = 1e9
    game.geometry("300x280")  # 窗口大小 字母x
    words = tk.Label(game, text = "欢迎来到扫雷游戏!\n请选择您的游戏难度", font="五号")
    words.place(y=10, relx=0.2)
    b = tk.Button(game, text= "初级   9x9", font="五号", command=partial(create, 9, 9, 10))
    b.place(y=60, relx=0.3)
    b = tk.Button(game, text= "中级 16x16", font="五号", command=partial(create, 16, 16, 40))
    b.place(y=100, relx=0.3)
    b = tk.Button(game, text= "高级 16x30", font="五号", command=partial(create, 30, 16, 99))
    b.place(y=140, relx=0.3)

    global v1,v2,v3  #自定义地图
    v1 = tk.StringVar()
    e = tk.Entry(game,  textvariable = v1, font="五号", bg = "White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.2)
    v2 = tk.StringVar()
    e = tk.Entry(game, textvariable = v2, font="五号", bg="White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.4)
    v3 = tk.StringVar()
    e = tk.Entry(game, textvariable = v3, font="五号", bg="White", justify = tk.CENTER)
    e.place(y=220, height = 30, width=55,relx = 0.6)
    b = tk.Button(game, text = "  自定义  ",font = "五号", command=DIY)
    b.place(y=180, relx = 0.3)

def showhelp():
    with open('扫雷游戏Help.txt', encoding='utf-8') as file:
        words = file.read()
    showinfo(parent=game, title="扫雷游戏", message=words)
def showmenu():
    m = tk.Menu(game)
    m.add_command(label="Home", command=partial(home))
    m.add_command(label="Help", command=partial(showhelp))
    game.config(menu=m)

showmenu()
home()
game.mainloop()
11.运行视频

扫雷演示

12.代码提交到gitee

(三) 实验过程中遇到的问题以及感想体会

  • 问题1:最后一行/列button的大小不对

  • 问题1解决方案:将height/width的设置移动到place语句里 咱也不懂为什么啊

  • 问题2:传递参数时明明 传了2个参数,却报错说传了3个

  • 问题2解决方案:将partial函数里隐藏参数event置为默认值 CHATGPTNB!!!

  • 问题3:无法成功导入txt文件里的字

  • 问题3解决方案:
    with open('扫雷游戏Help.txt', 'r') as file:
    修改为 with open('扫雷游戏Help.txt', encoding='utf-8') as file:

  • 编写调试的过程中,还有很多细细碎碎的小问题记不清了zzz

  • 感想体会
    我个人对GUI界面编程更多的兴趣,通过这次实验,对tkinter模块的应用变得更加熟练,也有了更深入的体会。
    虽然在扫雷地图的更新方面还有些不足(指更新地图的美丽转场小动画 延迟),但在今后的日子里,我也将继续学习提高,将编程更多更好地应用到日常生活,这是编程解决实际问题的魅力所在。

(四)全课总结

这学期非常高兴能选到王志强老师的python课 (据说往年都三秒没呀,感谢稀碎的教务系统卡我进去)

雀食如学长学姐们大力推荐的那样,python课程非常地生动有趣,也让我真正学到了不少本领。从python的基本语法,到其许多强大的库功能,以及socket、爬虫等知识。(虽然还有点懵懵)
不仅仅是理论知识的讲解,在课上老师允许我们使用电脑、并鼓励大家进行跟随实践,也时常联系到其他方面的知识,让我体会到python与其他编程语言的对比差异,深入掌握理论知识在实际项目中的应用,收益颇丰。

除此之外,python课程难度的设置也十分合理,有层次地由易到难、由浅到深,让我在每次实验过程中都能有全新的收获。
希望在之后的教学中,能有更加系统的socket编程/爬虫讲解 (弱弱教教呜呜) ,因为我对这方面的知识十分陌生,但又非常的感兴趣。 (同时,也希望加强考核难度,狠狠的拷打他们!!误)

最后,再次感谢老师的指导,祝老师的python课程能越办越好!(撒花.jpg)

参考资料

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
随着国家大数据战略的深入实施,各行业智慧化建设急需数据分析人才和智能应用人才。智慧化简单来说是一个以机器替换人力的过程,而机器的“灵魂”是程序。Python已经成为公认的驱动大数据智能应用的主流编程语言Python程序设计的书籍已经琳琅满目,每一本书都凝聚了作者对Python的理解和对程序设计的认识,都是作者编程开发和教学经验的总结,都折射出作者的专业背景。由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和解释,用程序表达算法。鉴于此,我们编写了本书。 本书每一章的标题都以Python开头,凸显Python在各个部分都有其独特的编程理念和方法。与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的编程特点和规律之中。如变量定义、数据类型、数据结构、控制结构、类和对象、文件访问、数据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地给学习者展示本章的知识和技术体系,以便学习者在学习过程中始终能保持思路清晰和整体把握。每一章开头的本章导读都是编者多年来程序开发与设计教学经验的提炼与升华,都是对程序设计的理解和感悟,值得学习者深入领会。每一章开头的本章要点都是要求学习者深入理解的重要知识和熟练掌握的关键技术。每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 下面是本书的体系结构图。 第1章Python编程初步。学习本章,要了解Python作为一种计算机程序设计脚本语言,结合了解释性、编译性和互动性的特点;了解在Linux和Windows中安装Python的方法;了解IDLE、PyCharm和Jupyter三种常用Python程序编辑环境。工欲善其事,必先利其器,通过对本章的学习,学习者可拥有一个强大的编程工具,从此开启数据分析编程之旅。 第2章Python语言基础。Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、篇章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本数据类型、常量和变量、运算符和表达式;理解程序的段落和篇章,主要包括常用内置函数、库函数和系统函数的使用;掌握程序的语法规则,主要包括常用的变量定义和标识符命名规则、语句组织成文编码规则等。这些都是程序设计的基础,学习者只有对此熟练掌握后,才能在后续的学习中得心应手。 第3章Python组合数据类型。组合数据类型是Python语言区别于其他高级编程语言的一大特色,通过组合数据类型,省去了其他语言各种复杂数据结构的设计,给编程人员带来了极大的方便,这也是Python流行于数据分析领域的原因之一。学习本章,要熟练掌握Python组合数据类型(列表、元组、字符串、字典、集合)的创建、访问和常见基本操作,以及序列解包功能。 第4章 Python控制结构。针对物质随时间由简单向复杂、由低级向高级发展的顺序,Python语言有相应的顺序结构语句;针对物质运动发展的条件性,Python语言有相应的选择结构语句;针对物质运动的波浪式前进螺旋式上升规律,Python语言有相应的循环结构语句。学习本章,要从马克思主义自然哲学视角理解Python语言在描述物质运动规律时的表达方式;掌握用Python语言描述常用算法,解决一些基本问题的方式。 第5章 Python函数与模块。有些经常用到的能实现特定功能的代码块,我们总是不希望每次用到时都重写一遍,甚至不希望复制一遍,但又想重复使用。Python里这些经常重用的代码块以函数(Function)的形式被定义,每一次复用被称为函数调用,计算机依然要执行重用的代码。学习本章,要理解函数的概念,掌握定义函数的方法,深刻理解函数调用中参数的传递(值传递、地址传递),理解变量的作用域(变量的作用范围或变量的生命周期),理解函数集合模块、包等概念,掌握模块和包的创建及使用方法。 第6章 Python面向对象程序设计。面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章,重在理解面向对象程序设计思想、类和对象的概念
对于Python程序设计实训,我的看法是非常积极和乐观的。首先,Python作为一门简单易学但功能强大的编程语言,非常适合初学者入门。通过实践,我可以运用Python语言来解决实际问题,比如编写小型应用程序或者处理数据分析等。这让我对编程有了更深入的理解和实践经验。 其次,Python程序设计实训能够锻炼我的逻辑思维和问题解决能力。在实训过程中,我需要分析问题、设计算法和调试程序,这过程中可以培养我的思维能力。同时,由于Python语言的简洁性和灵活性,我还可以使用各种库和框架,加快开发速度和实现更高级的功能。 此外,Python程序设计实训还可以提高我的团队协作能力。很多实训项目需要与其他同学合作完成,这促使我们进行有效的沟通和协作。我们需要根据项目需求,分工合作,最终完成一个完整的项目。这对于培养我的团队协作意识和能力非常有帮助。 虽然Python程序设计实训可能会面临一些挑战,比如学习曲线较陡峭,需要花费一定时间来掌握语言的语法和特性。但我相信通过实践和不断的练习,我能够逐渐掌握Python的编程技巧和开发经验。 总的来说,Python程序设计实训对于我的学习和发展是非常有益的。通过实践,我可以提高编程能力、逻辑思维和团队合作能力。将来,这些技能和经验也能够为我的职业发展提供更多的机会和选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值