hex()は渡した数字を16進数に変換してくれる関数。
print(hex(1)) '1' print(hex(10)) '0xa' print(hex(255)) 'oxff'
小数点の場合は、float.hex()を使う
print(float.hex(0.5)) '0x1.0000000000000p-1'
以上
hex()は渡した数字を16進数に変換してくれる関数。
print(hex(1)) '1' print(hex(10)) '0xa' print(hex(255)) 'oxff'
小数点の場合は、float.hex()を使う
print(float.hex(0.5)) '0x1.0000000000000p-1'
以上
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
以上!
オブジェクトの長さを返す。つまり要素の数。
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()を使える。
以上!
ブール値である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
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
以上!
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”になる。
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
最初はやはり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
以上!
#!/usr/bin/env python # -*- coding: utf-8 -*- # Created by devel on 2017/07/27. import math def main(): a = (2 + 2) / (2 * 10) b = (2 + 2) / 2 * 10 print(a) # 0.2 print(b) # 20.0 if __name__ == '__main__': main()
これですごく悩んだ・・・
初歩的なことを忘れないように!
https://www.safaribooksonline.com/home/
・・・すごすぎる!
オライリー社の本が全部読める!
他の会社の本も読める!
動画で学習もできる!
これで月4000円は,安いといえるかもしれない.プログラミングや技術,ハードウェア,メイキングを体系的に学ぶことができるサイトは貴重かもしれない.日本語では,このようなサイトが存在しないし,利用者が少ない(主観)と思えるため,作っても儲からないだろう.
英語で学ぶことは大変であるが,日本語以上の情報量と丁寧さ,わかりやすさは英語のほうが勝っているとおもう.手とり足取り以上にサポートしてくれる.初学者,独学者,身近に教えてくれる人がいない人にとっては神様のような存在かもしれない.
月4000円をどう考えるかはその人次第.
ただ,オライリー本がpdf形式やepub形式で利用できなくなったのは悲しいことだと思う.pdfに書き込んだり,持ち運びが不自由になったのか不便だ.
無料で本をダウンロードして利用する人がいることは課題であるし,人の良心に期待することは難しい.NetflixやHulu,kindleUnlimitedのように月額で利用し放題のサービスはこれからどんどん増えるであろう.
10日間の無料トライアルがあるので,利用登録すればお金をかけずに利用できる.一回試してみるのも良いかもしれない.
一行でFizzBuzz
#!/usr/bin/env python # -*- coding: utf-8 -*- # Created by devel on 2017/04/29. def main(): print(["FizzBuzz : {}".format(i) if i%15==0 else "Fizz : {}".format(i) if i%3==0 else 'Buzz : {}'.format(i) if i%5==0 else i for i in range(1, 100)]) if __name__ == '__main__': main()