paiza レベルアップ問題集 「STEP: 2 ある数字までの出力 2」 をPythonとGASの両方で解いてみた

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

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

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

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

ある数字までの出力 2 (paizaランク D 相当)

この問題では、1から指定の数Nまでを出力します。
指定の数は、任意の数が入力されます。

今回はpaiza.ioを使って解きます。
この記事では、paiza.ioの使い方を図を用いて解説しております。

まず、Pythonで解いてみます。
この例では言語を「Python3」に選択してあります。

■ Pythonでの解き方 ■

この画面の左下の「入力」の下に「5」など任意の数を入力します。

コードを書いていきます。

動作が確認できたので、paiza問題集の提出用コード入力の所に、コピペして提出します。

正解しました。

ここから解き方を見ていきます。

手順として、

1.N=int(input())で標準入力を読み込み

2.for文でrange(1,N+1)を設定

3.print文で表示

となります。
コードを詳しく見てみましょう。

手順1でN+1となっているのは、rangeでは(1,N+1)と指定した場合、(1,N+1)未満、すなわち(1からNまで)となるからです。

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

N=int(input())
for i in range(1,N+1):
    print(i)

■ GASでの解き方 ■

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

この黄色いセルに1からNまで表示します。
Nは灰色のセルの横に入力しています。
スプレッドシートに表示する場合は、二次元配列を作成します。

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

1:配列arrayを定義する

2:スプレッドシートからアクティブシートをアクセスする

3:NをセルB2から読み込む

4:ループで1からNまでの数をarray.push[i]で付け加える。
(array.push(i)だと1次元配列になり、二次元配列のスプレッドシートには読み込めないため。)

5:ログに表示

6:スプレッドシートに表示する。セルB3からN行分なので、getRange(3,2,N)でセルB3からN行確保してそこに配列を流し込むイメージ

実行結果です。

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

function loop2(){

let array=[];
ss=SpreadsheetApp.getActiveSheet();
N=ss.getRange(1,2,1).getValue();

for(let i=1;i<=N;i++){
  array.push([i]);
}

console.log(array);
ss.getRange(3,2,N).setValues(array);

}

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

おまけですが、Nの値を例えば28にすると、こうなります。
これはスプレッドシートのB1の値を変更しただけです。

お疲れ様でした。

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

千葉県房総半島、外房御宿の水平線

■ 参考文献 ■

じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。

初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。

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

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

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

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

paiza レベルアップ問題集 「STEP: 1 ある数字までの出力 1」 をPythonとGASの両方で解いてみた

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

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

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

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

ある数字までの出力 1 (paizaランク D 相当)

この問題では、1から10までの数を出力します。

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

<<Pythonでの解き方>>

手順として、
1.for文でrange(1,11)を設定し、変数num(別にnumじゃなくてもiでもjでもなん  でもOK)に1から11未満(つまり10)を代入
2.print文でnumを表示

コードを見てみましょう。

手順1で11となっているのは、rangeでは(1,11)と指定した場合、(1,11未満)となるからです。

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

for num in range(1,11):
    print(num)

<<GASでの解き方>>

では、同じ問題をGASで解いてみます。

まず、スプレッドシートにこの様に配置しました。

この黄色いセルに1から10まで表示します。
スプレッドシートに表示する場合は、二次元配列を作成します。

手順はこのようになります。
1:配列arrayを定義する
2:スプレッドシートからアクティブシートをアクセスする
3:ループで1から10までの数をarray.push[i]で付け加える。
(array.push(i)だと1次元配列になり、二次元配列のスプレッドシートには読み込めないため。)
4:ログに表示
5:スプレッドシートに表示する。getRange(1,1,10)でセルA1から10行確保してそこに配列を流し込むイメージ

実行結果です。

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

function loop1() {

let array=[];
ss=SpreadsheetApp.getActiveSheet();

for(let i=1;i<=10;i++){
  array.push([i]);
  };
 
 console.log(array);
 cell=ss.getRange(1,1,10).setValues(array);

}

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

お疲れ様でした。

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

レゴブロック

■ 参考文献の紹介 ■

じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。

初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。

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

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

←レベルアップ問題集メニューへ戻る               →次の問題へ

paizaレベルアップ問題集をPythonとGASの両方で解いてみた集

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

オンラインコミュニティ「paizaの森」と、Cランク獲得ストーリー(Python3)の「問題集を解く」の順番を参考にして、Aランク、Sランクも獲得出来るよう、今後も記事を加筆して行きます。(令和4年1月22日にBランク取得しました。)
Python・GASのどちらの言語のコードも可能な限り詳細に解説して行きます。

paizaでは、【スキルチェック】のブログ掲載は禁止されていますが、【レベルアップ問題集】のコードの公開、ユーザ同士で教え合うことや研修の教材に利用することは自由としていると書かれていました。
paizaレベルアップ問題集のリンク


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

メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験

自己紹介

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

■ STEINS ;GATE Dランクレベル ■

正則表現のエントリーポイント Python3編

■ 標準入力メニューの1 ■

1 行の入力 Python3編

2 行の入力 Python3編

3 行の入力 Python3編

10 行の入力 Python3編

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

■ 標準入力メニュー2 ■

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

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


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

■ 標準入力メニュー3 ■

1 つの入力 Python3編


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

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

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

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

■ 標準入力メニュー4 ■

1 行の整数の入力 Python3編

2 行の整数の入力 Python3編

5 行の整数の入力 Python3編

100 行の整数の入力 Python3編

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

■ 標準入力メニュー5 ■

1 つの整数の入力 Python3編


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

5 つの整数の半角スペース区切りの入力 Python3編

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

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

■ 標準入力メニュー6 ■

改行区切りでの N 個の整数の入力 Python3編

2 行目で与えられる N 個の整数の入力 Python3編

1 行目で与えられる N 個の整数の入力 Python3編

2 行目で与えられる N 個の整数の入力 (large) Python3編

【N 個の整数の入力】1 行目で与えられる N 個の整数の入力 (large) Python3編

■ 標準入力メニュー7 ■

改行区切りでの N 個の文字列の入力 Python3編

2 行目で与えられる N 個の文字列の入力 Python3編

1 行目で与えられる N 個の文字列の入力 Python3編

※スキルチェックのコードやヒントの掲載は禁止されているので問題のリンクのみ※

Dランク問題一覧のリンク

■ ループメニュー 1の1 ■

ある数字までの出力 1 Python3編

ある数字までの出力 2 Python3編

数字の受け取り 1 Python3編

数字の受け取り 2 Python3編

ある数をある回数表示 1 Python3編

ある数をある回数表示 2 Python3編

FINAL問題 a ~ z までを表示

■ループメニュー1の2 ■

数列の和 Python3編

数列の A 番目から B 番目までの和

数列の値を全部 * 2 して出力 Python3編

FINAL問題 数列同士の引き算 Python3編

■ ループメニュー1の3 ■

数列の反転 Python3編

九九の表示 1 Python3編

九九の表示 2 Python3編

2 の累乗を表示 Python3編

FizzBuzz Python3編

■ ループメニュー1の4 ■ 

数列の最大値 Python3編

数列の最小値 Python3編

数列の何番目にある? Python3編

数列の中に何個ある? Python3編

■ ループメニュー2の1 ■

未知数個の数の受け取り Python3編

未知数個の文字列の受け取り Python3編

奇数だけ出力 Python3編


割り切れる数だけ出力 Python3編

偶奇の判定 Python3編

ループメニュー2の2 ■

各桁の和 Python3編

カウント変数を使った計算 Python3編

2 で何回割れる? Python3編

任意の数で何回割れる? Python3編

10 進数から 2 進数に変換 Python3編

10 進数から M 進数に変換 Python3編

N が M ずつ増えたときにいつ K を越える? Python3編

毎日増加するお金 Python3編

階乗の計算 Python3編

階乗の末尾に 0 はいくつ付く? Python3編

加算された数列の最大値 Python3編

加算された数列の最小値 Python3編

1 はどこにある? Python3編

約数の個数 Python3編

約数の列挙 Python3編

※スキルチェックのコードやヒントの掲載は禁止されているので問題のリンクのみ※

Cランク問題一覧のリンク

※スキルチェックのコードやヒントの掲載は禁止されているので問題のリンクのみ※

Bランク問題一覧のリンク

■ スタックキューメニュー ■

■ スキルチェック見本問題セットのAランク問題 ■
(準備中)

■ スキルチェック過去問題セットのAランク問題 ■
(準備中)

■ STEINS ;GATE Aランクレベル ■



(準備中)

スキルチェック過去問セット



(準備中)

■ スキルチェック見本問題セットのAランク問題 ■
(準備中)

※スキルチェックのコードやヒントの掲載は禁止されているので問題のリンクのみ※

Aランク問題一覧のリンク

※スキルチェックのコードやヒントの掲載は禁止されているので問題のリンクのみ※

Sランク問題一覧のリンク

■ 参考文献の紹介 ■

じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。

初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本でじっくり学べます。

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

メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験

自己紹介

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

Python乱数randrangeでラーメン激戦区のメニューを見てみた。

この記事を読むことによって、Pythonのリストの初歩的な扱いが可能になります。
リストの添字を乱数にして、ラーメンのメニューを求めるプログラムになります。

そこで、山手線沿線で調べてみて、最も美味しそうだと私が思った、南大塚にある創作麺工房 鳴龍 (NAKIRYU) さんのメニューを元にPythonでメニューの配列を作って、インデックスを乱数にしてプログラミングしてみました。

配列menuを以下のように致しました。

menu=[‘坦坦麺’,’麻辣坦坦麺’,’坦坦つけ麺’,’塩ラーメン’,’梅塩ラーメン’,’海老ワンタン’]

細かいようですが、「坦々麺」ではなく、こちらでは「担担麺」のようですね。

配列menuの長さは6です。
なのでインデックスは、0,1,2,3,4,5の6つになりますね。

まぁ、これぐらいなら数えれば良いのですが、めんどくさいので、len(menu)で配列の長さ6を求めました。

乱数は、random.randrange(0,len(menu))で求めています。

これで、(0から5)までのインデックスの乱数を求めています。
つまり、(0から6未満)、すなわち(0,5)の乱数を求められます。

似たようなので、randintというのがありますが、これだと(0,len(menu))となり、(0から6)、0,1,2,3,4,5,6で長さが7となり、余ってしまうのでこのようなエラーが出てしまします。

これは、index=6となり、配列の要素が0から5までしかないのに対して、6が求まってしまったので、範囲を超えているよ、というエラーです。

そこで、エラーを修正して実行しました。

では、コードです。

import random

menu=['坦坦麺','麻辣坦坦麺','坦坦つけ麺','塩ラーメン','梅塩ラーメン','海老ワンタン']
index=random.randrange(0,len(menu))

print('今日は'+menu[index]+'食べよっかな。\n')

良かったらコピペしてアレンジしてみて下さい。
最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何順でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Python で今日の運勢は??randintで星座占い♪

この記事では、星座占いをテーマに、Pythonでの乱数の使い方と、順位によってメッセージをifとelif とelseで分岐して表示する方法を学びます。

私はおうし座ですので、変数seizaのところに「おうし」と入れました。
実行結果です。

さて、コードの説明ですが、import randomで、乱数を発生させています。
これは後に運勢の順位に使います。

num=random.randint(1,12)

で、1から12までの乱数を発生させています。
「へびつかい座」を入れる場合でしたら、random.randint(1,13)になりますね。

似たようなもので、randrangeがありますが、これはrandom.randrange(1,12)だった場合は、12「未満」になります。

あとは演算子。

==とイコール2つで1位だったらの条件指定になります。
=と、一つだけだと代入になりますので。

あとはelif分の<=で何位以下、elseでそれ以外(この場合12位)です。

では、コードです。

import random

seiza="おうし"
num=random.randint(1,12)

print("今日の"+seiza+"座は"+str(num)+"位です!!")

if num==1:
    msg="超超超超超超超・・・おめでとう!!\n"
elif num<=3:
    msg="チョベリグ!\n"
elif num<=9:
    msg="ふつー\n"
elif num<=11:
    msg="チョベリブ!\n"
else:
    msg="がび〜〜〜〜〜〜〜〜〜〜ん\nチョベリバ(涙)"

print(msg)

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

print文の所で「チョベリなんとか・・・」ってありますけれど、かつて「コギャル」と呼ばれた方(多分今頃はアラフォーさん?)が女子高生だった頃に流行った言葉です。

チョベリグ・・・超ベリーグッド
チョベリブ・・・超ベリーブルー
チョベリバ・・・超ベリーバッド

だったかな。懐かしいな。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何順でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介