我的目标是使用 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
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
我实际上是从这篇文章中转换代码:http://www.programmingsimplified.com/c/source-code/c-program-print-diamond-pattern用C语言写的,稍后会修改为空心的但是我不能得到它...我的转换有问题..
空心菱形是方程的解
|x|+|y| = N
在整数网格上。所以空心金刚石作为 1-liner:
In [22]: N = 9//2; print('\n'.join([''.join([('*' if abs(x)+abs(y) == N else ' ') for x in range(-N, N+1)]) for y in range(-N, N+1)]))
*
* *
* *
* *
* *
* *
* *
* *
*
我是一名优秀的程序员,十分优秀!