Paiza問題集
標準出力メニュー/n*nの2次元配列の表示
Step01 2*2の出力
"""
2*2の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step1
"""
# 数値の出力
print('{} {}'.format(0, 8))
print('{} {}'.format(1, 3))
別解1
# 数字の出力
print(0, 8)
print(1, 3)
別解2
# 数値の出力
print('0 8')
print('1 3')
Step02 3*3の出力
"""
3*3の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step2
"""
# 数字を受け取る
numbers = input().split(' ')
# 3*3の表示する
for i in range(len(numbers)):
# 数字の表示
print(numbers[i], end='')
# iの余りが2の時、改行する
if i % 3 == 2:
print()
# それ以外はスペースでつなげる
else:
print(' ', end='')
別解
# 数字を受け取る
numbers = input().split()
# 数字列の表示
for i in range(0, len(numbers), 3):
print(*numbers[i: i+3])
上記の例では
print(*numbers[i: i+3])
でnumbersをスライスで指定し表示させている
Step03 九九表の出力
"""
九九表の出力
https://paiza.jp/works/mondai/stdout_primer/stdout_primer__2dim_array_step3
"""
# 九九表の表示
for i in range(1, 10):
for j in range(1, 10):
if j == 9:
print(i * j)
else:
print(i * j, end=' ')
別解
#九九表の表示
for i in range(1, 10):
print(*[i*j for j in range(1, 10)])
内包表記を用いることで短く書くことができる
print(*[i*j for j in range(1, 10)])
は、jがrange(1, 10)の間i*jを行い
その結果を引数としてprint()に渡している
Final問題 【nnの2次元配列の表示】NNの九九表の表示
"""
【n*nの2次元配列の表示】N*Nの九九表の表示
"""
# 数字を受け取る
number = int(input())
# 受け取った数字*数字の表を表示する
for i in range(1, number + 1):
for j in range(1, number + 1):
if j == number:
print(i * j)
else:
print(i * j, end=' ')
別解
# 数字を受け取る
number = int(input())
# 数字の表を出力する
for i in range(1, number+1):
print(*[i*j for j in range(1, number+1)])