在 Python 中使用 * 打印 X

Printing a X using * in Python

我必须编写一个 python 程序,允许用户输入大于或等于三的奇数 n。该程序输出一个具有 n 行和 n 列的 x。 *我的教授说使用嵌套 for 循环将是理想的选择。 X 使用 * 的 *

打印

这几天我一直在试验,但收效甚微。 这是我的程序的起始代码,之后就像我的想法一样,它只是空白。如果您能就代码的工作原理提供一些解释,那就太棒了。

num=int(input("Please type in an odd integer.")) if num%2==0: print("Your number is incorrect")

我给你个提示:

n = int(input("Please type in an odd integer."))
for i in range(n):
    print('x', end='')
print()

这会在同一行打印 x, n 次,然后返回到下一行。

我会告诉你如何将同一行打印 n 次。

应该这样做:

Python 2

N = 5

for i in range(N):
    for j in range(N):
        if (i == j) or ((N - j -1) == i):
            print '*',
        else:
            print ' ',
    print ''

Python 3

N = 5

for i in range(N):
    for j in range(N):
        if (i == j) or ((N - j -1) == i):
            print('*', end = '')
        else:
            print(' ', end = '')
    print('')

(感谢 Blckknght 提供 Python 3 知识)

您正在外层循环中遍历所有行,然后是内层循环中的所有列或单元格。 if 子句检查你是否在对角线上。打印语句后的逗号确保您不会在每次打印时都换行。完成该行后,第 3 次打印会为您换行。

如果这对您有帮助/有用;尝试使用相同的方法制作 Y 并在下面的评论中 post 您的代码。这样你可以更多地发展你的理解。

使用单个 for 循环:

for i in range(num):
    a = [' '] * num
    a[i] = '*'
    a[num-i-1] = '*'
    print(''.join(a))

使用嵌套 for 循环:

for i in range(num):
    s = ''
    for j in range(num):
        if j in [i, num-i-1]:
            s += '*'
        else:
            s += ' '
    print(s)