このコーナーでは、学習コンテンツpaizaラーニングのレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。
GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
この問題では、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の値を変更しただけです。
お疲れ様でした。
ブレイクタイムフォトはこちらになります。
千葉県房総半島、外房御宿の水平線
■ 参考文献 ■
じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。
GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。