0

私は基本的に数字記号と点を使ってひし形を描こうとしています。指定されたサイズに達すると、コードが本来の動作をしません。サイズが 5 の場合、各行には 5 文字が必要です。指定されたサイズが 0 より大きい場合、プログラムは常に最初の行に 1 つの番号記号を、各側に 1 つのドットを出力する必要があります。番号記号の左側に、コードは size-#of diamonds/2 のドット数を出力し、番号記号の右側にも同じ数のドットを出力する必要があります。最終的に、#sign の数が指定されたサイズに達すると、#of number sign が 1/ に等しくなるか、正の数でなくなるまで、# of number sign から 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 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

出力は...

..#..
.###.
#####
.###.
..#..

2番目の質問、つまり「入力をチェックして、それが奇数の正の数であることを確認するにはどうすればよいですか」については、次のことができます。

>>>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 に答える