1. TakesxiSximada

    No comment

    TakesxiSximada
Changes in body
Source | HTML | Preview
@@ -1,345 +1,345 @@
# インストール
https://www.python.org/downloads/ にインストーラがあるのでそれを使ってインストールします。
現在(2015/11/15)の最新はPython3.5です。
Windows環境の方は環境変数を設定してください。
この辺が参考になるかも。
http://www.pythonweb.jp/install/setup/index1.html
# Pythonについて
## Pythonの実行
```
$ python
Python 3.5.0 (default, Nov 15 2015, 16:08:58)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
## スクリプトの書き方と実行方法
### とりあえず書いて実行する
書いて...
```py:test.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
def main():
print('GOGO')
if __name__ == '__main__':
main()
```
実行...
```py:test.py
$ python test.py
GOGO
```
### 一行ずつ解説
```py:test.py
#! /usr/bin/env python
```
シェバングです。 (Unix系のお約束ごと (Pythonの文脈じゃ無いので気になる方はこっちを読んでね http://cpplover.blogspot.jp/2013/08/shebang.html))
```py:test.py
# -*- coding: utf-8 -*-
```
文字コード指定です。 (これが無いと日本語コメント書くときに死ねるケースがある)
```py:test.py
def main():
```
関数定義です。
```py:test.py
print('GOGO')
```
組み込み関数の一つprint関数を呼び出しです。 'GOGO' は文字列を引数で渡しています。
```py:test.py
if __name__ == '__main__':
```
スクリプトとしてそのファイルを実行した場合は `__name__` という変数に `__main__` という文字列が入っています。
そのためスクリプトとして実行されたときにはこの条件はTrueになるので、この中のブロックが実質てきなエントリーポイントになります。
import文でimportされた場合は `__name__` にはそのモジュール名が入っているのでこのブロックは実行されません。
```py:test.py
main()
```
関数呼び出しです。
## 主な型
### type() - 型を調べる
組み込み関数のtype()でobjectの型を調べることができます。
```py
>>> type(1)
-<type 'int'>
->>> type('test')
-<type 'str'>
+<class 'int'>
+>>> type('1')
+<class 'str'>
>>> type([1, 2, 3])
-<type 'list'>
+<class 'list'>
>>> type({'first': 1, 'second': 2})
-<type 'dict'>
+<class 'dict'>
```
### int - 整数
整数です。
```
>>> 3 + 2 # 足し算
5
>>> 3 - 2 # 引き算
1
>>> 3 * 2 # 掛け算
6
>>> 3 / 2 # 割り算 (Python2とPython3で挙動が違うので注意)
1.5
>>> 3 // 2 # 割り算(少数切り捨て)
1
>>> 3 % 2 # 剰余
1
>>> 3 ** 2 # 冪乗
9
```
### str - 文字列
```
>>> 'Hello World '.strip() # 前後の空白文字/改行文字を消し去る
'Hello World'
>>> 'Hello World '.split() # 分割
['Hello', 'World']
>>> 'Hello World '.lstrip('H') # 左H文字を消し去る
'ello World '
>>> 'Hello' + 'World' # 結合
'HelloWorld'
>>> '{0} {1}'.format('Hello', 'World') # 文字列フォーマット
'Hello World'
>>> '{word1} {word2}'.format(word1='Hello', word2='World') # 文字列フォーマットその2
'Hello World'
```
### list - リスト
```
>>> [1, 2, 3] # リストを作成
[1, 2, 3]
>>> [1, 2, 3] + [4, 5, 6] # 結合
[1, 2, 3, 4, 5, 6]
>>> 1 in [1, 2, 3] # 含まれているかを検証 (含まれているケース)
True
>>> 5 in [1, 2, 3] # 含まれているかを検証 (含まれていないケース)
False
```
追加
```
>>> nums = [1, 2, 3]
>>> nums
[1, 2, 3]
>>> nums.append(4)
>>> nums
[1, 2, 3, 4]
```
除去
```
>>> nums = [1, 2, 3, 1]
>>> nums.remove(1)
```
### dict - 辞書
```
>>> name_num = {'sximada': 1}
>>> name_num['sximada']
1
>>> name_num.keys()
dict_keys(['sximada'])
>>> name_num.items()
dict_items([('sximada', 1)])
>>> name_num['nothing']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nothing'
```
## 制御構文
### if
if に続く条件がTrueのときにifの中のブロックを実行します。
```
if True:
pass # 通る
if False:
pass # 通らない
if True:
pass # 通る
elif True:
pass # 通らない
else:
pass # 通ら無い
if False:
pass # 通らない
elif True:
pass # 通る
else:
pass # 通らない
if False:
pass # 通らない
elif False:
pass # 通らない
else:
pass # 通る
```
### for in
リストなどの反復可能なobjectから要素を一つづつ取り出しながらループします。
要素が終了したら抜けます。
```
for ii in [1, 2, 3]:
pass
```
### while
while に続く条件がFalseになるまでループします。
```
while True:
pass # 無限ループ
```
whileもelseが使えます。ループがbreakで停止させられた場合は通らず、breakで停止させられなかった場合に通ります。
```
ii = 0
while ii < 3
ii += 1
else:
pass # 通る
ii = 0
while ii < 3
break
else:
pass # 通らない
```
### try
例外処理です。except句で例外を刈り取ります。例外が発生し無い場合はexcept句の中のブロックには入りません。
```
try:
raise ValueError('orz')
except ValueError as err:
pass # ValueErrorかそのサブクラスの例外がraiseされた場合に通る
except:
pass # それまでのexcept句で刈り取られなかった例外がある場合に通る (例えばこのケースではValueErrorの場合は通ら無いがIndexErrorの場合は通る)
else:
pass # 例外がraiseされなかった時に通る
finally:
pass # 必ず通る
```
### fizzbuzz
```
for ii in range(1,101):
if ii % 15 == 0:
print('FizzBuzz')
elif ii % 5 == 0:
print('Buzz')
elif ii % 3 == 0:
print('Fizz')
else:
print(ii)
```
## 標準モジュール
import文を使うことで標準モジュールを使うことができます。
```
>>> import re
```
- re 正規表現
- sys 実行しているPythonの情報などの取得や操作など
- os 実行しているOSなどの環境の情報の取得や操作など
他にもいっぱいあります。
http://docs.python.jp/2/library/index.html
## 仮装環境 (pyvenv/virtualenv)
```
$ pyvenv-3.5 env
$ source env/bin/activate # 作成した環境を使う
(env) $
(env) $ deactivate # 作成した環境から離脱する
$
$ source env/bin/activate
(env) $
```
ここはWindows環境だとやり方が違います。ハマったら周りの人に聞いてみてください。
```
shimizukawa [11:42 AM]
> $ pyvenv-3.5 env
Windowsの場合、PATH通してもだめなんだよね。
python3.5 -m venv env
ならどの環境でも行ける(講師用のアンチョコとして)
​[11:43]
pipも同様。
​[11:43]
Windowsは3,4割か。はまりそうだな..
```
## サードパーティパッケージを使う
pipコマンドでサードパーティパッケージをinstallすることができます。
```
(env) $ pip install requests
```
サードパーティライブラリはここから探せます。
https://pypi.python.org/pypi