Python問題集を解いてみよう!!

【Python問題集】No.8 ゾロ目の判定(初級)

Python問題集No.8
URLをコピーする
URLをコピーしました!
目次

問題

入力された数値がゾロ目の場合は「ゾロ目です」、

ゾロ目以外の場合は「ゾロ目ではありません」と表示するプログラムを作成してください。

ただし、入力される数値は 1 から 100 までの整数とします。

入力はinput()関数を使用すること。

本ブログは Colofulbox で運用しています

解答

解答を見る前に、一度ご自身で考え、コードを書いてみることをオススメします。

解説

今回の問題は「ゾロ目」かどうかの判定です。

初級ということで、入力を 1 から 100 までに限定しました。

これで難易度はグンと下がります。

ゾロ目の判定は色々な方法があると思いますが、解答例として2つの方法を掲載しています。

1つ目はin演算子を使う方法。

2つ目は、ゾロ目なので、全桁が同じ数字かどうかをチェックする方法です。

順番に見ていきましょう。

in 演算子

in演算子はA in Bと書くことで B に A が含まれる場合は True、含まれない場合はFalseを返す演算子です。

B には文字列、リスト、辞書などを指定することができます。

文字列

文字列の中に特定の文字が含まれるかどうかを確認したい時にin演算子が使えます。

print('b' in 'abcde')
print('ab' in 'abcde')
print('dc' in 'abcde')

上記の実行結果

True
True
False

リスト

リストの各要素として、数値、文字列、リストなどがあるかどうかを確認したい時にもin演算子が使えます。

sample_list = [
    1,
    'taklog',
    [4, 5, 6]
]

print(1 in sample_list)
print('tak' in sample_list)
print('taklog' in sample_list)
print(4 in sample_list)
print([4, 5, 6] in sample_list)

上記の実行結果

True
False
True
False
True

今回の1つ目の解答はこのリストに対象のゾロ目を全て格納して、in演算子を使っています。

辞書

辞書の中に文字列や数値があるかどうか確認したい時もin演算子が使えます。

ただ、辞書自体を指定すると、辞書のキーが対象になります。

辞書の値を対象にしたい場合は、辞書のvalues()メソッドを使いましょう。

sample_dict = {
    'a':[1, 2, 3],
    'abc':[2, 3, 4]
}

print('b' in sample_dict)
print('abc' in sample_dict)
print([1, 2, 3] in sample_dict.values())

上記の実行結果

False
True
False
True

全桁が同じ数字かどうかをチェックする

もう1つ紹介した方法は、ゾロ目の特性を利用した、全桁が同じ数字かどうかをチェックする方法です。

今回は入力が 1 〜 100 の整数という条件があるので、ゾロ目は全て2桁です。

そのため、

  • 入力された値が2桁かどうか
  • 1文字目と2文字目が同じかどうか

の2点をチェックして、ゾロ目かどうか判定しています。

Python では文字列はインデックスを指定することで各文字を参照できます。

sample_str = 'Taklog'

print(sample_str[0])
print(sample_str[1])
print(sample_str[2])
print(sample_str[3])
print(sample_str[4])
print(sample_str[5])

上記の実行結果

T
a
k
l
o
g

input()関数を使って入力された値は文字列になります。

そのため、解答例2では入力された値の1文字目と2文字目が同じであることをチェックすることで、1桁目と2桁目が同じ数字であることをチェックしています。

Google Colaboratory

本記事に掲載しているコードは Google Colaboratory で動作を確認しています。

下記からアクセスして、ご自身のGoogleドライブにコピーしていただければ、すぐに実行できます。

環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。

おわりに

今回はゾロ目判定の問題をお届けしました。

解答例を2つ掲載しましたが、他にも方法はありますので、簡単に解けた方は違う方法も考えてみてください。

今回は初級編ということで、近いうちに上級編もお届けしたいと考えています。

本ブログでは、今後も具体的な問題・課題の解説記事を増やしていきたいと考えています。

解説して欲しい問題・課題がありましたら、ぜひ、お問い合わせフォームからご連絡ください。

以上です。

スポンサーリンク

Python問題集No.8

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!

コメント

コメントする

目次
閉じる