この記事を読むことで、PythonとGASで標準入力を使って、2つの整数を取得する方法が学べます。
GASではスプレッドシートを用いて値を取得して出力しています。
このコーナーでは、プログラミング学習コンテンツpaizaラーニングのレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。
Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。
Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。
(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)
問題:整数 a, b が 2 行で与えられるので a, b を 2 行で出力してください。
ではまず、Pythonで解いてみます。
■ Pythonでの解き方 ■
手順として、
1:標準入力で整数a,bを取得する
2:取得した整数を出力する
の2ステップで行います。
今回は下記の入出力例1を用います。
入力例1
81
3
出力例1
81
3
まず、準備として、paiza.ioにこのように入力します。
(入力例1をコピペしたのみ)
手順1で標準入力を使って整数を取得します。
整数を取得するので、intの中にinputを入れています。
#標準入力で整数を取得する
a=int(input())
b=int(input())手順2では取得した整数を出力します。
a=int(input())
b=int(input())
#取得した整数を出力する
print(a)
print(b)Pythonはこれで完了です。
■ GASでの解き方 ■
今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。
緑色のセル、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);
}手順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);
}GASは以上になります。
お疲れ様でした。ブレイクタイムPhotoは、
お台場の観覧車です。
赤いライトアップですね。
ご精読有難うございました。
■ GASの入門書の紹介です ■
詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)
■ 関連記事 ■
paizaレベルアップ問題集「標準入力4」へ戻る
paizaレベルアップ問題集_ PythonとGASのコード紹介トップページへ
写真クリエイターとしての活動
自己紹介
