在Python中使用*打印X
我必须编写一个python程序,允许用户输入大于或等于3的奇数整数n。程序输出一个包含n行和n列的x*我的教授说使用嵌套for循环将是实现这一点的理想方法。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
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,让你知道它是如何运作的!