我的目标是使用python创建一个中空的菱形。
示例输入:
Input an odd Integer:
9示例输出:
*
* *
* *
* *
* *
* *
* *
* *
*但到目前为止,我有以下代码不能正常工作。请帮助我修改代码以实现上述目标:
a=int(input("Input an odd integer: "))
k=1
c=1
r=a
while k<=r:
while c<=r:
print "*"
c+=1
r-=1
c=1
while c<=2*k-1:
print "*"
c+=1
print "\n"
k+=1
r=1
k=1
c=1
while k<=a-1:
while c<=r:
print " "
c+=1
r+=1
c=1
while c<= 2*(a-k)-1:
print ("*")
c+=1
print "\n"
k+=1上面的代码返回的结果与我的目标相去甚远。
Input an odd integer: 7
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*实际上,我正在转换这篇文章中的代码:用C语言编写的http://www.programmingsimplified.com/c/source-code/c-program-print-diamond-pattern,稍后将针对空心的代码进行修改,但我无法获得它……我的转换有问题..
发布于 2013-01-02 21:32:30
这并不美观,但它是一个可以做你想做的事情的函数:
def make_diamond(size):
if not size%2:
raise ValueError('odd number required')
r = [' ' * space + '*' + ' ' * (size-2-(space*2)) + '*' + ' ' * space for space in xrange((size-1)/2)]
r.append(' ' * ((size-1)/2) + '*' + ' ' * ((size-1)/2))
return '\n'.join(r[-1:0:-1] + r)输出:
>>> print make_diamond(5)
*
* *
* *
* *
*
>>> print make_diamond(9)
*
* *
* *
* *
* *
* *
* *
* *
* https://stackoverflow.com/questions/14122653
复制相似问题