paiza レベルアップ問題集 「STEP: 5 ある数をある回数表示 1」 をPythonとGASの両方で解いてみた

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

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

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

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

ある数をある回数表示 1 (paizaランク D 相当)

問題: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);
}

宜しかったらコピペしてアレンジして見て下さい。

お疲れ様でした。

ブレイクタイムフォトはこちらになります。

スカイツリーからの夜景

■ 参考文献の紹介■

じっくり丁寧に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ミラーレス一眼を使っています。