このコーナーでは、プログラミング学習コンテンツpaizaラーニングのレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。
Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。
Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。
(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)
問題:3 を 8 回、改行区切りで出力してください。
回答:期待する出力
3 を 8 回、改行区切りで出力してください。
出力の末尾には改行を入れてください。
3
3
3
3
3
3
3
3
ではまず、Pythonで解いてみます。
<<Pythonでの解き方>>
手順として、
1.ループで8回繰り返すように設定する
2.「3」を出力する
コードを見てみましょう。
手順1では、
for i in range(8):
で、ループを使っています。
変数iには0,1,2,3,4,5,6,7が代入されるので、8回繰り返す処理が設定されます。
手順2では、
print(3)
で、3を出力しています。
手順1,2と合わせて、3を8回出力出来ました。
Pythonでの全コードはこちらになります。
for i in range(8):
print(3)尚、内包表記を使うと、このようになります。
[print(3) for i in range(8)]たったの1行で済んでしまいました。
<<GASでの解き方>>
では、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に設定しました。
この黄色い部分に結果を出力していきます。
この黄色い部分のA1からA8までに「3」を8回出力します。
※スプレッドシートに表示する場合は、ループを使って一次元配列ではなく、二次元配列としてからの配列に追加をして作成します※
手順はこのようになります。
1:スプレッドシートからアクティブシートをアクセスする
2:スプレッドシートの黄色い所に出力するのに用いる空の配列を定義する
3:ループで8回配列array[]の中に[3]を格納する
4:arrayに二次元配列として3を8回格納出来たことをログ出力で確認する
5:スプレッドシートに表示する。セルA1から8行分なので、getRange(1,1,8)でセルB1から8行分を確保してそこに配列を流し込むイメージ
手順1: スプレッドシートからアクティブシートをアクセスする
const ss=SpreadsheetApp.getActiveSheet();
これで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。
手順2:スプレッドシートの黄色い所に出力するのに用いる空の配列を定義する
let array=[];
手順3:ループを8回回して、push([3])を追加して二次元配列として扱えるようにする。
array.push([3]);
ループ全体ではこのようになります。
for(let i=1;i<=8;i++){
array.push([3]);
}手順4:arrayに二次元配列として3を8回格納出来たことをログ出力で確認する
console.log(array);
実行結果です。
手順5:スプレッドシートに表示する。セルA1から8行分なので、getRange(1,1,8)でセルB1から8行分を確保してそこに配列を流し込むイメージ
ss.getRange(1,1,8).setValues(array);
スプレッドシートオブジェクトにgetRangeでセルA1から8行確保し、setValues(array)で出力しています。
スプレッドシートの実行結果です。
GASでの全コードはこちらになります。
function loop5(){
//アクティブシートにアクセスする
const ss=SpreadsheetApp.getActiveSheet();
//スプレッドシートに出力用の配列を用意する
let array=[];
//ループで空の配列に二次元配列として格納する
for(let i=1;i<=8;i++){
array.push([3]);
}
//ログでarrayに3が8個格納出来たか確認する
console.log(array);
//スプレドシートに格納する
ss.getRange(1,1,8).setValues(array);
}
宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした。
ブレイクタイムフォトはこちらになります。
スカイツリーからの夜景
ご精読有難うございました。
■ GASの入門書の紹介です ■
詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)
■ 関連記事 ■
paizaレベルアップ問題集「ループその1の1」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ
写真クリエイターとしての活動
自己紹介
