3 回答

TA貢獻1900條經驗 獲得超5個贊
如果你想顯示x,下面的代碼就足夠了:你可以將字母的大小相差N,盡量避免硬編碼一些任意數字。
N = 8
# starting from the 1st row and ending at the 8th row
for row in range(1, N):
# within each row, starting from the 1st col and ending in the 8th col
for col in range(1, N):
# decide what to print at the current location
if row == col or row == N-col:
print("X", end="")
else:
print("O", end="")
# go onto the next row
print()

TA貢獻1797條經驗 獲得超4個贊
正如您所看到的,您的邏輯不會執行任何插入第二個操作X
。
for row in range (1, 8): ... elif((row + 1)) == 0:
由于 row 采用 0-7 范圍內的值,因此這是不可能的:僅當 時才為 true row = -1
。是的,Python 允許您從右側對列表進行索引,但用作索引的變量不會自動采用第二個值來滿足這些語義。您必須明確地為其指定一個值。
您需要重寫您的條件以row
與最終索引進行比較,并且您必須涉及col
,就像您對主對角線所做的那樣。

TA貢獻1951條經驗 獲得超3個贊
您可以將字符串轉換為列表,并根據字符串的長度和當前的 i 使更改對稱
LEN = 7#length of string
string = ""
#initialize string
for i in range(LEN):
string += "O"
#change and print
for i in range(LEN):
new_string = list(string)#from string to list
new_string[i] = "X"#change the i
new_string[LEN-i-1] = "X"#symmetrical change
new_string = "".join(new_string)#list to string
print(new_string)
您可以根據需要更改 LEN 和字符
添加回答
舉報