Pythonで処理を途中で抜ける

Pythonで処理を途中で抜けるのには、いくつかの方法がある。
現時点でよく使う「continue」、「break」、「exit」の違いについて整理しておく。

  • for文の処理で次に移る(continue)

for文で順次処理をしている際に、現在の変数の処理を終わらせ、次の変数の処理に移りたいときに「continue」を使用する。

参考元サイトのコードが分かりやすかったのでそのまま引用すると

for x in range(5):
    if x == 3:
        continue
    print(x)

上記のコードがあった場合、以下のような出力となる。

0
1
2
4

「x == 3」の処理が途中で終わり、次の変数の処理に移っている。

 

  • for文の以降の処理を終わらせる(break)

for文で順次処理をしている際に、以降の処理をすべて終わらせたいときに「break」を使用する。

参考元サイトのコードが分かりやすかったのでそのまま引用すると

for x in range(5):
    if x == 3:
        break
    print(x)

上記のコードがあった場合、以下のような出力となる。

0
1
2

「x == 3」以降の処理がすべて終わっている。

 

  • その処理を終わらせる(exit)

その処理(まだ活用していないが関数単位か?)終わらせたいときに「exit」を使用する。
戻り値を返したりすることもできそうだが、それは改めて調べて追記する。

exit()

 

参考にしたサイト

Pythonでfor文の書き方

Pythonでfor文を書くときに、「range関数」を利用して回数指定をすることが出来る。
この回数指定で混乱しやすいため、整理しておく。

 

  • 値を 1 つだけ(繰り返し回数のみを)指定する場合

for i in range(5):
print (i)

上記の様に指定すると、「5 回処理が実施」される。
詳細に説明すると、

・変数 i の初期値を「0」として、
・値を「1」ずつ増加させながら、
・「5」未満の時に処理が繰り返される。

実行結果は以下のようになる。

0
1
2
3
4

 

  • 値を 2 つ(初期値と繰り返し回数のみを)指定する場合

for i in range(1, 5):
print (i)

上記の様に指定すると、「4 回処理が実施」される。
厳密に言うと、

・変数 i の初期値を「1」として、
・値を「1」ずつ増加させながら、
・「5」未満の時に処理が繰り返される。

実行結果は以下のようになる。

1
2
3
4

 

  • 値を 3 つ(初期値, 繰り返し回数, 増加分を)指定する場合

for i in range(1, 5, 2):
print (i)

上記の様に指定すると、「2 回処理が実施」される。
厳密に言うと、

・変数 i の初期値を「1」として、
・値を「2」ずつ増加させながら、
・「5」未満の時に処理が繰り返される。

実行結果は以下のようになる。

1
3

 

Pythonで文字を置換する

Pythonで文字列を置換するには、「replace()」を使用する。

 

以下の文字列が設定されているとする。

str = 'aaa bbb ccc'

ここで「a」を「A」に置き換える場合は、以下のように指定する。

print(str.replace('a', 'A'))

出力結果は以下の様になる。

AAA bbb ccc

 

なお、複数の置換を行いたい場合は、「replace()」を連続して使用する。
前段と同じ様に以下の文字列が設定されているとする。

str = 'aaa bbb ccc'

ここで「a」を「A」に、「b」を「B」に、「c」を「C」に置き換える場合は、以下のように指定する。

print(str.replace('a', 'A').replace('b', 'B').replace('c', 'C'))

出力結果は以下の様になる。

AAA BBB CCC

 

 

Pythonでスペース区切り文字を処理する方法

paizaのスキルチェックの「Cランク」の問題を解き始めて戸惑ったのが、
スペース区切りの標準入力を処理する方法です。

 

例えば、スペース区切りの2つの文字列を受け取る場合を考えてみます。(paizaの問題によくあるパターン)

 

結論を先に書いてしまうと、以下のように指定します。

n, m = list(map(int,input().split()))

順番に説明していきます。
ここで「3 5」と入力されたとします。(「3」と「5」の間はスペース区切り)

  1. 「input()」で標準入力から受け取る(文字列の「3 5」)
  2. 「split()」で文字列を分割する(文字の「3」と「5」)
  3. 「map()」で文字列型から「int」型に変換する(数字の「3」と「5」)
  4. 「list()」で配列にする(配列の0番目が数字の「3」、1番目が数字の「5」)
  5. 変数「n」に配列の0番目である数字の「3」が入る
  6. 変数「m」に配列の1番目である数字の「5」が入る

こんな感じで処理がされ、変数に数値が入っていきます。

Python で標準入力の受け取り方、出力の仕方、データ型変換の仕方

paizaの「プログラミングスキルチェック」では、まずDランクの問題からになります。

 

ここで実施するのは

  1. 標準入力(キーボードからの入力)を受け取って
  2. それに対して簡単な処理をして
  3. 出力をする

という流れです。

 

ここで最初に躓きがちな「1」と「3」については、もうフォーマットに記載されています。

 

標準入力(キーボードからの入力)を受け取るには、以下のように指定します。
「input()」で受け取って、それを「input_line」という変数に入れてます。

 input_line = input()

 

出力するは、以下の通り。

print("XXXXXX")

 

流石にこれだけだと内容が無さ過ぎるので、一つだけ初心者が迷いそうなデータ型変換について書いておきます。

 input_line = input()

で標準入力から受け取ると、それは「文字列」として受け取ることになります。
例えば「3」という入力があったとしても、それは数字の「3」ではなく、文字列としての「3」なので、そのまま数値計算はできません。
そんな時に必要になるのが、データ型変換です。Pythonでは整数型として「int」が用意されていますが、その整数型に変換するには、以下のように指定します。

 input_line = int(input())

「input()」で標準入力を受け取ったものを、「int(整数)型」に変換し、「input_line」変数に代入しています。
これで入力された値に対して、算術計算ができます。

 

paiza.jp

paizaのプログラミングスキルチェック始めました

paiza で提供してくれている「プログラミングスキルチェック」を最近始めました。
そこで問題を解きながら、自分なりに学んだことをメモしていきます。

 

まずは自分用のメモという位置づけですが、同じような勉強をしている方にとっても有意義な内容になっていくといいな~と思っています。
但し、paizaが提供してくれている問題の直接的なヒントとかは書いちゃダメな様なので、そこは気を付けていこうと思います。(違反してたら優しく指摘して頂けると嬉しいです)

 

まずこのスキルチェックのページですが、レベルに応じて多くの問題が用意されていて素晴らしいですね。
そして問題が解けると、あなたの適正年収はこれ位ですって出してくれるのもちょっとテンション上がりますね。最近仕事でイライラしたことがあったので、これが精神安定剤になったところがちょっとありました。

 

ちなみに私のプログラミングスキルレベルは、初心者レベルです。
仕事はプログラマーではなく、インフラ屋(主にLinux系)なので、 bash で簡単なスクリプトを作ることはしてきていますが、ガッツリとプログラミングしたりといった経験はほぼありません。
次回以降、そんな私が学んだことを少しずつまとめていきます。

 

paiza.jp