带输入的函数不打印任何内容



好的,所以我试图让z.ExNote()为我正在构建的应用程序将图像(第 8 个音符(打印到乐谱页面上。基本上每个变量都与放置注释的 (x,y( 坐标有关。.ExNote()是类Note中的一个函数,它将Note对象的 5 个变量(Num, staff, measure, note, notetype)转换为要放置的图像的 x,y 坐标。这整个混乱为您处理了 4 个变量,因此理论上您可以输入音符c,d,e,f,g,a,b它会在五线谱的开头打印出来,然后您输入的下一个音符将是下一个位置,恰好是 17 像素向右,依此类推。

StaffL = {0: 'nada', 1: '1R', 2: '1L', 3:'2R',
4: '2L', 5: '3R', 6: '3L', 7: '4R', 8: '4L'}
pygame.display.set_caption("Piano App")
done = False
clock = pygame.time.Clock()
while not done:
clock.tick(10)
for event in pygame.event.get(): 
if event.type == pygame.QUIT: 
done=True  

screen.fill(white)
DrawGrandStaffAll()
TS(4,4)
notetypeZ = 'Ethnote'
g=0
while g < 8:
g+=1
staff = StaffL[g]
measureZ = 0
while measureZ<6:
measureZ += 1
wnoteZ = 0
while wnoteZ<8:
wnoteZ += 1
noteZ=(input("nnWhat note ncndnenfngnanbnc2nd2n"))
z = Note(int(wnoteZ), repr(staff), int(measureZ), repr(noteZ), repr(notetypeZ))
z.ExNote()
pygame.display.flip()
pygame.quit()

如果我只是输入z最终等于(Note(1, '1R', 1, 'c', 'Ethnote')(的内容,然后执行z.Exnote(),它就可以了(我的笔记被打印在乐谱上(。但是当我这样做时,它不起作用。我还在一个单独的窗口中运行了这段代码并打印出 z,以确保它不是一些技术错误/拼写错误,并且输出正是我想要的。所以问题不在于变量,也不在于一些技术错误。我假设错误与输入有关,因为这是在手动输入z=Note(1, '1R', 1, 'c', 'Ethnote')和使用此代码构建语句之间唯一更改的事情。

你使用的是 Python 2 还是 3。 如果你使用 Python 2,input(( 会尝试计算你键入的表达式。 我相信你想要的raw_input((在这里返回字符串。

相关内容

  • 没有找到相关文章

最新更新