この記事を読むことで、2行分の文字列をPythonの標準入力で文字列を取得する方法、GASでは二次元配列として取得する方法、Python・GASそれぞれのコードで文字列を出力する方法が学べます。
このコーナーでは、学習コンテンツpaizaラーニングのレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。
GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
paizaでの解答はPythonで行いましたが、この記事ではPythonのコードと共に、同じ問題を現在学習中のGASだったらどう解くのか、スプレッドシートでバインドして作ってみました。
問題:
文字列 s と t が 2 行で与えられるので、s と t の 2 行をそのまま出力してください。
この記事では、下記の入力例2の場合を例にして、文字列の出力を行います。
入力例2
heisei31
reiwa1
出力例2
heisei31
reiwa1
ではまず、Pythonで解いてみます。
今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。
■ Pythonでの解き方 ■
下準備として、paiza.ioにこの様に入力します。
(入力例2をそのままioにコピーしただけ。)
手順として、
1:標準入力で最初の文字列sを読み込む
2:標準入力で次の文字列tを読み込む
3:print文でsを出力する
4:print文でtを出力する
で、行います。
この手順で作成したプログラムを実行した出力結果です。
Pythonのコードはこちらになります。
#標準入力で最初の文字列sを読み込む
s=input()
#標準入力で次の文字列tを読み込む
t=input()
#print文でsを出力する
print(s)
#print文でtを出力する
print(t)
■ GASでの解き方 ■
では、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。
スプレッドシートの緑のセルに文字列「heisei31」を入力して、灰色のセルに「reiwa 1」を入力して、それらを二次元配列とし取得します。
最後にその二次元配列を黄色いセルにそのままま文字列を出力します。
※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※
手順はこのようになります。
1:SpreadSheetAppからアクティブシートにアクセスする
2:最初の文字列「heisei31」が入っている緑のセルとその下の灰色のセル「reiwa1」が入っているセルを配列arrayに2行1列の二次元配列として取得する
3:配列arrayに文字列が出力出来たことをログ出力で確認する
4:スプレッドシートの黄色いセルに二次元配列arrayを出力する
手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする
const ss = SpreadsheetApp.getActiveSheet();
ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。
手順2:最初の文字列「heisei31」が入っている緑のセルとその下の灰色のセル「reiwa1」が入っているセルを配列arrayに2行1列の二次元配列として取得する
const array=ss.getRange(1,1,2).getValues();
手順3:配列arrayに文字列が出力出来たことをログ出力で確認する
console.log(array);
手順4:スプレッドシートの黄色いセルに二次元配列arrayを出力する
ss.getRange(5,1,array.length).setValues(array);
スプレッドシートの5行目1列目から配列arrayの長さである2行分を確保してarrayを出力しています。
実行後のスプレッドシートです。
GASでの全コードはこちらになります。
function standardInput02() {
//SpreadSheetAppから階層を辿って現在のシートにアクセスする
const ss = SpreadsheetApp.getActiveSheet();
//最初の文字列「heisei31」が入っている緑のセルとその下の灰色のセル「reiwa1」が入っているセルを配列arrayに2行1列の二次元配列として取得する
const array = ss.getRange(1, 1, 2).getValues();
//配列arrayに文字列が出力出来たことをログ出力で確認する
console.log(array);
//スプレッドシートの黄色いセルに二次元配列arrayを出力する
ss.getRange(5, 1, array.length).setValues(array);
}
宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。
お台場自由の女神と、レインボーブリッジと、レインボーブリッジの右から1cmぐらいの所にある東京タワーです。
日帰り旅行のブログ記事とフォトムービーはこちらから
■ 参考文献の紹介■
じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。
GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。
←前の問題へ 次の問題へ(準備中)→