)

NomoLog

Log of my life and program

俺的Python気になった所まとめ1

Posted in Python Tagged as Python

Python Tutoria(2.7)を終えて個人的に気になった、つまったところまとめ。

Pythonという言葉

ニシキヘビを英語でPythonというらしい。知らなかった。

2系と3系

3系は後方互換を持っていない。2系と少し使用が異なる点がある。

2系は元々Macに入ってる。 3系は

1
brew instal python3

で入れられる。

1
2
pyhton test.py
python3 test.py

でそれぞれ実行

今回は2系を勉強した。

タブとスペース

pythonではブロックの区切りにかっこでなくインデントを使うため、タブとスペースが混じると IndentationErrorになってしまう。エディタでオートインデントをオンにして、オートインデントではタブ、手動インデントではスペースみたいな状況になってると悲惨なことになるので注意。

フォーマット指定

input(“input something %d: ” % i)

for文

for i in object の形式のみ

range関数と組み合わせて使う事が多い

1
2
3
for i in range(len(a)):
  print i, a[i]
...

また、for, whileループはelse節を持つことができる。

1
2
3
4
5
6
7
8
for n in range(2,10):
  for x in range(2,n):
      if n % x == 0:
          print n, 'equals', x, '*', n/x
          break
  else:
    #因数が見つからずにループが終了
      print n, 'is a prime number'

ループが終了した時にelse節を実行する。breakした時は実行されない。

pass文

pass文はなにもしない。処理をからっぽの関数とかクラスとかを書く必要があるときに使う

タプル

タプルは値を変更できないリスト

関数の引数のデフォルト値

関数の引数にデフォルト値を設定できる。

1
2
3
4
5
6
7
8
9
10
11
idef ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
while True:
  ok = raw_input(prompt)
  if ok in ('y', 'ye', 'yes'):
    return True
  if ok in ('n', 'no', 'nop', 'nope'):
    return False
  retries = retries - 1
  if retries < 0:
    raise IOError('refusenik user')
  print complaint

注意する点は、リストや辞書のような変更可能なオブジェクトの時に影響が出ること。

1
2
3
4
5
6
def f(a, L=[]):
  L.append(a)
  return L
print f(1)
print f(2)
print f(3)

実行結果

1
2
3
[1]
[1, 2]
[1, 2, 3]

` (グレーブアクセント)

名前初めて知った。数字型の変数に対して使うとString型に変換してくれるっぽい。 ググったけど使い方が見つからなかった。そもそも記号はググりにくい。

1
2
3
4
num = 10
str = "10"
print num + int(str)
print `num` + str

実行結果

1
2
20
1010

リストをキューとして扱う

標準のリストでも実現できるけど、collections.dequeを使ったほうがいいらしい。

1
2
3
4
5
6
from collecitons import deque
queue = deque(["Eric", "john", "Michel"])
queue.append("Terry")
queur.append("Graham")
queue.popleft() -> "Eric"
queue.popleft() -> "John"

累乗

**を使う

1
2
2**3
> 8

末尾のカンマ

要素をひとつ持つタプルを表現しているらしい

1
2
singleton = "hello",
> ("hello",)

ちょっと長くなるので記事を区切る。

俺的Python気になった所まとめ2

Comments