0

我基本上是在尝试使用数字符号和点来绘制菱形。一旦达到指定的大小,我的代码就不会做它应该做的事情。如果大小为 5,则每行应包含 5 个字符。如果给定的大小大于 0,则程序应始终为第一行打印 1 个数字符号,并在每侧打印 1 个点。在数字符号的左侧,代码应打印大小为#of diamonds/2 的点数,并且应在数字符号右侧打印相同数量的点。最终,当#signs 的数量达到指定大小时,它应该开始从#of 数字符号中减去2,直到#of 数字符号等于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
4

1 回答 1

0

据我所知,以下内容应该为您完成工作。

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
于 2013-11-02T21:42:55.077 回答