paiza レベルアップ問題集 標準入力その4「STEP: 2 2 行の整数の入力」をPythonとGASで解いたコードの紹介

この記事を読むことで、PythonとGASで標準入力を使って、2つの整数を取得する方法が学べます。

GASではスプレッドシートを用いて値を取得して出力しています。

このコーナーでは、プログラミング学習コンテンツpaizaラーニングレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。

Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。

Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。

(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)



2 行の整数の入力 (paizaランク D 相当)

問題:整数 a, b が 2 行で与えられるので a, b を 2 行で出力してください。

ではまず、Pythonで解いてみます。


手順として、

1:標準入力で整数a,bを取得する

2:取得した整数を出力する

の2ステップで行います。

今回は下記の入出力例1を用います。

入力例1
81
3

出力例1
81
3

まず、準備として、paiza.ioにこのように入力します。
(入力例1をコピペしたのみ)

Green rounded Run button labeled '実行 (Ctrl-Enter)'; a tab bar with '出力', '入力', 'コメント' and a blue 0 badge; below, numbers 81 and 3 displayed in the content area.

手順1で標準入力を使って整数を取得します。

整数を取得するので、intの中にinputを入れています。

#標準入力で整数を取得する
a=int(input())
b=int(input())

手順2では取得した整数を出力します。

a=int(input())
b=int(input())

#取得した整数を出力する
print(a)
print(b)

Green rounded Run button labeled 実行 (Ctrl-Enter); a tab bar with 出力, 入力, コメント and a blue badge showing 0; beneath, numbers 81 and 3 appear as text.

Pythonはこれで完了です。


今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

Spreadsheet with columns A and B. Row 1: A1 shows 入力 (input) and B1 shows 81 on a pale green cell. Row 2 B2 shows 3. Row 5 A5 shows 出力 (output) and B5 is a large yellow highlighted cell.

緑色のセル、B1(2,1)〜B2(2,2)に入力した整数を取得して、それを黄色いセルB5(5,2)〜B6(6,2)に出力します。

その際この黄色いセルの所に、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑色のセルの整数を取得して整数a,bを二次元配列numに格納

3:スプレッドシートの出力前に整数a,bが格納された二次元配列numを取得できたことをログ出力で確認する

4:スプレッドシートの黄色いセルに二次元配列numを出力する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

このコードを関数「standardInput2」の中に書いていきます。

Standard Inputで標準入力の意味です。

function standardInput2() {

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

}

手順2:緑色のセルの整数をB1(1,2)から2行1列分を取得して、整数a,bを二次元配列numに格納

const num=ss.getRange(1,2,2).getValues();

(1,2,2)の最初の(1,2)はセルB1のことで、最後の2は2行分の意味です。
(1,2,2,1)でも問題ありませんが、1列分の1は省略可能です。

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();

  //緑色のセルB1(1,2)を起点として2行1列分のセル範囲を取得して二次元配列numに格納
  const num=ss.getRange(1,2,2).getValues();

}

手順3:スプレッドシートの出力前に整数a,bが格納された二次元配列numを取得できたことをログ出力で確認する

console.log(num);

コードと実行結果です。

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const num=ss.getRange(1,2,2).getValues();

  //スプレッドシートの出力前に2つの整数が格納された二次元配列numを取得出来たことをログ出力で確認
  console.log(num);

}
Interface with Japanese labels '実行開始' (Start) at top and '実行完了' (Finished) at bottom, and a matrix [ [81], [3] ] in between.

手順4:スプレッドシートの黄色いセルB5(5,2)を起点とした2行1列の二次元配列numを出力する

ss.getRange(5,2,2).setValues(num);

コードと実行後のスプレッドシートです。

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const num=ss.getRange(1,2,2).getValues();
  console.log(num);

  //スプレッドシートの黄色いセルB5(5,2)を起点とした2行1列の二次元配列numを出力する
  ss.getRange(5,2,2).setValues(num);

}

Spreadsheet snippet: column A shows '输入' (input) and '输出' (output); column B lists 81 and 3, with green highlight for inputs and yellow highlight for outputs.

GASは以上になります。


お疲れ様でした。ブレイクタイムPhotoは、

Colorful illuminated Ferris wheel at night with rainbow spokes and lit support structure.

お台場の観覧車です。
赤いライトアップですね。

←前の問題へ          次の問題へ→

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力4」へ戻る
paizaレベルアップ問題集_ PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

投稿者アバター
nekosiestr
いつもブログをご覧頂きまして、誠に有難うございます。 Excelやデータベース、プログラミングを学習する傍ら、趣味で写真を撮影してPhotoshopで編集しております。

投稿者: nekosiestr

いつもブログをご覧頂きまして、誠に有難うございます。