from sys import argv
char = argv[1]
n = int(argv [2])
for i in range(0, n):
if i == 0 or n - 1:
for j in range(0, n):
char += "n"
print char * n
else:
for j in range(0, n):
if j == 0 or j = n-1:
char += "n"
else:
char += "/n"
答案 0 :(得分:1)
我想你可以这样做:
char = 'n'
n = 10
# char = argv[1]
# n = int(argv [2])
print n*char
for i in range(n-2):
print (' '*(n-2)).center(n, char)
print n*char
# output: a 10 x 10 "square" of n
nnnnnnnnnn
n n
n n
n n
n n
n n
n n
n n
n n
nnnnnnnnnn
答案 1 :(得分:0)
abccd's answer应该运作良好。但是,如果您想知道为什么您的代码不起作用:
if条件if i == 0 or n - 1
对所有n>1
都适用。可能你想写if i == 0 or i == n - 1
您并不需要for j...
中的if i == 0 or i == n - 1
循环。执行print char * n
打印char
n次。
if j == 0 or j = n-1:
再次不正确。 j = n-1
部分执行分配而非比较。
要打印if-else中的字符或空格,您可以使用sys.stdout.write
。
最终代码可能如下:
from sys import argv
import sys
char = argv[1]
n = int(argv [2])
for i in range(0, n):
if i == 0 or i == n - 1:
print char * n
else:
for j in range(0, n):
if j == 0 or j == n-1:
sys.stdout.write(char)
else:
sys.stdout.write(' ')
sys.stdout.write("\n")
就像这样工作
$ python script.py q 5
qqqqq
q q
q q
q q
qqqqq