用Python绘制菱形

用Python绘制菱形,python,python-2.7,Python,Python 2.7,我基本上是用数字符号和点来画菱形。我的代码一旦达到指定的大小,就不会执行它应该执行的操作。如果大小为5,则每行应包含5个字符。如果给定的大小大于0,程序应始终为第一行打印1个数字符号,并在每侧打印1个点。在数字符号的左侧,代码应打印大小为#菱形/2的点的数量,并应在数字符号的右侧打印相同数量的点。最后,当#号的数量达到指定的大小时,它应该开始从#号中减去2,直到#号等于1/或不再是正数。数字符号将形成菱形。另外,我如何检查输入以确保它是奇数、正数 size = 5 diamonds = 1 do

我基本上是用数字符号和点来画菱形。我的代码一旦达到指定的大小,就不会执行它应该执行的操作。如果大小为5,则每行应包含5个字符。如果给定的大小大于0,程序应始终为第一行打印1个数字符号,并在每侧打印1个点。在数字符号的左侧,代码应打印大小为#菱形/2的点的数量,并应在数字符号的右侧打印相同数量的点。最后,当#号的数量达到指定的大小时,它应该开始从#号中减去2,直到#号等于1/或不再是正数。数字符号将形成菱形。另外,我如何检查输入以确保它是奇数、正数

size = 5
diamonds = 1
dots = size - 1
count = 2

while count != size:
    print (dots/2)*('.') + diamonds*('#') + (dots/2)*('.')
    if diamonds == size:
        break
    diamonds += 2  
    dots -= dots / 2
    count += 1


while count == size:
    diamonds -= 2
    print (dots)*('.') + diamonds*('#') + (dots)*('.')
    dots += 2

从我所能理解的情况来看,以下内容将为您完成工作

size = 5
diamonds = 1
dots = size - 1
count = 2

while count != size:
    print '.'*(dots/2) + '#'*diamonds + '.'*(dots/2)
    if diamonds == size:
        break
    diamonds += 2
    dots -= dots / 2
    count += 1

while dots < size - 1:
    diamonds -= 2
    dots += 2
    print '.'*(dots/2) + '#'*diamonds + '.'*(dots/2)
        count -= 1
至于第二个问题,即“我如何检查输入以确保它是奇数、正数”,您可以这样做

>>>given_number = input()
3                         # I give input as say 3
>>>given_number
3
>>>given_number%2 == 1    # Remainder when divided by 2 is 1 (thus odd number)
True                      # True, since 3 is an odd number
>>>given_number >= 0      # To check if number is positive
True                      # 3 is both odd & positive
所以,要检查数字是否为奇数和正数,您应该这样做

if number%2 == 1 and number >= 0:
    # do something

您可以发布当前输出和预期输出吗?如果大小不是奇数,则应打印什么?如果大小不是奇数,则输入无效
if number%2 == 1 and number >= 0:
    # do something