このコーナーでは、プログラミング学習コンテンツpaizaラーニングのレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。
Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。
Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。この記事で使い方を図解で解説しております。
(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)
この問題では、1から指定の数Nまでを出力します。
指定の数は、任意の数が入力されます。
今回はpaiza.ioを使って解きます。
この記事では、paiza.ioの使い方を図を用いて解説しております。
まず、Pythonで解いてみます。
この例では言語を「Python3」に選択してあります。
■ Pythonでの解き方 ■
この画面の左下の「入力」の下に「5」など任意の数を入力します。
コードを書いていきます。
動作が確認できたので、paiza問題集の提出用コード入力の所に、コピペして提出します。
正解しました。
ここから解き方を見ていきます。
手順として、
1.N=int(input())で標準入力を読み込み
2.for文でrange(1,N+1)を設定
3.print文で表示
となります。
コードを詳しく見てみましょう。
手順1でN+1となっているのは、rangeでは(1,N+1)と指定した場合、(1,N+1)未満、すなわち(1からNまで)となるからです。
Pythonでの全コードはこちらになります。
N=int(input())
for i in range(1,N+1):
print(i)■ GASでの解き方 ■
では、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。
この黄色いセルに1からNまで表示します。
Nは灰色のセルの横に入力しています。
スプレッドシートに表示する場合は、二次元配列を作成します。
手順はこのようになります。
1:配列arrayを定義する
2:スプレッドシートからアクティブシートをアクセスする
3:NをセルB2から読み込む
4:ループで1からNまでの数をarray.push[i]で付け加える。
(array.push(i)だと1次元配列になり、二次元配列のスプレッドシートには読み込めないため。)
5:ログに表示
6:スプレッドシートに表示する。セルB3からN行分なので、getRange(3,2,N)でセルB3からN行確保してそこに配列を流し込むイメージ
実行結果です。
GASでの全コードはこちらになります。
function loop2(){
let array=[];
ss=SpreadsheetApp.getActiveSheet();
N=ss.getRange(1,2,1).getValue();
for(let i=1;i<=N;i++){
array.push([i]);
}
console.log(array);
ss.getRange(3,2,N).setValues(array);
}宜しかったらコピペしてアレンジして見て下さい。
おまけですが、Nの値を例えば28にすると、こうなります。
これはスプレッドシートのB1の値を変更しただけです。
お疲れ様でした。
ブレイクタイムフォトはこちらになります。
千葉県房総半島、外房御宿の水平線
ご精読有難うございました。
■ GASの入門書の紹介です ■
詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)
■ 関連記事 ■
paizaレベルアップ問題集「ループその1の1」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ
写真クリエイターとしての活動
自己紹介
