問題: 編寫一個程序,將國際象棋棋盤上的一個位置作爲列col和行值列並檢查該位置是否有效。請記住棋盤上的列是從A到H(包含)的字母,行是1到8之間的數字(包含)。 A3或E7是有效輸入,但a1或L5不是。如果兩個座標都是有效的,例如E2,則程序打印'件被移動到E2',否則打印'位置無效'。NameError:未定義名稱'A'
我的回答:
a=raw_input("you move to:")
col = [A, B, C, D, E, F, G]
row = [1, 2, 3, 4, 5, 6, 7]
if (a in col) and (a in row):
print 'The piece is moved to '%s%d %input
else:
print 'The position is not valid.'
ERROR(像D5的值插入後)
Traceback (most recent call last):
File "<web session>", line 2, in <module>
NameError: name 'A' is not defined
請求:
能指點我如何解決我的計劃?
背景:
該任務的目的是陷害我來回答以下問題:
到目前爲止,你的程序中使用兩個獨立的輸入:在列和行值。你可以修改你以前的程序(國際象棋問題,版本3),接受棋盤上的位置作爲單一輸入。換句話說,假定存在一個可變位置,它存儲象B5這樣的棋盤的列和行值。當輸入中的兩個座標均有效時,例如c4,程序將輸出消息將塊移動到c4。如果第一個座標超出範圍,則打印第一個座標不在範圍內或AH! ,如果第二個座標超出範圍,則打印第二個座標不在1到8範圍內!
關閉:
感謝您的幫助。
即使他解決了這個問題,他的比較仍然不起作用。 – agf
@agf:呃,是的...我會在一會兒加上我的答案。 – BoltClock