第五周python作业

1、完善python程序,使用Simpleguitk创建一个窗口。当用户在窗口中点击鼠标时,在窗口中显示鼠标点击的坐标。

import simpleguitk as simplegui

# 全局变量

click_pos = []

def draw_handler(canvas):

    # 绘制点击位置的文本

    if click_pos:

        canvas.draw_text("Clicked at: " + str(click_pos), (20, 20), 16, "White")

def mouseclick_handler(pos):

    # 处理鼠标点击事件

    global click_pos

    ________________  #将鼠标点击的位置坐标存储在click_pos中。



# 创建窗口和事件处理函数

frame = simplegui.create_frame("Mouse Click Position", 400, 400)

frame.set_draw_handler(draw_handler)

frame.set_mouseclick_handler(__________)

frame.start()

答案:

import simpleguitk as simplegui

# 全局变量

click_pos = []



def draw_handler(canvas):

    # 绘制点击位置的文本

    if click_pos:

        canvas.draw_text("Clicked at: " + str(click_pos), (20, 20), 16, "White")



def mouseclick_handler(pos):

    # 处理鼠标点击事件

    global click_pos

    click_pos = pos  # 将鼠标点击的位置坐标存储在click_pos中



# 创建窗口和事件处理函数

frame = simplegui.create_frame("Mouse Click Position", 400, 400)

frame.set_draw_handler(draw_handler)

frame.set_mouseclick_handler(mouseclick_handler)

frame.start()

2. 完善Python程序,使用Simpleguitk创建一个窗口。在窗口中随机生成一个点,当用户点击该点时,程序应在窗口上显示一个新的随机点,并增加用户的得分。

import simpleguitk as gui

import random



# 全局变量

canvas_width = 400   #画布宽度

canvas_height = 400  #画布高度

score = 0   #分数值,每生成一个小球,score+1

target_position = [0, 0]      #圆的坐标

radius = 25  #圆的半径



# 生成随机点的函数

def new_game ():

    global target_position

    target_position = [random.randint(0, canvas_width), random.randint(0, canvas_height)]



# 点击事件处理函数

def click(pos):

    global score

    if (pos[0] - target_position[0]) ** 2 + (pos[1] - target_position[1]) ** 2 < 25 ** 2:

        score += 1

        new_game ()



# 画布绘制函数

def draw(canvas):

    canvas.draw_circle(______, ______, 2, "Red", "Red")

    canvas._____("分数为: " + str(score), (10, 30), 24, "White")



# 创建窗口

frame = gui.create_frame("点击目标", canvas_width, canvas_height)

frame.set_draw_handler(draw)

frame.set_mouseclick_handler(_____)



# 初始化游戏

new_game()



# 启动窗口

frame.start()

答案:

import simpleguitk as gui

import random



# 全局变量

canvas_width = 400   # 画布宽度

canvas_height = 400  # 画布高度

score = 0   # 分数值,每生成一个小球,score+1

target_position = [0, 0]      # 圆的坐标

radius = 25  # 圆的半径



# 生成随机点的函数

def new_game():

    global target_position

    target_position = [random.randint(radius, canvas_width - radius), random.randint(radius, canvas_height - radius)]



# 点击事件处理函数

def click(pos):

    global score

    if (pos[0] - target_position[0]) ** 2 + (pos[1] - target_position[1]) ** 2 < radius ** 2:

        score += 1

        new_game()



# 画布绘制函数

def draw(canvas):

    canvas.draw_circle(target_position, radius, 2, "Red", "Red")

    canvas.draw_text("分数为: " + str(score), (10, 30), 24, "White")



# 创建窗口

frame = gui.create_frame("点击目标", canvas_width, canvas_height)

frame.set_draw_handler(draw)

frame.set_mouseclick_handler(click)



# 初始化游戏

new_game()



# 启动窗口

frame.start()

3、完善Python程序,模拟一个待办事项列表:创建一个空列表 todo_list,用于存储待办事项;实现一个函数 add_item(item),用于将待办事项添加到列表中。实现一个函数 remove_item(item),用于从列表中删除指定的待办事项。实现一个函数display_list(),用于显示当前待办事项列表。使用一个循环来模拟用户与待办事项列表的交互,用户可以选择添加、删除或显示待办事项。当用户选择退出时,程序结束。

# 创建一个空的待办事项列表

todo_list = []



# 添加待办事项的函数

def add_item(item):

    todo_list._____(item)    #添加待办事项



# 删除待办事项的函数

def remove_item(item):

    if item in todo_list:

        todo_list._____(item)    #删除待办事项

    else:

        print(f"'{item}' 不在待办事项列表中.")



# 显示待办事项列表的函数

def display_list():

    if len(todo_list) == 0:

        print("待办事项列表为空.")

    else:

        print("待办事项列表:")

        for i in range(len(todo_list)):

            print(f"{i + 1}. {todo_list[i]}")



# 主程序

while True:

    print("\n待办事项列表程序")

    print("1. 添加待办事项")

    print("2. 删除待办事项")

    print("3. 显示待办事项")

    print("4. 退出")



    choice = input("请选择操作 (1/2/3/4): ")



    if choice == "1":

        item = input("请输入待办事项: ")

        add_item(item)

        print(f"'{item}' 已添加到待办事项列表.")

    elif choice == "2":

        item = input("请输入要删除的待办事项: ")

        _____(item)

    elif choice == "3":

        display_list()

    elif choice == "4":

        print("谢谢使用,程序结束.")

        break

    else:

        print("无效的选项,请重新选择.")

答案:

# 创建一个空的待办事项列表

todo_list = []



# 添加待办事项的函数

def add_item(item):

    todo_list.append(item)  # 添加待办事项



# 删除待办事项的函数

def remove_item(item):

    if item in todo_list:

        todo_list.remove(item)  # 删除待办事项

    else:

        print(f"'{item}' 不在待办事项列表中.")



# 显示待办事项列表的函数

def display_list():

    if len(todo_list) == 0:

        print("待办事项列表为空.")

    else:

        print("待办事项列表:")

        for i in range(len(todo_list)):

            print(f"{i + 1}. {todo_list[i]}")



# 主程序

while True:

    print("\n待办事项列表程序")

    print("1. 添加待办事项")

    print("2. 删除待办事项")

    print("3. 显示待办事项")

    print("4. 退出")



    choice = input("请选择操作 (1/2/3/4): ")



    if choice == "1":

        item = input("请输入待办事项: ")

        add_item(item)

        print(f"'{item}' 已添加到待办事项列表.")

    elif choice == "2":

        item = input("请输入要删除的待办事项: ")

        remove_item(item)

    elif choice == "3":

        display_list()

    elif choice == "4":

        print("谢谢使用,程序结束.")

        break

    else:

        print("无效的选项,请重新选择.")

4,编写Python程序,分别使用while循环和for循环语句打印出1到10之间的所有奇数。

答案:

使用while循环

i = 1

while i <= 10:

    if i % 2 != 0:

        print(i)

    i += 1

使用for循环

for i in range(1, 11):

    if i % 2 != 0:

        print(i)

5,请写出break和continue的区别。

答案:

  • break:立即终止当前所在的循环,不再执行循环体中剩余的语句,跳出循环。
  • continue:跳过当前循环中剩余的代码,继续执行下一次循环。

6,字典中的键和值有什么特点?字典中的 keys() 和 values() 方法有什么作用?

答案:

  • 字典中的键和值的特点
    • 键(Key)必须是唯一的,且不可变(如整数、浮点数、字符串、元组)。
    • 值(Value)可以是任意数据类型,并且可以是可变的。
  • keys()和values()方法的作用
    • keys() 方法返回字典中所有键的视图对象。
    • values() 方法返回字典中所有值的视图对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值