paiza レベルアップ問題集 標準入力6「【N 個の整数の入力】1 行目で与えられる N 個の整数の入力 (large)」をPythonとGASで解いてみた

この記事を読むことで、Pythonで標準入力とsplitメソッドを用いて、数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、二次元配列にして出力しています。

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

GASはスプレッドシートを使っています。

【N 個の整数の入力】1 行目で与えられる N 個の整数の入力 (large) (paizaランク D 相当)

問題:
1 行目で、整数 N と、続けて N 個の整数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:1行目を標準入力でsplitメソッドを使ってリストarrayとして取得する
2:出力する整数の個数N=array[0]とする
3:リストarrayをarray[0]からarray[N]まで出力する

の3ステップで行います。

今回は入出力例1を用います。

入力例1
5 8 1 3 1 3

出力例1
8
1
3
1
3

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#1行目を標準入力でsplitメソッドを使ってリストarrayとして取得する
array=list(map(int,input().rstrip().split(' ')))

#出力する整数の個数N=array[0]とする
N=array[0]

#リストarrayをarray[0]からarray[N]まで出力する
for i in range(1,N+1):
    print(array[i])

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

灰色の所に出力する数字の個数N個(5)とN個の数字(8 1 3 1 3)を入力しています。N個の数字を黄色いセルに出力します。その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:灰色のセルを配列arrayに取得
3:取得したarrayをログ出力
4:数字の数N個にarray[0]を代入する
5:array[1]からarray[N]まで、二次元配列array2にループで格納する
6:スプレッドシート格納前に二次元配列array2をログ出力する
7:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:灰色のセルを配列arrayに取得

const array=ss.getRange(1,1).getValue().split(‘ ‘);

手順3:取得したarrayをログ出力

console.log(array);

手順4:数字の数N個にarray[0]を代入する

const N=array[0];

手順5:array[1]からarray[N]まで、二次元配列array2にループで格納する

//array[1]からarray[N]まで、二次元配列array2にループで格納する
  let array2=[];
  for(i=1;i<=N;i++){
    array2.push([array[i]]);
  }

手順6:スプレッドシート格納前に二次元配列array2をログ出力する

console.log(array2);

手順7:スプレッドシートの黄色い所に格納する

ss.getRange(3,1,N).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput28(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //灰色のセルを配列arrayに取得
  const array=ss.getRange(1,1).getValue().split(' ');
  
  //取得したarrayをログ出力
  console.log(array);
  
  //数字の数N個にarray[0]を代入する
  const N=array[0];

  //array[1]からarray[N]まで、二次元配列array2にループで格納する
  let array2=[];
  for(i=1;i<=N;i++){
    array2.push([array[i]]);
  }

  //スプレッドシート格納前に二次元配列array2をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(3,1,N).setValues(array2);
  
}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

奥多摩、東京都檜原村にある「払沢の滝」

←前の問題へ          標準入力その7→

paiza レベルアップ問題集 標準入力その6「STEP: 4 2 行目で与えられる N 個の整数の入力 (large)」をPythonとGASの両方で解いたコードを紹介

この記事を読むことで、Pythonで標準入力とsplitメソッドを用いて、数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、二次元配列にして出力しています。

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

GASはスプレッドシートを使っています。

2 行目で与えられる N 個の整数の入力 (large) (paizaランク D 相当)

問題:
1 行目で整数 N が与えられます。
2 行目で、N 個の整数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:1行目を標準入力で整数型Nとして取得する
2:2行目からN個分をリストarrayに取得
3:リストarrayをループで出力

の3ステップで行います。

今回は入出力例1を用います。

入力例1
5
8 1 3 10 100

出力例1
8
1
3
10
100

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#1行目を標準入力で整数型Nとして取得する
N=int(input())

#2行目からN個分をリストarrayに取得
array=list(map(int,input().rstrip().split(' ')))

#リストarrayをループで出力
for num in array:
    print(num)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに数字の個数Nを、灰色の所のN個の数を取得し、それを黄色いセルに出力します。その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:緑色と灰色のセルを二次元配列numとして取得
3:取得したnumをログ出力
4:num[0][0]を数字の個数Nに格納
5:num[1][0]にsplitメソッドを使って、配列arrayに格納
6:取得した配列arrayをログ出力する
7:配列arrayを二次元配列array2にループで格納
8:スプレッドシート格納前に二次元配列array2をログ出力する
9:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑色と灰色のセルを二次元配列numとして取得

num=ss.getRange(1,1,2).getValues();

手順3:取得したnumをログ出力

console.log(num);

手順4:num[0][0]を数字の個数Nに格納

const N=num[0][0];

手順5:num[1][0]にsplitメソッドを使って、配列arrayに格納

const array=num[1][0].split(‘ ‘);

手順6:取得した配列arrayをログ出力する

console.log(array);

手順7:配列arrayを二次元配列array2にループで格納

//配列arrayを二次元配列array2にループで格納
  let array2=[];
  for(let i=0;i<N;i++){
    array2.push([array[i]]);
  }

手順8:スプレッドシート格納前に二次元配列array2をログ出力する

console.log(array2);

手順9:スプレッドシートの黄色い所に格納する

ss.getRange(1,3,N).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput27(){
  
  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //緑色と灰色のセルを二次元配列numとして取得
  num=ss.getRange(1,1,2).getValues();

  //取得したnumをログ出力
  console.log(num);

  //num[0][0]を数字の個数Nに格納
  const N=num[0][0];

  //num[1][0]にsplitメソッドを使って、配列arrayに格納
  const array=num[1][0].split(' ');

  //取得した配列arrayをログ出力する
  console.log(array);

  //配列arrayを二次元配列array2にループで格納
  let array2=[];
  for(let i=0;i<N;i++){
    array2.push([array[i]]);
  }

  //スプレッドシート格納前に二次元配列array2をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(1,3,N).setValues(array2);
  
}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

よみうりランド、ジュエルミネーション

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力6」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その6「STEP: 3 1 行目で与えられる N 個の整数の入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonで標準入力とsplitメソッドを用いて、数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、二次元配列にして出力しています。

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

GASはスプレッドシートを使っています。

1 行目で与えられる N 個の整数の入力 (paizaランク D 相当)

問題:
1 行目で、整数 N と、続けて N 個の整数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:1行目を標準入力でリストとして取得する
2:リストの先頭添字0を要素数Nとする
3:リストの2番目添字1から添字Nまでをループで出力

の3ステップで行います。

今回は入出力例1を用います。

入力例1
13 5085 2923 8669 3231 7032 73 2683 8317 5545 9774 7179 2646 2470

出力例1
5085
2923
8669
3231
7032
73
2683
8317
5545
9774
7179
2646
2470

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#1行分をリストとして取得
array=list(map(int,input().split(' ')))

#数列の個数Nを取得
N=array[0]

#数列をループで取得
for i in range(1,N+1):
    print(array[i])

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

灰色の所の数列を取得し、それを黄色いセルに出力します。その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:灰色のセルの数列の個数と数列をsplitメソッドを用いて配列として取得
3:取得した配列arrayをログ出力する
4:配列の先頭の要素0を要素数Nに代入する
5:配列の2番目から最後の要素を二次元配列array2に格納する
6:スプレッドシート格納前に二次元配列をログ出力する
7:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:灰色のセルの数列の個数と数列をsplitメソッドを用いて配列として取得

array=ss.getRange(1,1).getValue().split(‘ ‘);

手順3:取得した配列arrayをログ出力する

console.log(array);

手順4:配列の先頭の要素0を要素数Nに代入する

const N=array[0];

手順5:配列の2番目から最後の要素を二次元配列array2に格納する

//配列の2番目から最後の要素を二次元配列array2に格納する
  let array2=[];
  for(let i=1;i<=N;i++){
    array2.push([array[i]]);
  }

手順6:スプレッドシート格納前に二次元配列をログ出力する

console.log(array2);

手順7:スプレッドシートの黄色い所に格納する

ss.getRange(1,3,N).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput26(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //灰色のセルの数列の個数と数列をsplitメソッドを用いて配列として取得
  array=ss.getRange(1,1).getValue().split(' ');

  //取得した配列arrayをログ出力する
  console.log(array);

  //配列の先頭の要素0を要素数Nに代入する
  const N=array[0];

  //配列の2番目から最後の要素を二次元配列array2に格納する
  let array2=[];
  for(let i=1;i<=N;i++){
    array2.push([array[i]]);
  }

  //スプレッドシート格納前に二次元配列をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(1,3,N).setValues(array2);

}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

横浜みなとみらい、ランドマークタワーの夜景と観覧車

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力6」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その6「STEP: 2 2 行目で与えられる N 個の整数の入力」をPythonとGASの両方で解いたコードを紹介

この記事を読むことで、Pythonで標準入力とsplitメソッドを用いて、数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、二次元配列にして出力しています。

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

GASはスプレッドシートを使っています。

2 行目で与えられる N 個の整数の入力 (paizaランク D 相当)

問題:
1 行目で整数 N が与えられます。
2 行目で、N 個の整数 a_1, … , a_N が半角スペース区切りで与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:1行目は標準入力で整数の数Nを取得する
2:2行目は標準入力とsplitメソッドを使い、リストにN個全ての整数格納する
3:格納したリストの要素を出力する

の3ステップで行います。

今回は入出力例1を用います。

入力例1
6
6561 3785 6338 9568 4956 557

出力例1
6561
3785
6338
9568
4956
557

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#数値の個数
N=int(input())

# N個の数値をリストに格納
array=list(map(int,input().split(' ')))

for num in array:
    print(num)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した数列の個数を取得して、灰色の所の数列を取得し、それを黄色いセルに出力します。その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:緑のセルにある数列の個数Nを取得
3:灰色のセル1列をsplitメソッドで空白による分割をして配列arrayに取得
4:取得したarrayをログ出力する
5:スプレッドシートに格納するため、二次元配列array2に格納する
6:スプレッドシート格納前に二次元配列をログ出力する
7:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルにある数列の個数Nを取得

const N=ss.getRange(1,1).getValue();

手順3:灰色のセル1列をsplitメソッドで空白による分割をして配列arrayに取得

const array=ss.getRange(2,1).getValue().split(‘ ‘);

手順4:取得したarrayをログ出力する

console.log(array);

手順5:スプレッドシートに格納するため、二次元配列array2に格納する

//スプレッドシートに格納するため、二次元配列array2に格納する
  array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

手順6:スプレッドシート格納前に二次元配列をログ出力する

console.log(array2);

手順7:スプレッドシートの黄色い所に格納する

ss.getRange(4,1,N).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput25(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //緑のセルにある数列の個数Nを取得
  const N=ss.getRange(1,1).getValue();

  //灰色のセル1列をsplitメソッドで空白による分割をして配列arrayに取得
  const array=ss.getRange(2,1).getValue().split(' ');

  //取得したarrayをログ出力する
  console.log(array);

  //スプレッドシートに格納するため、二次元配列array2に格納する
  array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

  //スプレッドシート格納前に二次元配列をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(4,1,N).setValues(array2);

}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

いたばし花火大会(東京都板橋区)

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力6」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その6「STEP: 1 改行区切りでの N 個の整数の入力」をPythonとGASの両方で解いたコードを紹介

この記事を読むことで、Pythonで標準入力を用いて数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、ループを使わずに出力しています。

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

GASはスプレッドシートを使っています。

改行区切りでの N 個の整数の入力 (paizaランク D 相当)

問題:

1 行目で整数 N が与えられます。
2 行目以降で、N 個の整数 a_1, … , a_N が N 行で与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:標準入力で整数の数Nを取得する
2:ループの中で標準入力を使い、N個全ての整数を出力する

の2ステップで行います。

今回は入出力例1を用います。

入力例1
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

出力例1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#1:標準入力で整数の数Nを取得する
N=int(input())

#2:ループの中で標準入力を使い、N個全ての整数を出力する
for i in range(N):
    temp=int(input())
    print(temp)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した、数列の個数を取得して、灰色の所の数列を取得し、それを黄色いセルに出力します。その際、この灰色のセル、黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルにある数列の個数Nを取得

3:灰色のセルN行1列を配列arrayに取得

4:取得したarrayをログ出力する

5:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルにある数列の個数Nを取得

const N=ss.getRange(1,1).getValue();

手順3:灰色のセルN行1列を配列arrayに取得

const array=ss.getRange(2,1,N).getValues();

手順4:取得したarrayをログ出力する

console.log(array);

手順5:スプレッドシートの黄色い所に格納する

ss.getRange(1,3,N).setValues(array);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput24(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //緑のセルにある数列の個数Nを取得
  const N=ss.getRange(1,1).getValue();

  //灰色のセルN行1列を配列arrayに取得
  const array=ss.getRange(2,1,N).getValues();

  //取得したarrayをログ出力する
  console.log(array);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(1,3,N).setValues(array);
}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

代々木公園のバラ

←標準入力その5へ          次の問題へ→

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力6」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その5「FINAL問題 【整数の半角スペース区切りの入力】1,000個の整数の半角スペース区切りの入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonで標準入力でsplitメソッドを使って、半角スペース区切りの整数を千個取得し、1000行の整数を出力する方法が学べます。GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、プログラミング学習コンテンツpaizaラーニングレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。

Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。

Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。

(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)

【整数の半角スペース区切りの入力】1,000個の整数の半角スペース区切りの入力 (paizaランク D 相当)

問題:

整数 a_1, a_2, … , a_999, a_1000 が半角スペース区切りで与えられるので、改行区切りにして 1000 行で出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:標準入力でsplitメソッドを使って半角スペース区切りの整数をリストで取得する

2:取得したリストをループで出力する

の2ステップで行います。

今回は入出力例1(1000個ある為省略)を用います。

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)画像の一部です。

下記のコードで入力と出力を行います。

array=list(map(int,input().rstrip().split(' ')))
#print(array)

for num in array:
    print(num)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した整数を取得して、それを黄色いセルに出力します。その際、この黄色いセルの所には、splitメソッドを用いて数字列を分割して、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する

3:配列arrayのログ出力

4:スプレッドシートに格納する為に、array2に二次元配列として格納する

5:スプレッドシートに格納前に、array2をログ出力する

6:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する

const array=ss.getRange(1,1).getValue().split(‘ ‘);

手順3:配列arrayのログ出力

console.log(array);

手順4:スプレッドシートに格納する為に、array2に二次元配列として格納する

//スプレッドシートに格納する為に、array2に二次元配列として格納する
  let array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

手順5:スプレッドシートに格納前に、array2をログ出力する

console.log(array2);

手順6:スプレッドシートの黄色い所に格納する

ss.getRange(3,1,array2.length).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput23(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();
  
  //緑のセルの整数をsplitメソッドを使って配列arrayに格納する
  const array=ss.getRange(1,1).getValue().split(' ');
  
  //配列arrayのログ出力
  console.log(array);

  //スプレッドシートに格納する為に、array2に二次元配列として格納する
  let array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

  //スプレッドシートに格納前に、array2をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(3,1,array2.length).setValues(array2);

}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

マクセルアクアパーク品川の水槽を泳ぐ涼しげ魚たち

←前の問題へ          標準入力その6へ→

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力6」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その5「STEP: 4 10 個の整数の半角スペース区切りの入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonで標準入力でsplitメソッドを使って、半角スペース区切りの整数を10つ取得し、10行の整数を出力する方法が学べます。GASではスプレッドシートで値を取得して出力しています。

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

GASはスプレッドシートを使っています。

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

10 個の整数の半角スペース区切りの入力 (paizaランク D 相当)

問題:

整数 a_1, a_2, … , a_9, a_10 が半角スペース区切りで与えられるので、改行区切りにして 10 行で出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:標準入力でsplitメソッドを使って半角スペース区切りの整数をリストで取得する

2:取得したリストをループで出力する

の2ステップで行います。

今回は下記の入出力例1を用います。

入力例1
10 9 8 7 6 5 4 3 2 1

出力例1
10
9
8
7
6
5
4
3
2
1

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

array=list(map(int,input().rstrip().split()))
#標準入力でリストに格納されたことを確認
#print(array)

#ループで取得
for num in array:
    print(num)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した整数を取得して、それを黄色いセルに出力します。その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする
2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する
3:配列arrayのログ出力
4:スプレッドシートに格納する為に、array2に二次元配列として格納する
5:スプレッドシートに格納前に、array2をログ出力する
6:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する

const array=ss.getRange(1,1).getValue().split(‘ ‘);

手順3:配列arrayのログ出力

console.log(array);

手順4:スプレッドシートに格納する為に、array2に二次元配列として格納する

//スプレッドシートに格納する為に、array2に二次元配列として格納する
let array2=[];
for(let i=0;i<array.length;i++){
  array2.push([array[i]]);
}

手順5:スプレッドシートに格納前に、array2をログ出力する

console.log(array2);

手順6:スプレッドシートの黄色い所に格納する

ss.getRange(1,3,array2.length).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput22(){

//SpreadSheetAppから階層を辿って現在のシートにアクセスする
const ss=SpreadsheetApp.getActiveSheet();

//緑のセルの整数をsplitメソッドを使って配列arrayに格納する
const array=ss.getRange(1,1).getValue().split(' ');

//配列arrayのログ出力
console.log(array);

//スプレッドシートに格納する為に、array2に二次元配列として格納する
let array2=[];
for(let i=0;i<array.length;i++){
  array2.push([array[i]]);
}


//スプレッドシートに格納前に、array2をログ出力する
console.log(array2);

//スプレッドシートの黄色い所に格納する
ss.getRange(1,3,array2.length).setValues(array2);

}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

横浜みなとみらい。ランドマークタワーの夜景

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力5」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その5「STEP: 3 5 つの整数の半角スペース区切りの入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonの標準入力で5つの整数を取得し、区切り文字からリストを作成して、そのリストをループで出力する方法が学べます。
GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、プログラミング学習コンテンツpaizaラーニングレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。

Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。

Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。

(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)


5 つの整数の半角スペース区切りの入力 (paizaランク D 相当)

問題:

整数 a_1, a_2, a_3, a_4, a_5 が半角スペース区切りで与えられるので、改行区切りにして 5 行で出力してください。

ではまず、Pythonで解いてみます。


手順として、

1:標準入力でsplitメソッドを使って半角スペース区切りの整数をリストで取得する

2:取得したリストをループで出力する

・シンプルなループ
・リスト出力に適したループ
・上記の内包表記  

の2ステップで行います。

今回は下記の入出力例1を用います。

入力例1
2 0 8 1 3

出力例1
2
0
8
1
3

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。
1行に複数の関数が使われているので、その例に即して簡潔にお伝えします。

split … 標準入力で文字列や数値などを取得する

int … 上記で取得する対象が整数である


rstrip … 右側にある不要な空白を取り除く


map … 関数をまとめて適用


list … リスト(配列)変換

上記の関数を用いてコードを掲載致します。
関数が沢山に色々出て来てしまいましたので、まずは、標準入力で取得した数値がリスト(配列)形式でarrayに取得出来たことをprint文で出力して確認します。

#5つの整数を標準入力で取得し右側の不要な空白を削除してリストにする
array=list(map(int,input().rstrip().split(' ')))

#arrayが配列として取得できたことを確認する
print(array)

このコードの出力結果です。

では、リストarrayをループを用いて解答の出力例に沿って縦に出力します。

ループを用いる前に、リストarrayの長さを調べて、リストは0からarray[0]、array[1] …array[4]になるので回数、リストの長さが5(0,1,2,3,4の5つ)になることをlen関数を用いて確認します。

array=list(map(int,input().rstrip().split(' ')))
print(array)

#リストの長さを求める
print(len(array))

では、ループで出力します。

for i in range(len(array)):

これで、iに0,1,2,3,4が入ります。
range(数)で、0からその数未満の回数分ループを回します。

array=list(map(int,input().rstrip().split(' ')))
print(array)

print(len(array))

#ループを使ってリストを出力
for i in range(len(array)):
    print(array[i])

必要な分だけ出力するので、コメントアウトを致します。

array=list(map(int,input().rstrip().split(' ')))
#print(array) ←コメントアウト

#print(len(array)) ←コメントアウト

#ループを使ってリストを出力
for i in range(len(array)):
    print(array[i])

すると、回答提出に必要な分だけ出力されました。

リストを使った、更に便利なループの表記方法について掲載致します。

for リストの要素の文字 in リスト名:

今回の例ですと、

for num in array:

になります。
リストの要素の所は自分や他の方が見て分かりやすい「num」などが、「整数を取り出すんだな」と伝わりやすいです。

コメントアウトした部分を削除して、コードを掲載致します。

array=list(map(int,input().rstrip().split(' ')))

#リスト出力に便利なループの書き方
for num in array:
    print(num)

更にコード短くするのに、内包表記を用います。

[出力結果のprint文 for リストの要素の文字 in リスト名]

今回の例ですと、

[print(num) for num in array]

と表記いたします。

array=list(map(int,input().rstrip().split(' ')))

#リスト出力に便利なループの書き方の内包表記
[print(num) for num in array]

このコードの実行(出力)結果です。

Pythonは以上です。
次は、GASで解いて行きます。


今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルB1の所にpaiza問題の入力例をコピペする際、[Ctrl] + [Shif] + [V] のショートカットキーを使うと書式を崩さずに貼り付けられます。

緑色のセルB1(1,2)に入力した整数を取得して、それをB3(3,2)から始まる黄色いセル5行分に出力します。

その際、この黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する

3:配列arrayのログ出力

4:スプレッドシートに出力する為に、array2に二次元配列として格納する

5:スプレッドシート出力前に、array2をログ出力する

6:スプレッドシートのB3(3,2)から始まる黄色いセル5行分に出力する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

このコードを関数「standardInput3」の中に書いて行きます。

Standard Inputで標準入力の意味です。

function standardInput3() {
  
  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

}

手順2:緑のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する

const array=ss.getRange(1,2).getValue().split(‘ ‘);

splitメソッドで、セルB1の値を区切って取得して配列arrayに格納しております。

function standardInput3() {
  
  const ss=SpreadsheetApp.getActiveSheet();

  //緑のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する
  const array=ss.getRange(1,2).getValue().split(' ');

}

手順3:配列arrayに5つ分の数値が配列として出力出来たことをログ出力で確認

console.log(array);

下記のコードと実行結果です。

function standardInput3() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  //配列arrayが5つの数値のリストとして取得出来たことをログ出力で確認
  console.log(array);

}

手順4:スプレッドシートに出力する準備で、array2を宣言して二次元配列として格納する

function standardInput3() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');
  console.log(array);

  //スプレッドシートに格納する為に、array2に二次元配列として格納する
  const array2=[];

}

では、上のコードで宣言したarray2に二次元配列として配列arrayの5つの数値を格納するコードを掲載します。

function standardInput3() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');
  console.log(array);

  const array2=[];

  //ループを用いて空の配列array2にarrayを二次元配列として追加する
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

  //スプレッドシート格納前にarray2が二次元配列になっていることをログで確認する
  console.log(array2);

}

実行結果のログで、array2が二次元配列になっていることが確認出来ました。

ループの部分ですが、配列の添字が0から始まるので、array[0]、array[1] … array[4]と取得するため、i<array.lenghと「<」で配列の長さ未満の演算子を使っています。

また、[array[i]]とすることで、配列に要素を追加するpushで二次元配列として追加しています。

手順5:スプレッドシートに格納前に、array2をログ出力する

console.log(array2);

手順6:スプレッドシートのB3(3,2)から始まる黄色いセル5行分に出力する

ss.getRange(3,2,5).setValues(array2);

セルB3が(3,2)で5行分ですので、(3,2,5)と行数を指定しています。
また、列数の1列も指定すると(3,2,5,1)になりますが、こちらは省略可能です。

function standardInput3() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');
  console.log(array);

  const array2=[];

  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

  console.log(array2);

  //スプレッドシートの黄色いセルB3から5行分に出力する
  ss.getRange(3,2,5).setValues(array2);

}

実行後のスプレッドシートです。

GASは以上です。

※ この記事の作成に参考になったサイトです ※
ありがとうございます。

Python「rstrip() メソッド」で文字列の右端を整えよう!
Python mapの使い方


お疲れ様でした。ブレイクタイムPhotoは、

羽田空港の飛行機と空港夜景です。

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力5」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その5「STEP: 2 2 つの整数の半角スペース区切りの入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonで標準入力でsplitメソッドを使って、半角スペース区切りの整数を2つ取得し、2行の整数を出力する方法が学べます。

GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、プログラミング学習コンテンツpaizaラーニングレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。

Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。

Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。

(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)


2 つの整数の半角スペース区切りの入力 (paizaランク D 相当)

問題:
整数 a, b が半角スペース区切りで与えられるので、改行区切りにして 2 行で出力してください。

ではまず、Pythonで解いてみます。


手順として、

1:標準入力でsplitメソッドを使って半角スペース区切りの整数を取得する

2:取得した整数a,bを出力する

の2ステップで行います。

今回は下記の入出力例2を用います。

入力例2
1234 5678

出力例2
1234
5678

まず、準備として、paiza.ioにこのように入力します。
(入力例2 をコピペしたのみ)

下記のコードで標準入力とprint文での出力を行います。

map… 一括変換
int … 整数を標準入力で取得する際に用いる
input … 標準入力で取得
split … 指定した文字で区切る

これを1行で書いて、aとbにそれぞれ代入しています。

#標準入力で取得した値を数値と区切りに一括で変換してaとbそれぞれに代入
a,b=map(int,input().split(' '))

#代入した数値それぞれを出力
print(a)
print(b)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。


今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

paizaの問題から例2をコピーして、スプレッドシートの緑のセルB1(1,2)に貼り付ける際、[Ctrl] + [Shift] + [V] のショートカットを使うと書式が崩れないでコピペ出来ます。

それでは、緑色のセルに入力した整数を取得して、それを黄色いセルに出力します。

その際、この黄色いセルB3(3,2)〜B4(4,2)の所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する

3:配列arrayのログ出力

4:スプレッドシートに出力する為に、二次元配列としてarray2(空の配列)を使用するので、その宣言をする

5:ループを使って一次元配列arrayを二次元配列array2に追加する

6:スプレッドシート出力前に、array2が二次元配列になっていることをログで確認する

7:スプレッドシートの黄色いセルB3(3,2)〜B4(4,2)に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

コードを関数「standardInput2」に書いて行きます。

Standard Inputで標準入力の意味です。

function standardInput2() {

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();
  
}

手順2:緑のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する

const array=ss.getRange(1,2).getValue().split(‘ ‘);

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();

  //緑色のセルB1(1,2)の整数をsplitメソッドを使って配列arrayに格納する
  const array=ss.getRange(1,2).getValue().split(' ');
  
}

手順3:配列arrayのログ出力

console.log(array);

コードと出力結果です。
結果の画像から1次元配列であることが確認出来ます。

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  //配列arrayのログ出力
  console.log(array);
  
}

手順4:スプレッドシートに出力する為に、二次元配列としてarray2(空の配列)を使用するので、その宣言をする

const array2=[];

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  console.log(array);

  //スプレッドシートに出力する為に、数値をarray2に二次元配列として格納する
  //空の二次元配列array2を宣言する
  const array2=[];

}

手順5:ループを使って一次元配列arrayを二次元配列array2に追加する

for(i=0; i<array.length; i++)

一次元配列arrayの添字0から、この配列の長さが2(array.lengthは2になります)
の1つ前までをループを使って二次元配列に追加して行きます。
i<arrayであり、「<」となっていて「<=」では無い所がポイントです。

array.lengthの長さ未満(配列の長さから1を引く)を指定することによって、ループ内ではiが添字0と添字1が該当します
array[i]がarray[0] 〜 array[1]の2つまでループ内で扱います。

array2.push(array[i]);

配列の添字は0から始まるので、array[0]である「1234」とarray[1]である「5678」をループで追加します。

[array[i]]と、array[i]自体を[ ]で括っていることで、二次元配列として追加しています。

また、iの前でletを用いていることにより、iは定数ではなく変数として、ループの中で値を0,1と変えられます。

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  console.log(array);

  //スプレッドシートに出力する為に、数値をarray2に二次元配列として格納する
  
  const array2=[];

  //ループでarrayに格納された数値を二次元配列に追加する
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  } 
}

手順6:スプレッドシート出力前に、array2が二次元配列になっていることをログ出力で確認する

console.log(array2);

コードと実行結果です。
これでarray2は無事に二次元配列になりました。

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  console.log(array);
  
  const array2=[];

  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  } 

  //スプレッドシート出力前に、array2が二次元配列になっていることをログ出力で確認する
  console.log(array2);

}

手順7:スプレッドシートの黄色いセルB3〜B4の(3,2)から2行分出力する

ss.getRange(3,2,2).setValues(array2);

セルB3(3,2)から2行分なので(3,2,2)となります。
1列分も含めると(3,2,2,1)になりますが、この1列分は省略可能です。

コードと実行後のスプレッドシートです。

function standardInput2() {
  
  const ss=SpreadsheetApp.getActiveSheet();
  const array=ss.getRange(1,2).getValue().split(' ');

  console.log(array);
  
  const array2=[];

  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  } 

  console.log(array2);

  //スプレッドシートの黄色いセルB3〜B4にB3(3,2)から2行分出力する
  ss.getRange(3,2,2).setValues(array2);

}

GASは以上です。


お疲れ様でした。ブレイクタイムPhotoは、

スカイツリーと河津桜(夜桜でライティングは紫の雅(みやび))です。

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

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力5」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介

paiza レベルアップ問題集 標準入力その5「STEP: 1 1 つの整数の入力」をPythonとGASの両方で解いたコードの紹介

この記事を読むことで、Pythonで標準入力を使って1行の整数を取得する方法が学べます。

取得する対象が整数ですので、intの中にinputを用います。
GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、プログラミング学習コンテンツpaizaラーニングレベルアップ問題集を、PythonとGAS(Google Apps Script)の両方で同じ問題を解いたコードを公開している学習ログです。

Python・GASのどちらの言語のコードも可能な限り詳細に解説致します。
GASはスプレッドシートのエディタを使ってコードを書いております。

Pythonではpaizaに入会しなくても問題集を解きたい方向けにpaiza.ioを用いております。paiza.ioの使い方はこちらから。

(入会するか否かは問題集を解いて見てからの読者様のご判断にお任せ致します。
どちらの選択をされても記事を読めるようになっておりますので、ご安心なさって下さい。)


1 つの整数の入力 (paizaランク D 相当)

問題:
整数 a が与えられるので a を出力してください。

ではまず、Pythonで解いてみます。


手順として、

1:標準入力で整数を取得する

2:取得した整数を出力する

の2ステップで行います。

今回は下記の入出力例1を用います。

入力例1
813

出力例1
813

まず、準備として、paiza.ioにこのように入力します。
(入力例1をコピペしたのみ)

下記のコードで入力と出力を行います。
コメントに書いてある通り、整数を標準入力で取得したい時はintの中にinputを入れたコードを書きます。

#整数を標準入力で取得する為、intとinputを使用する
a=int(input())
print(a)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。


今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルB1(1,2)に入力した整数を取得して、それを黄色いセルB3(3,2)に出力します。

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑色のセルB1(1,2)の整数を取得してaに格納


3:スプレッドシートの出力前にaを取得できたことをログ出力で確認する


4:スプレッドシートの黄色いセルB3(3,2)にaを出力する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

このコードを関数「standardInput1」の中に書いて行きます。

Standard Inputで標準入力の意味です。

function standardInput1() {

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

}

手順2:緑色のセルB1(1,2)の整数を取得してaに格納

const a=ss.getRange(1,2).getValue();

function standardInput1() {

  const ss=SpreadsheetApp.getActiveSheet();

  //緑色のセルB1(1,2)の整数を取得してaに格納
  const a=ss.getRange(1,2).getValue();

}

手順3:スプレッドシートの出力前にaを取得できたことをログ出力で確認する

console.log(a);

コードと実行結果です。

function standardInput1() {

  const ss=SpreadsheetApp.getActiveSheet();
  const a=ss.getRange(1,2).getValue();

  //スプレッドシートの出力前にaを取得できたことをログ出力で確認する
  console.log(a);

}

手順4:スプレッドシートの黄色いセルB3(3,2)にaを出力する

ss.getRange(3,2).setValue(a);

コードと実行後のスプレッドシートです。

function standardInput1() {

  const ss=SpreadsheetApp.getActiveSheet();
  const a=ss.getRange(1,2).getValue();
  console.log(a);

  //スプレッドシートの黄色いセルB3(3,2)にaを出力する
  ss.getRange(3,2).setValue(a);

}

GASは以上です。


お疲れ様でした。ブレイクタイムPhotoは、

遊歩道の桜です。

標準入力その4へ           次の問題へ→

ご精読有難うございました。

■ GASの入門書の紹介です ■

詳解! Google Apps Script完全入門 [第3版]
単行本
Kindle版(電子書籍)

■ 関連記事 ■

paizaレベルアップ問題集「標準入力5」へ戻る
paizaレベルアップ問題集_PythonとGASのコード紹介トップページへ

写真クリエイターとしての活動
自己紹介