2017-07-31 72 views
1

好吧,所以我想要z.ExNote()打印出一張圖片(第8個音符)到一個我正在建立的應用程序的樂譜頁面上。基本上每個變量只與放置筆記的位置的(x,y)座標有關。 .ExNote()Note類中的函數,它將Note對象(Num, staff, measure, note, notetype)的5個變量轉換爲要放置圖像的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("\n\nWhat note \nc\nd\ne\nf\ng\na\nb\nc2\nd2\n")) 
      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')和使用此代碼構建語句之間唯一的變化。

回答

0

是否使用Python 2或3.如果使用Python 2,則input()會嘗試計算您輸入的表達式。 raw_input()我相信你想在這裏返回字符串。

+0

我想通了謝謝,雖然 –