週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

パングラムであるかどうかを確かめる。[Python 3.0]


 

f:id:aisakakun:20160219231019j:plain

What is Pangram???

 

パングラムって何? って思いますよね。

少なくとも私は思いました。

 

パングラムとは...

アルファベットなど、その言語の全ての文字を使って意味のある文章となっているもののことをいう 

 そうです。 言葉遊びらしいです。 なぜこんなことをしたのか。。

と思って調べてみると、日本でもそれありました。

誰もが知っている。

いろは歌

あれ、「ん」以外のひらがな全てを使って意味のある文章を作り上げたもの

なんですよね。すごい。

詳しくは、このサイトにて..

パングラムのお話::: DendoRocK KakaLIA ::: Column ::: ネタ帳 :::

 

ということはさておき、

今回の入力は、こんか感じ。

text =  "The quick brown fox jumps over the lazy dog."

これアルファベット全て入っているんですよね。

これらのテキストを文字列とみなして、アルファベットの文字列すべてがこの文字列中に含まれるかどうかを調べないといけない。

まず、大文字と小文字どちらかに統一しなければならない。

そう考えて書いたものがこちらです。

 

今回は一発でシンプルに書くことができました。

.uppercase()

 で( ) 内の文字列をすべて大文字にします。(小文字の場合はlowercase)

そして、アルファベットは"string"モジュールのasciiのuppercaseをもってくるだけでアルファベットは用意できます。

そして、アルファベット一文字ずつがtextに含まれているかどうかのTrue or Falseを判定し、すべてでTrueと判定されれば、Trueが出力される

all( )

 を用います。部分的にTrueならばTrueと出力したい場合はany( ) です。

という考え方でいけば、上記のプログラムが実装できると思います。

 

ついでに、、

10進数を2進数にして"1"の数を数える方法 

def checkio(number):

    return str(bin(number)).count("1")

bin()が2進数に変えるやつ。count()は一致文字数を出力するやつ。

 

 

 

Pythonはじめるならまずはこれ!

 

Pythonスタートブック

Pythonスタートブック