Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用*打印X_Python_For Loop_Nested Loops - Fatal编程技术网

在Python中使用*打印X

在Python中使用*打印X,python,for-loop,nested-loops,Python,For Loop,Nested Loops,我必须编写一个python程序,允许用户输入大于或等于3的奇数整数n。程序输出一个包含n行和n列的x*我的教授说使用嵌套for循环将是实现这一点的理想方法。X是用*打印的* 在过去的几天里,我一直在做实验,但几乎没有成功。 这是我的程序开始代码,在那之后,它就像我的大脑一样是空白的。如果你能解释一下代码是如何工作的,那就太棒了 num=int(输入(“请输入一个奇数整数”) 如果num%2==0: 打印(“您的号码不正确”)我会给您一个提示: n = int(input("Please type

我必须编写一个python程序,允许用户输入大于或等于3的奇数整数n。程序输出一个包含n行和n列的x*我的教授说使用嵌套for循环将是实现这一点的理想方法。X是用*打印的*

在过去的几天里,我一直在做实验,但几乎没有成功。 这是我的程序开始代码,在那之后,它就像我的大脑一样是空白的。如果你能解释一下代码是如何工作的,那就太棒了

num=int(输入(“请输入一个奇数整数”)
如果num%2==0:
打印(“您的号码不正确”)
我会给您一个提示:

n = int(input("Please type in an odd integer."))
for i in range(n):
    print('x', end='')
print()
这将在同一行上打印x,n次,然后返回到下一行

我将让您计算如何将同一行打印n次。

我将给您一个提示:

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子句检查您是否在对角线上。print语句后的逗号可确保每次打印时不会出现新行。第三行打印完成后,将为您提供一个新行

如果这对你有帮助/有效;尝试使用相同的方法创建一个Y,并在下面的注释中发布您的代码。这样你就可以进一步发展你的理解力

这应该可以做到:

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子句检查您是否在对角线上。print语句后的逗号可确保每次打印时不会出现新行。第三行打印完成后,将为您提供一个新行

如果这对你有帮助/有效;尝试使用相同的方法创建一个Y,并在下面的注释中发布您的代码。这样你就可以进一步发展你的理解力

使用单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)
使用单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)


您必须使用星号打印形状“X”吗?是的,示例输入5将输出5列长、5行宽的X。我的建议是使用前3个输入(3、5、7)绘制输出。然后比较每一行中的模式,得出关于*和空格的数量如何随着输入量的增加而变化的结论。@ViktorTW从一行到下一行的规则是什么?@Natecat他没有指定任何规则。他刚才说我们将使用嵌套循环。您必须使用星号打印形状“X”吗?是的,示例输入5将输出一个5列长、5行宽的X。我的建议是使用前3个输入(3、5、7)绘制输出。然后比较每一行中的模式,得出关于*和空格的数量如何随着输入量的增加而变化的结论。@ViktorTW从一行到下一行的规则是什么?@Natecat他没有指定任何规则。他刚才说我们将使用嵌套循环。它不是那样打印x,我必须使用*和空格打印x。我试着在最初的帖子顶部澄清这一点。它不是那样打印一个x,我必须使用*和空格打印一个x。我试图在最初的帖子顶部澄清这一点。谢谢你的回答!遗憾的是,这对我来说并不管用:它使用Python 2风格的
print
语句。Python3语法中的等价物是
print('*',end='')
。非常感谢!我正在使用Python3,对此感到非常困惑。我会试着做一个Y,让你知道它是如何运作的!谢谢你的回答!遗憾的是,这对我来说并不管用:它使用Python 2风格的
print
语句。Python3语法中的等价物是
print('*',end='')
。非常感谢!我正在使用Python3,对此感到非常困惑。我会试着做一个Y,让你知道它是如何运作的!