【paiza問題集】「標準入力その3」をPythonとGASの両方で解いたコード紹介リンク集

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

■ 標準入力メニュー3 ■

1 つの入力 Python3編

半角スペース区切りの 2 つの入力 Python3編

半角スペース区切りの 3 つの入力 Python3編

半角スペース区切りの 10 個の入力 Python3編

【半角スペース区切りの入力】半角スペース区切りの 1,000 個の入力 Python3編

paiza問題集のPythonとGASのコード紹介へ戻る
初めてのGASへ戻る


自己紹介へ

【paiza問題集】「標準入力その2」をPythonとGASの両方で解いたコード紹介リンク集

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

■ 標準入力メニュー2 ■

2 つの文字列の半角スペース区切りでの分割 Python3編

3 つの文字列の半角スペース区切りでの分割 Python3編


【半角スペース区切りでの文字列の分割】5 つの文字列の半角スペース区切りでの分割 Python3編

paiza問題集のPythonとGASのコード紹介へ戻る
初めてのGASへ戻る


自己紹介へ

【paiza問題集】「標準入力その1」をPythonとGASの両方で解いたコード紹介リンク集

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

1 行の入力 Python3編

2 行の入力 Python3編

3 行の入力 Python3編

10 行の入力 Python3編

【行入力】1,000 行の入力 Python3編

paiza問題集のPythonとGASのコード紹介へ戻る
初めてのGASへ戻る


自己紹介へ

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

この記事を読むことで、PythonとGASで空白スペースを含む1行の文字列を取得して、空白スペースの所で区切って、ループを使って1000行の文字列に出力する方法が学べます。また、GASではスプレッドシートを用いて値を取得して出力しています。
更にPythonではループを基本的な書き方と内包表記の書き方の2通りで掲載します。

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

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

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

問題:文字列 s_1, s_2, … s_999, s_1000 が半角スペースで区切られて 1 行で与えられます。各文字列を出力するごとに改行し 1,000 行で出力してください。

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

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

■ Pythonでの解き方 ■

手順として、

1:標準入力で空白スペースを含む文字列を区切って取得する

2:取得した文字列がリストになっていることを確認する


3:ループを使って出力する

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

今回は下記の入出力例1を用います。
(1000行は長すぎるので、このブログで入出力例を表示することは省きます。)

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

手順1で標準入力で空白文字を区切って取得します。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

手順2では先ほどの手順で取得した文字列を出力して、リストとして空白区切りで出力されていることを確認します。

#取得した文字列がリストになっていることを確認する
print(s)

手順3ではループを使って出力します。

#ループを使って出力する
for string in s:
    print(string)

これを内包表記を使って書いた場合のコードです。先ほどのコードと見比べると、1行になりよりシンプルなコードが書けました。

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ここまでのコードをまとめます。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
print(s)

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ただ、このままでは求められる出力結果に対して冗長な部分があるので、不要な箇所はコメントアウトします。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
#print(s)

#ループを使って出力する
#for string in s:
#    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

更に提出ように最小限のコードになるようにしたスッキリなコードはこちらになります。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#内包表記を使ったループで出力する
[print(string) for string in s]

提出する直前の出力結果です。

■ GASでの解き方 ■

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

緑色の所に入力した文字列を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶしたセルの所に、二次元配列として取得した文字列が格納された配列を出力します。

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

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

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

2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納
する

3:定数sに配列として格納出来たことをログ出力で確認する

4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

7:スプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

手順2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する

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

手順3:定数sに格納出来たことをログ出力で確認する

console.log(s);

手順4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

let s2 = [];

手順5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

//ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for(let i=0;i<s.length;i++){
    s2.push([s[i]]);
  }

手順6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

console.log(s2);

手順7:スプレッドシートの黄色いセルに出力する

ss.getRange(3,2,s2.length).setValues(s2);

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

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

function standardInput13(){

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

  //緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する
  const s=ss.getRange(1,2).getValue().split(' ');

  //定数sに配列として格納出来たことをログ出力で確認する
  console.log(s);

  //スプレッドシートに出力するため、二次元配列として取得するs2を宣言する
  let s2=[];

  //ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for(let i=0;i<s.length;i++){
    s2.push([s[i]]);
  }

  //スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する
  console.log(s2);

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

}

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

フランスのクリスタルメーカー、バカラのシャンデリア、クールなブルー

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

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

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

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

■ 関連記事 ■

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

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

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

この記事を読むことで、PythonとGASで空白スペースを含む1行の文字列を取得して、空白スペースの所で区切って、ループを使って10個の文字列に出力する方法が学べます。また、GASではスプレッドシートを用いて値を取得して出力しています。
更にPythonではループを基本的な書き方と内包表記の書き方の2通りで掲載します。

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

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

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

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

問題:文字列 s_1, s_2, … s_9, s_10 が半角スペースで区切られて 1 行で与えられます。各文字列を出力するごとに改行し 10 行で出力してください。

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

■ Pythonでの解き方 ■

手順として、

1:標準入力で空白スペースを含む文字列を区切って取得する

2:取得した文字列がリストになっていることを確認する

3:ループを使って出力する

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

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

入力例1
VypymzW25l 3xsXWAK NYwbs2MRC kh4 mr38o8W9 94 fEJ 6THlW fJFTy n

出力例1
VypymzW25l
3xsXWAK
NYwbs2MRC
kh4
mr38o8W9
94
fEJ
6THlW
fJFTy
n

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

手順1で標準入力で空白文字を区切って取得します。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

手順2では先ほどの手順で取得した文字列を出力して、リストとして空白区切りで出力されていることを確認します。

#取得した文字列がリストになっていることを確認する
print(s)

手順3ではループを使って出力します。

#ループを使って出力する
for string in s:
    print(string)

これを内包表記を使って書いた場合のコードです。先ほどのコードと見比べると、1行になりよりシンプルなコードが書けました。

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ここまでのコードをまとめます。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
print(s)

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ただ、このままでは求められる出力結果に対して冗長な部分があるので、不要な箇所はコメントアウトします。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
#print(s)

#ループを使って出力する
#for string in s:
#    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

更に提出ように最小限のコードになるようにしたスッキリなコードはこちらになります。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#内包表記を使ったループで出力する
[print(string) for string in s]

提出する直前の出力結果です。

■ GASでの解き方 ■

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

緑色の所に入力した文字列を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶしたセルの所に、二次元配列として取得した文字列が格納された配列を出力します。

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

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

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

2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する

3:定数sに配列として格納出来たことをログ出力で確認する

4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

7:スプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

手順2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する

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

手順3:定数sに格納出来たことをログ出力で確認する

console.log(s);

手順4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

let s2 = [];

手順5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

//ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for(let i=0;i<s.length;i++){
    s2.push([s[i]]);
  }

手順6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

console.log(s2);

手順7:スプレッドシートの黄色いセルに出力する

ss.getRange(3,2,s2.length).setValues(s2);

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

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

function standardInput12() {

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

  //緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する
  const s = ss.getRange(1, 2).getValue().split(' ');

  //定数sに配列として格納出来たことをログ出力で確認する
  console.log(s);

  //スプレッドシートに出力するため、二次元配列として取得するs2を宣言する
  let s2 = [];

  //ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for (let i = 0; i < s.length; i++) {
    s2.push([s[i]]);
  }

  //スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する
  console.log(s2);

  //スプレッドシートの黄色いセルに出力する
  ss.getRange(3, 2, s2.length).setValues(s2);
}

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

しながわ花海道のコスモス

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

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

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

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

■ 関連記事 ■

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

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

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

この記事を読むことで、PythonとGASで空白スペースを含む1行の文字列を取得して、空白スペースの所で区切って、ループを使って3つの文字列に出力する方法が学べます。また、GASではスプレッドシートを用いて値を取得して出力しています。
更にPythonではループを基本的な書き方と内包表記の書き方の2通りで掲載します。

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

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

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

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

問題:文字列 s_1, s_2, s_3 が半角スペースで区切られて 1 行で与えられます。
各文字列を出力するごとに改行し 3 行で出力してください。

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

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

■ Pythonでの解き方 ■

手順として、

1:標準入力で空白スペースを含む文字列を区切って取得する

2:取得した文字列がリストになっていることを確認する

3:ループを使って出力する

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

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

入力例1
good morning paiza

出力例1
good
morning
paiza

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

手順1で標準入力で空白文字を区切って取得します。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

手順2では先ほどの手順で取得した文字列を出力して、リストとして空白区切りで出力されていることを確認します。

#取得した文字列がリストになっていることを確認する
print(s)

手順3ではループを使って出力します。

#ループを使って出力する
for string in s:
    print(string)

これを内包表記を使って書いた場合のコードです。先ほどのコードと見比べると、1行になりよりシンプルなコードが書けました。

#ループを使って出力する
for string in s:
    print(string)

#内包表記を使ったループで出力する
[print(string) for string in s]

ここまでのコードをまとめます。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
print(s)

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ただ、このままでは求められる出力結果に対して冗長な部分があるので、不要な箇所はコメントアウトします。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
#print(s)

#ループを使って出力する
#for string in s:
#    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

更に提出ように最小限のコードになるようにしたスッキリなコードはこちらになります。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#内包表記を使ったループで出力する
[print(string) for string in s]

提出する直前の出力結果です。

■ GASでの解き方 ■

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

緑色の所に入力した文字列を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶしたセルの所に、二次元配列として取得した文字列が格納された配列を出力します。

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

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

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

2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する


3:定数sに配列として格納出来たことをログ出力で確認する

4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

7:スプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

手順2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する

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

手順3:定数sに格納出来たことをログ出力で確認する

console.log(s);

手順4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

let s2 = [];

手順5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

//ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for(let i=0;i<s.length;i++){
    s2.push([s[i]]);
  }

手順6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

console.log(s2);

手順7:スプレッドシートの黄色いセルに出力する

ss.getRange(3,2,s2.length).setValues(s2);

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

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

function standardInput11() {

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

  //緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する
  const s = ss.getRange(1, 2).getValue().split(' ');

  //定数sに配列として格納出来たことをログ出力で確認する
  console.log(s);

  //スプレッドシートに出力するため、二次元配列として取得するs2を宣言する
  let s2 = [];

  //ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for (let i = 0; i < s.length; i++) {
    s2.push([s[i]]);
  }

  //スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する
  console.log(s2);

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

}

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

水元公園、ゴールデンウィークにサイクリングでグリーンエクササイズ(2018年コロナ前撮影)

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

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

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

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

■ 関連記事 ■

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

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

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

この記事を読むことで、PythonとGASで空白スペースを含む1行の文字列を取得して、空白スペースの所で区切って、2つの文字列に出力する方法が学べます。また、GASではスプレッドシートを用いて値を取得して出力しています。
更にPythonではループを基本的な書き方と内包表記の書き方の2通りで掲載します。

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

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

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

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

問題:文字列 s_1, s_2 が半角スペースで区切られて 1 行で与えられます。各文字列を出力するごとに改行し 2 行で出力してください。

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

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

■ Pythonでの解き方 ■

手順として、

1:標準入力で空白スペースを含む文字列を区切って取得する
2:取得した文字列がリストになっていることを確認する
3:ループを使って出力する

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

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

入力例1
hello paiza

出力例1
hello
paiza

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

手順1で標準入力で空白文字を区切って取得します。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

手順2では先ほどの手順で取得した文字列を出力して、リストとして空白区切りで出力されていることを確認します。

#取得した文字列がリストになっていることを確認する
print(s)

手順3ではループを使って出力します。

#ループを使って出力する
for string in s:
    print(string)

これを内包表記を使って書いた場合のコードです。先ほどのコードと見比べると、1行になりよりシンプルなコードが書けました。

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ここまでのコードをまとめます。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
print(s)

#ループを使って出力する
for string in s:
    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

ただ、このままでは求められる出力結果に対して冗長な部分があるので、不要な箇所はコメントアウトします。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#取得した文字列がリストになっていることを確認する
#print(s)

#ループを使って出力する
#for string in s:
#    print(string)
    
#内包表記を使ったループで出力する
[print(string) for string in s]

更に提出ように最小限のコードになるようにしたスッキリなコードはこちらになります。

#標準入力で空白スペースを含む文字列を区切って取得する
s=input().split(' ')

#内包表記を使ったループで出力する
[print(string) for string in s]

提出する直前の出力結果です。

■ GASでの解き方 ■

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

緑色の所に入力した文字列を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶしたセルの所に、二次元配列として取得した文字列が格納された配列を出力します。

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

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

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

2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する


3:定数sに配列として格納出来たことをログ出力で確認する


4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

7:スプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

手順2:緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する

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

手順3:定数sに格納出来たことをログ出力で確認する

console.log(s);

手順4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

let s2 = [];

手順5:ループを使ってpushメソッドでs2にsを2次元配列として追加する

 //ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for(let i=0;i<s.length;i++){
    s2.push([s[i]]);
  }

手順6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

console.log(s2);

手順7:スプレッドシートの黄色いセルに出力する

ss.getRange(3,2,s2.length).setValues(s2);

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

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

function standardInput10() {

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

  //緑色のセルの所を取得して、空白区切り文字の所で区切って定数sに格納する
  const s = ss.getRange(1, 2).getValue().split(' ');

  //定数sに配列として格納出来たことをログ出力で確認する
  console.log(s);

  //スプレッドシートに出力するため、二次元配列として取得するs2を宣言する
  let s2 = [];

  //ループを使ってpushメソッドでs2にsを2次元配列として追加する
  for (let i = 0; i < s.length; i++) {
    s2.push([s[i]]);
  }

  //スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する
  console.log(s2);

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

}

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

東池袋にある、サンシャイン水族館から1枚(コロナ前2018年撮影)

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

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

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

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

■ 関連記事 ■

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

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

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

この記事を読むことで、Pythonで最も基本的な標準入力の書き方を学べます。また、GASではスプレッドシートを用いて値を取得して出力しています。

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

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

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

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

問題:半角スペースを含まない文字列 s が 1 行で与えられるので、そのまま出力してください。

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

入力例3
paiza813

出力例3
paiza813

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

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

■ Pythonでの解き方 ■

手順として、

1:標準入力で文字列を取得する

2:取得した文字列を出力する

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

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

コードは下記になります。

#標準入力で文字列を取得する
    s=input()
    
    #取得した文字列を出力する
    print(s)

プログラムを実行した出力結果です。

■ GASでの解き方 ■

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

緑色の所に入力した文字列を取得して、それを黄色い所に出力します。その際、この黄色く塗りつぶしたセルの所に、二次元配列として取得した文字列が格納された配列を出力します。

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

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

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

2:緑色のセルの所を取得して定数sに格納する

3:定数sに格納出来たことをログ出力で確認する

4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

5:pushメソッドでs2にsを2次元配列として追加する

6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

7:スプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

手順2:緑色のセルの所を取得して定数sに格納する

s = ss.getRange(1, 2).getValue();

手順3:定数sに格納出来たことをログ出力で確認する

console.log(s);

手順4:スプレッドシートに出力するため、二次元配列として取得するs2を宣言する

let s2 = [];

手順5:pushメソッドでs2にsを2次元配列として追加する

s2.push([s]);

手順6:スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する

console.log(s2);

手順7:スプレッドシートの黄色いセルに出力する

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

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

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

function standardInput09() {

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

  //緑色のセルの所を取得して定数sに格納する
  s = ss.getRange(1, 2).getValue();

  //定数sに格納出来たことをログ出力で確認する
  console.log(s);

  //スプレッドシートに出力するため、二次元配列として取得するs2を宣言する
  let s2 = [];

  //pushメソッドでs2にsを2次元配列として追加する
  s2.push([s]);

  //スプレッドシートに出力する前にs2に二次元配列として格納されていることをログ出力で確認する
  console.log(s2);

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

}

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

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

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

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

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

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

■ 関連記事 ■

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

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

【paiza レベルアップ問題集】標準入力その2 「FINAL問題 【半角スペース区切りでの文字列の分割】5 つの文字列の半角スペース区切りでの分割 」をPythonとGASで解いたコード紹介

この記事を読むことで、PythonとGASでsplitメソッドを使って文字列を空白部分で分割してリスト(配列)に格納し、ループを使って出力する方法、Pythonではそのループの記述と対応して、内包表記で書く方法の概要も掴めます。
GASでは二次元配列として取得、出力する方法の概要が掴めます。

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

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

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

GAS(Google Apps Script)はスプレッドシートを使ってコードを書いていおります。


【半角スペース区切りでの文字列の分割】5 つの文字列の半角スペース区切りでの分割 (paizaランク D 相当)

問題:文字列one two three four fiveを、半角スペースで分割して出力してください。

入力される値
なし


期待する出力
one two three four fiveを半角スペースで区切り、区切られた文字列を改行区切りにして 5 行で出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

one
two
three
four
five

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


手順として、

1:リストarrayにsplitメソッドを使って空白で文字を区切って配列に入力

2:配列を確認

3:ループで出力

で、行います。

手順1で、文字列「one two three four five」にsplitメソッドを使って空白の所で文字列を分割してリストに代入します。
その部分のコードです。

#文字列を分割してリストarrayに格納
array='one two three four five'.split(' ')

手順2では、リストarrayに分割して文字列がそれぞれ格納したことをprint文で確認します。

array='one two three four five'.split(' ')

#リストarrayをそのまま出力
print(array)

その出力結果です。

手順3では、リストarrayに格納されたことが確認できたので、arrayをループで出力します。そのコードと出力結果です。

array='one two three four five'.split(' ')
print(array)

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

このループの所を内包表記で記述したコードです。先ほどのシンプルなループのコードと比較すると、内包表記が分かりやすくなります。

array='one two three four five'.split(' ')
print(array)

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

#内包表記でリストを出力する
print('--- 内包表記 ---')
[print(num) for num in array]

求められる出力に対して冗長な箇所はコメントアウトします。
Pythonの複数行のコメントアウトは「’」3つの「”’」か「”」3つの「”””」を使います。

array='one two three four five'.split(' ')

'''
print(array)

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

#内包表記でリストを出力する
print('--- 内包表記 ---')
'''

[print(num) for num in array]

提出用にスッキリと最小限のコードに致しました。

#文字列を分割してリストarrayに格納
array='one two three four five'.split(' ')

#内包表記でリストを出力する
[print(num) for num in array]

プログラムを実行した出力結果です。


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

この黄色く塗りつぶしたセルの所に二次元配列として取得した文字列が格納された配列を出力します。
空白区切りの文字を分割して配列に格納して、更にループを使って二次元配列にします。

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

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

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

2:splitメソッドを使って文字列を分割して配列arrayに代入する

3:分割した文字列が配列arrayに追加出来たことをログ出力で確認する

4:配列arrayに格納された文字列を二次元配列として追加する配列array2を宣言する

5:ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する

6:スプレッドシートに出力する前に、ログでarray2を出力して確認する

7:array2をスプレッドシートの黄色いセルに出力する

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

const ss = SpreadsheetApp.getActiveSheet();

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

このコードを関数「standardInput3」の中に書いていきます。
Standard Inputで、標準入力の意味です。

function standardInput3() {

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

}

手順2:splitメソッドを使って文字列を分割して配列arrayに代入する

const array=’one two three four five’.split(‘ ‘);

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  
  //splitメソッドを使って文字列を分割して配列arrayに代入する
  array='one two three four five'.split(' ');
  
}

手順3:分割した文字列が配列arrayに追加出来たことをログ出力で確認する

console.log(array);

コードと実行結果です。

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  array='one two three four five'.split(' ');

  //分割した文字列が配列arrayに追加出来たことをログ出力で確認する
  console.log(array);
  
}

手順4:配列arrayに格納された文字列を二次元配列として追加する配列array2を宣言する

let array2=[];

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  array='one two three four five'.split(' ');
  console.log(array);

  //配列arrayに格納された文字列を二次元配列として追加する配列array2を宣言する
  let array2=[];
  
}

手順5:ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  array='one two three four five'.split(' ');
  console.log(array);

  let array2=[];

  //ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }
}

手順6:スプレッドシートに出力する前に、ログでarray2を出力して確認する

console.log(array2);

コードと実行結果です。

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  array='one two three four five'.split(' ');
  console.log(array);

  let array2=[];

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

  //スプレッドシートに出力する前に、ログでarray2を出力して確認する
  console.log(array2);

}

手順7:array2をスプレッドシートの黄色いセルに出力する

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

コードと実行結果です。

function standardInput3() {

  const ss=SpreadsheetApp.getActiveSheet();
  array='one two three four five'.split(' ');
  console.log(array);

  let array2=[];

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

  console.log(array2);

  //array2をスプレッドシートの黄色いセルに出力する
  ss.getRange(2,1,array2.length).setValues(array2);

}


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

恵比寿ガーデンプレイス、フランスのクリスタルメーカー、バカラのシャンデリア

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

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

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

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

■ 関連記事 ■

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

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

【paiza レベルアップ問題集】標準入力その2 「STEP: 2 3 つの文字列の半角スペース区切りでの分割」をPythonとGASで解いたコード紹介

この記事を読むことで、PythonとGASでsplitメソッドを使って文字列を空白部分で分割してリスト(配列)に格納し、ループを使ってリストを出力する方法、Pythonでは通常のループ対応して、内包表記で書く方法の概要も掴めます。
また、GASでは二次元配列として取得、出力する方法の概要が掴めます。

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

GAS(Google Apps Script)はスプレッドシートを使ってコードを書いていおります。

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

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


3 つの文字列の半角スペース区切りでの分割 (paizaランク D 相当)

問題:
文字列He likes paizaを、半角スペースで分割して出力してください。

入力される値
なし

期待する出力
He likes paizaを半角スペースで区切り、区切られた文字列を改行区切りにして 3 行で出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。

He
likes
paiza

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


手順として、

1:リストarrayにsplitメソッドを使って空白で文字を区切って配列に入力

2:配列を確認


3:ループで出力

で、行います。

手順1で、文字列「He likes paiza」にsplitメソッドを使って文字を分割します。
その部分のコードです。

#splitメソッドで分割した文字列をリストarrayに代入
array='He likes paiza'.split(' ')

手順2では、リストarrayに分割して文字列がそれぞれ格納したことをprint文で確認します。

array='He likes paiza'.split(' ')

#リストarrayをそのまま出力
print(array)

その出力結果です。

リストarrayに格納されたことが確認できたので、arrayをループで出力します。
そのコードと出力結果です。
arrayの中の文字をwordに格納してループが終了するまで出力しています。

array='He likes paiza'.split(' ')
print(array)

#リストarrayをループで改行して出力する
for word in array:
    print(word)

このループの所を内包表記で記述したコードです。

array='He likes paiza'.split(' ')
print(array)

#リストarrayをループで改行して出力する
for word in array:
    print(word)

#内包表記で出力する
print('----内包表記----')
[print(word) for word in array]

求められる出力に対して冗長な箇所はコメントアウトします。
複数行のコメントアウトは、「’」を3つの「”’」か、「”」を3つの「”””」を使います。

array='He likes paiza'.split(' ')
'''
print(array)

#リストarrayをループで改行して出力する
for word in array:
    print(word)

#内包表記で出力する
print('----内包表記----')
'''
[print(word) for word in array]

提出用にスッキリとした最小限のコードに致しました。

array='He likes paiza'.split(' ')
[print(word) for word in array]

プログラムを実行した出力結果です。


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

この黄色く塗りつぶしたセルの所に二次元配列として取得した文字列が格納された配列を出力します。
空白区切りの文字を分割して配列に格納して、更にループを使って二次元配列にします。

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

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

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

2:splitメソッドを使って文字列を分割して配列arrayに代入する

3:分割した文字列が配列arrayに追加出来たことをログ出力で確認する

4:配列arrayに格納された文字列を二次元配列として追加する配列array2を宣言する

5:ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する

6:スプレッドシートに出力する前に、ログでarray2を出力して確認する

7:array2をスプレッドシートの黄色いセルに出力する


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

const ss = SpreadsheetApp.getActiveSheet();

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

このコードを関数「standardInput2」の中に書いていきます。
Standard Inputで、「標準入力」の意味です。

function standardInput2() {

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

}

手順2:splitメソッドを使って文字列を分割して配列arrayに代入する

const array=’He likes paiza’.split(‘ ‘)

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();

  //splitメソッドを使って文字列を分割して配列arrayに代入する
  const array='He likes paiza'.split(' ');

}

手順3:分割した文字列が配列arrayに追加出来たことをログ出力で確認する

console.log(array);

コードと実行結果です。

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const array='He likes paiza'.split(' ');


  //分割した文字列が配列arrayに追加出来たことをログ出力で確認する
  console.log(array);

}

手順4:配列arrayに格納された文字列を二次元配列として追加する配列array2を宣言する

let array2=[];

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const array='He likes paiza'.split(' ');
  console.log(array);

 //スプレッドシートに出力する二次元配列array2を宣言
  let array2=[];

}

手順5:ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const array='He likes paiza'.split(' ');
  console.log(array);

  let array2=[];

  //ループを使ってarrayに格納された文字列を二次元配列としてarray2に追加する
   for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }
}

手順6:スプレッドシートに出力する前に、ログでarray2を出力して確認する

console.log(array2);

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const array='He likes paiza'.split(' ');
  console.log(array);

  let array2=[];

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

  //スプレッドシートに出力する前に、ログでarray2を出力して確認する
  console.log(array2);

}

手順7:array2をスプレッドシートの黄色いセルに出力する

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

function standardInput2() {

  const ss=SpreadsheetApp.getActiveSheet();
  const array='He likes paiza'.split(' ');
  console.log(array);

  let array2=[];

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

  console.log(array2);

  //array2をスプレッドシートの黄色いセルに出力する
  ss.getRange(2,1,array2.length).setValues(array2);

}

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


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

お台場の観覧車です。
扇風機みたいですね(笑)

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

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

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

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

■ 関連記事 ■

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

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