Python Day6 any()

anyは、渡されたイテラブルの要素の中で、いずれかが真(True)なら、Trueを返す。

イテラブルの要素が空ならばFalseを返す。

下のコードはリファレンスにあるもの。

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

elemntにTrueとなる要素がある時点で、returnしていることが分かる。最後までfor文を回していない。

list_ = [1, '2', "a"]
print(any(list_))

True

list_ = [0, 0, ""]
print(any(list_))

False

list_ = [0, 1, ""]
print(any(list_))

True

以上!

any()

Python Day5 len()

オブジェクトの長さを返す。つまり要素の数。  

例えば、listだと、  

numbers = [1, 2]
print(lne(numbers))

2

となる。  

他のデータ構造では、  

numbers = (1, 2, 4)
print(lne(numbers))

3

numbers = {1, 2, 4} #集合表記
print(lne(numbers))

3

numbers = {"a": 1, "b": 2, "c": 4}
print(lne(numbers))

3

words = "hello"
print(len(word))

5

文字列にも、len()を使える。

以上!

len()

 

Python Day4 bool()

ブール値であるTrueかFalseを返す。

“str”型は、文字列が”False”でもTrueを返す。空” “で無ければTrue.

print(bool('True'))
print(bool('False'))
print(bool('abcdefg'))

すべてTrue

print(bool(''))

False

数値型において”0″ではないものはすべてTrueになる。

print(bool(1))
print(bool(2))
print(bool(100000000))
print(bool(-10000))

全て True

print(bool(0))
print(bool(0.0))
print(bool(0.0000000))
print(bool(0j))

全てFalse

list、dict、tupleにおいて空でないならTrue。

print(bool([1]))
print(bool({a: 1}))
print(bool((1, 3)))

True

print(bool([]))
print(bool({}))
print(bool(()))

False

以上!

bool()

Python Day3 sum()

sum関数は、与えられた要素を合計する関数。

numbers = [1, 2, 3, 4, 5]
print(sum(numbers))

15

タプルや、ジェネレータ式を渡しても良い。

numbers = (i for i in range(1, 10))
print(sum(numbers))

45

a_tuple =(1, 3)
print(sum(a_tuple))

4

開始の値を第二引数に与えることもできる。

numbers = [1, 2, 3, 4, 5]
print(sum(numbers, 10))

25 #これは、10 + 15になったため。

リストの連結もできる。

numbers = [[1], [2]]
print(sum(numbers, []))

[1, 2]

sumはオブジェクト同士の足し算をしているため、このようなことができる。

例えば、リスト同士を足し算すると、

num1 = [1]
num2 = [2]
print(num1 + num1)

[1, 2]

のようになる。

ちなみに文字列の合計?のようにするには、””.join()を使う。

words = ["h", "e", "l", "l", "o"]
print("".join(words))

hello

以上!

sum()

Python Day2 max(), min()

maxとmin関数について、渡した値やリストやタプルなどの中から、最大値と最小値を取得できる。

print(max(1, 2))

2

print(min(1, 2))
1

複数渡すと複数の中から選ばれる。

print(max(1, 2, 10, 100))

100

リスト渡すこともできる。

numbers = [1, 2, 3, 2, 100, 13]

print(max(numbers))

100

文字列を渡すと・・・

print(max("Z", "U", "A"))

Z

文字の場合はアルファベット順になるため、最大値は”Z”になる。

key引数

max()やmin()には、キーワード引数として、keyを渡すことができる。

順序づけの関数を指定できる。

例えば、

def _key(n):
    return int(n)

_list = [1, 2, 3, "2", "111"]

print(max(_list, key=_key))
print(min(_list, key=_key))

111
1

このように、数値と文字列が混ざっているリストから、maxやminを取得することができるようになる。

リストの中の要素は_key関数のnに渡して、int型になる。リストの要素をすべてint型に変換してから、maxとminを求めている。

lambda式も使える。こちらのほうがスマート。

_list = [1, 2, 3, "2", "111"]

print(max(_list, key=lambda n: int(n)))
print(min(_list, key=lambda n: int(n)))

111
1

以上!

Python Day1 print()

Day1 print()

最初はやはりHelloWorldから。

print("HelloWorld")

HelloWorld

print()に文字列”Helloworld”を書くだけ。

変数を使って表現すると、

word = "HelloWorld"
print(word)

になる。

print()の中で”f”文字列フォーマットを使うと、

word = "HelloWorld"
print(f"{word} Python")

HelloWorld Python

こんなかんじ。

数字の場合は、

print(1)

1

こう。クオートで囲む必要がない。

print(1*10)

10

四則演算もできちゃう。

f文字列の中で計算もできる。

print(f"5*10 = {5*10}")

5*10 = 50

.formatよりも見やすく、わかりやすい気がする。

比較してみる。

print(f"5*10 = {5*10}")
print("5*10 = {}".format(5*10))

5*10 = 50
5*10 = 50

うん。直観的で分かりやすい。

リストも表示できる。

numbers = [1, 2, 3]
print(numbers)

[1, 2, 3]

リストのアンパック表示も以下のように可能。

numbers = [1, 2, 3]
print(*numbers)

1 2 3

デフォルトで改行してくれる。

print("a")
print("b")

a
b

以下のようにすることで、改行しないこともできる。

print("a", end="")
print("b", end="")

ab

以上!

Safari Books Online 感想・レビュー

https://www.safaribooksonline.com/home/

 

・・・すごすぎる!

オライリー社の本が全部読める!

他の会社の本も読める!

動画で学習もできる!

 

これで月4000円は,安いといえるかもしれない.プログラミングや技術,ハードウェア,メイキングを体系的に学ぶことができるサイトは貴重かもしれない.日本語では,このようなサイトが存在しないし,利用者が少ない(主観)と思えるため,作っても儲からないだろう.

英語で学ぶことは大変であるが,日本語以上の情報量と丁寧さ,わかりやすさは英語のほうが勝っているとおもう.手とり足取り以上にサポートしてくれる.初学者,独学者,身近に教えてくれる人がいない人にとっては神様のような存在かもしれない.

月4000円をどう考えるかはその人次第.

 

ただ,オライリー本がpdf形式やepub形式で利用できなくなったのは悲しいことだと思う.pdfに書き込んだり,持ち運びが不自由になったのか不便だ.

無料で本をダウンロードして利用する人がいることは課題であるし,人の良心に期待することは難しい.NetflixやHulu,kindleUnlimitedのように月額で利用し放題のサービスはこれからどんどん増えるであろう.

 

10日間の無料トライアルがあるので,利用登録すればお金をかけずに利用できる.一回試してみるのも良いかもしれない.