アスタリスク(*)でひし形を表示する方法 Python
去年の春休みにPythonプログラミングの練習でアスタリスク(*)を使いひし形=ダイヤを作れないか試したものになります。Pythonのプログラミングコードとその解説を投稿します。
入力した奇数をもとにひし形を作成します

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
while True: num=input("奇数を入力") if num=="":#入力がないとき終了 print("終了します") break num=int(num) if num % 2 ==0 or num < 0:#入力した数字が"偶数"または"マイナス"の場合continue continue sp=" "#半角スペース tri=num//2#・・① sp_c=num//2#・・② ast=1#・・③ #ひし形の上三角を描画 for up in range(tri): for s in range(sp_c): print(sp,end="") for a in range(ast): print("*",end="") sp_c=sp_c-1 ast=ast+2 print()#print("\n")と同じ #ひし形の真ん中を描画 print("*"*num) #ひし形の下三角を描画 for dw in range(tri): sp_c=sp_c+1 ast=ast-2 for s in range(sp_c): print(sp,end="") for a in range(ast): print("*",end="") print()#print("\n")と同じ |
入力した奇数の数が描画する真ん中のアスタリスクの個数になります。そして、その真ん中のアスタリスクを元に上三角、下三角を作成します。
①は上下三角の段数を決める変数になります。入力した奇数を2で割った数が上下三角の段数になります。
※//2は割る数を切り捨てて、整数の値で求めます。
②の変数sp_cはスペースをprint文で表示するfor文を繰り返す値になります。
③の変数astはアスタリスク”*”をprint文で表示するfor文を繰り返す値になります。
16行目から23行目はひし形の上三角を描画しています。
25行目はひし形の真ん中を描画しています。
27行目から34行目はひし形の下三角を描画しています。
33の奇数を入力した場合はこんな↓感じです。
