繁体   English   中英

炸弹包括 python 中的有序对

[英]bomb including ordered pairs in python

我正在尝试在 python 3 中执行此任务:获取尽可能多的用户想要的有序对,用空格分隔,例如:(1,3) (5,6)... 打印一个 10 × 10 Square Made with Xs . 除了给出的有序对,在它们的位置打印 Os。 注意:这个正方形上虚坐标系的原点(0,0)是左上角

好吧,我写了这段代码:

x = input()
L=(x.split())

for i in range(0,len(L)):
    for n in range (0,10):
        for m in range (0,10):
            if (m == int((L[i])[1]) and n == int((L[i])[3])):
                print("O", end=" ")
            else:
                print("X", end=" ")
        print()

但它有一个问题:它打印了多个 Square。 当我给出两个输入时,它会打印两个正方形:( 像这样:

(0,0) (3,5)
O X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X O X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 
X X X X X X X X X X 

但它应该是这样的:

(0,0) (1,2) (3,3) (1,5) (8,9)
O X X X X X X X X X
X X X X X X X X X X
X O X X X X X X X X
X X X O X X X X X X
X X X X X X X X X X
X O X X X X X X X X
X X X X X X X X X X
X X X X X X X X X X
X X X X X X X X X X
X X X X X X X X O X

任何帮助,将不胜感激。 我是初学者:(

尝试这个:

x = "(0,0) (1,2) (3,3) (1,5) (8,9)"
x = [eval(i.replace("(", "").replace(")", "")) for i in x.split()]
X = np.array(x)
cols = X[:, 0].max()
rows = X[:, 1].max()

d = pd.DataFrame(np.zeros((max(rows, cols)+1, max(rows, cols)+1))).replace(0, "X")

d:


    0   1   2   3   4   5   6   7   8   9
0   X   X   X   X   X   X   X   X   X   X
1   X   X   X   X   X   X   X   X   X   X
2   X   X   X   X   X   X   X   X   X   X
3   X   X   X   X   X   X   X   X   X   X
4   X   X   X   X   X   X   X   X   X   X
5   X   X   X   X   X   X   X   X   X   X
6   X   X   X   X   X   X   X   X   X   X
7   X   X   X   X   X   X   X   X   X   X
8   X   X   X   X   X   X   X   X   X   X
9   X   X   X   X   X   X   X   X   X   X
R = [i[1] for i in x]
C = [i[0] for i in x]
for i in range(len(R)):
    print("Row:", R[i], end="\t")
    print("Col:", C[i])
for i in range(len(R)):
    d.iloc[R[i], C[i]] = "0"
Row: 0  Col: 0
Row: 2  Col: 1
Row: 3  Col: 3
Row: 5  Col: 1
Row: 9  Col: 8

d:


    0   1   2   3   4   5   6   7   8   9
0   0   X   X   X   X   X   X   X   X   X
1   X   X   X   X   X   X   X   X   X   X
2   X   0   X   X   X   X   X   X   X   X
3   X   X   X   0   X   X   X   X   X   X
4   X   X   X   X   X   X   X   X   X   X
5   X   0   X   X   X   X   X   X   X   X
6   X   X   X   X   X   X   X   X   X   X
7   X   X   X   X   X   X   X   X   X   X
8   X   X   X   X   X   X   X   X   X   X
9   X   X   X   X   X   X   X   X   0   X
import ast
user_input = input()
ordered_pairs = [ast.literal_eval(i) for i in user_input.split(' ')]

l = [['X' for j in range(10)] for i in range(10)]

for x, y in ordered_pairs: l[y][x] = 'O'

print('\n', user_input, sep='')

for i in l:
    print(*i)
(0,0) (1,2) (3,3) (1,5) (8,9)
O X X X X X X X X X
X X X X X X X X X X
X O X X X X X X X X
X X X O X X X X X X
X X X X X X X X X X
X O X X X X X X X X
X X X X X X X X X X
X X X X X X X X X X
X X X X X X X X X X
X X X X X X X X O X

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM