paiza レベルアップ問題集 「STEP: 4 100 行の整数の入力」をPythonとGASで解いてみた

この記事を読むことで、Pythonで標準入力を使って、ループを用いて100個の整数を取得する方法が学べます。GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、学習コンテンツpaizaラーニングレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。

GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。

サイトマップはこちらから

paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験

paizaでの解答はPythonで行いましたが、この記事ではPythonのコードと共に、同じ問題を現在学習中のGASだったらどう解くのか、スプレッドシートでバインドして作ってみました。

100 行の整数の入力 (paizaランク D 相当)

問題:
整数 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サンプル
基本情報技術者試験

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

←前の問題へ          次の問題へ→

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。