この記事を読むことで、Pythonで標準入力を使って、ループを用いて100個の整数を取得する方法が学べます。GASではスプレッドシートで値を取得して出力しています。
このコーナーでは、学習コンテンツpaizaラーニングのレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。
GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
paizaでの解答はPythonで行いましたが、この記事ではPythonのコードと共に、同じ問題を現在学習中のGASだったらどう解くのか、スプレッドシートでバインドして作ってみました。
問題:
整数 a_1, a_2, … , a_99, a_100 が 100 行で与えられるので a_1, a_2, … , a_99, a_100 を 100 行で出力してください。
ではまず、Pythonで解いてみます。
今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。
■ Pythonでの解き方 ■
手順として、
1:ループを使って標準入力で整数を取得し出力する
の1ステップで行います。
今回は下記の入出力例1を用います。
入力例1
4090
4199
9064
6517
9620
・
・
・
(省略)
・
・
・
7940
452
7535
9976
4574
出力例1
4090
4199
9064
6517
9620
・
・
・
(省略)
・
・
・
7940
452
7535
9976
4574
まず、準備として、paiza.ioにこのように入力します。
(入力例1をコピペしたのみ)
このコードで入出力を行います。
ループを100回まわして、その中で標準入力で変数tempに代入して、tempを出力しています。
#標準入力で100行取り込んで出力する
for i in range(100):
temp=int(input())
print(temp)
このコードの実行(出力)結果です。
(以下、画像は100行の一部分です。)
Pythonは以上です。
次は、GASで解いて行きます。
■ GASでの解き方 ■
今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。
緑色の列の所に入力した整数を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶした列の所に、二次元配列として取得した整数が格納された配列を出力します。
※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※
手順はこのようになります。
1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:緑色のセルの列の整数を取得して100個の整数を二次元配列numに格納
3:スプレッドシートの出力前に100個の整数が格納された二次元配列numを取得できたことをログ出力で確認する
4:スプレッドシートの黄色い列の所に二次元配列numを出力する
手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする
const ss = SpreadsheetApp.getActiveSheet();
ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。
手順2:緑色のセルの列の整数を取得して100個の整数を二次元配列numに格納
num=ss.getRange(2,1,100).getValues();
手順3:スプレッドシートの出力前に100個の整数が格納された二次元配列numを取得できたことをログ出力で確認する
console.log(num);
手順4:スプレッドシートの黄色い列の所に二次元配列numを出力する
ss.getRange(2,3,100).setValues(num);
実行後のスプレッドシートです。
GASでの全コードはこちらになります。
function standardInput17(){
//SpreadSheetAppから階層を辿って現在のシートにアクセスする
const ss=SpreadsheetApp.getActiveSheet();
//緑色のセルの列の整数を取得して100個の整数を二次元配列numに格納
num=ss.getRange(2,1,100).getValues();
//スプレッドシートの出力前に100個の整数が格納された二次元配列numを取得できたことをログ出力で確認する
console.log(num);
//スプレッドシートの黄色い列の所に二次元配列numを出力する
ss.getRange(2,3,100).setValues(num);
}
宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。
この記事を書いている今は3月。春といえば桜。2021年に撮影した遊歩道の桜です。
■ 参考文献の紹介■
じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。
GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。
paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験
プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。