0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonのprint関数で文字を表のように出力する方法

Last updated at Posted at 2020-06-26

#Pythonのprint関数で文字を表のように出力する方法

##はじめに

問題集などでよく見る(N M)と数字が与えられて、
出力結果をN行×M列の何らかの文字列で求められる際の解法。

例)星取表、九九の掛け算表など

##求めるもの

& + + + +
+ & + + +
+ + & + +
+ + + & +
+ + + + &

##入力

N M

##コードと解説

import numpy as np

#(N M)= (5 5)の形で入力があると仮定する
n, m = input().split()
n, m = int(n), int(m)

#N行M列の二次元配列を作成する(今回は全て0の配列とした)
hyou = np.zeros((n,m))

#星取表などで表示する文字列が複数ある場合は、「その部分の配列の数字」を1,2,3...と場合分けして入れ替えていく
#今回は行と列の数字が同じ際に1を入れるだけのシンプルなやつ

for i in range(n):
   
    for j in range(m):
        
        if i == j:
            hyou[i][j] = 1


#行の終わりの要素示す数値(二次元配列の列の最後の要素の添え字)
x =  m -1
             
for i in range(n):
 
#出力する行が終わりかどうかはj==xかどうかで判定する
#終わりでない場合はend=" "で空白スペース出力、終わりの場合はprint関数そのままで改行する
#数字ごとに出力する文字を替えていく
   
    for j in range(m):
        
        if hyou[i][j] == 0 and j != x:
            print("+", end = " ")
        
        elif hyou[i][j] == 1 and j != x:
            print("&", end = " ")
            
        if hyou[i][j] == 0 and j == x:
            print("+")
        
        elif hyou[i][j] == 1 and j == x:
            print("&" )           

##最後に

単純だけど意外と忘れがちな気がしたのでメモっておきます

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?