You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeError错误求助:draw_task()需0个参数却传入2个的解决

问题原因

你调用draw_task(green, 50)时传入了2个参数,但定义def draw_task():时没有声明接收参数,所以触发了这个类型错误。另外函数内部使用的color和y_coord变量也未定义,必须通过参数传递进来。

修复后的代码
import pygame
pygame.init()

#Colour Library
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
white = (255, 255, 255)
black = (0, 0, 0)
purple = (127, 0, 255)
orange = (255, 165, 0)

screen = pygame.display.set_mode([300, 450])
pygame.display.set_caption("Not Adventure Capitalist")
background = black
framerate = 60
font = pygame.font.Font('freesansbold.ttf', 16)
timer = pygame.time.Clock()

# 修改函数定义,添加color和y_coord两个参数
def draw_task(color, y_coord):
    pygame.draw.circle(screen, color, (30, y_coord), 20, 5)
    pygame.draw.rect(screen, color, [70, y_coord - 15, 200, 30])
    pygame.draw.rect(screen, black, [75, y_coord - 10, 190, 20])


running = True
while running:
    timer.tick(framerate)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill(background)
    draw_task(green, 50)
    pygame.display.flip()
pygame.quit()
关键修改点
  • 将def draw_task():改为def draw_task(color, y_coord):,让函数能够接收调用时传入的颜色和Y坐标参数
  • 函数内部的color和y_coord变量通过参数传递,解决未定义的问题

运行修改后的代码,就能在黑色背景上显示绿色的圆形和矩形组合效果。

内容的提问来源于stack exchange,提问作者Makcodezy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:24:58