【要約】現役シリコンバレーエンジニアが教えるPython3 環境設定〜Pythonの基本

terminalでpythonと打つと対話モードになる。

pycharmのインタープリターの指定で/Users/at/opt/anaconda3/bin/pythonを指定する。 おそらくexport -p | grep CONDA_PYTHON_EXEで表示されるpathを指定すればよい。

文字列操作とかprintの使い方。

# typeを入れてやると変数の型を表示できてデバッグしやすい
str = "aaa"
print(str, type(str))

aaa <class 'str'>

# endは最後に挿入する文字(デフォルトだとなにもない)
# sepは文字列の間に挿入する文字(デフォルトだとスペース)
print("aaa", "iiiii", end="\n", sep=",,,,")
print("aaa", "iiiii")

aaa,,,,iiiii
aaa iiiii
# シングルクォートを文字と認識させる。
print('私は\'神\'だ')
print("私は'神'だ")

# 文字列で改行,
print('I am God.\nI don\'t God')

# 改行コードを認識させない。
# パスを書くのに便利
print(r'I am God.\nI don\'t God')

# 1行数の文字列を複数行で書く
a = 'aaaaaaaaaaaaaaaa' \
    'bbbbbbbbbbbbb'
print(a)

t = ('cccccccccccc'
    'ddddddddddd')
print(t)

私は'神'だ
私は'神'だ
I am God.
I don't God
I am God.\nI don\'t God
aaaaaaaaaaaaaaaabbbbbbbbbbbbb
ccccccccccccddddddddddd

int型の変数に文字列を入れることができる。 型もintからstrに変わる。

一応型を明記することはできる

hatena: str = "aaaa"

5 ** 5で5の5乗を計算できる。

import mathで便利な数学の関数が使える。 help(math)でmathの使い方を表示できる。 対話で実行すると良さげ

スライス 範囲指定で文字を抽出 他の言語と同じだけど、たまに範囲指定間違えそう

# スライス
# 一文字目のインデックス:最後のインデックス+1

word = "javascript"

# 一文字から文字抽出
print(word[0:2])
print(word[:2])

# 二番目の文字から3文字抽出
print(word[1:2])

# はじめの一文字以外を取得
print(word[1:])

ja
ja
a
avascript

stringにはメソッドがあり、find,'rfind'で文字の検索ができ、インデックスを返す。 また、文字の一部を大文字にしたりする便利なメソッドがある。

文字の代入

word = 'a {} {} {} {}'.format('i', 'u', 'e', 'o')
print(word)

a i u e o


# 代入する文字に対して、インデックスの最大値が大きいときにエラーが出る
word = 'a {4} {3} {2} {1}'.format('i', 'u', 'e', 'o')
print(word)

Traceback (most recent call last):
  File "/Users/at/PycharmProjects/python_udemy/lesson.py", line 4, in <module>
    word = 'a {4} {3} {2} {1}'.format('i', 'u', 'e', 'o')
IndexError: tuple index out of range

# 代入する順番を指定できる。あんまり使わなそう。
word = 'a {3} {3} {2} {1}'.format('i', 'u', 'e', 'o')
print(word)

a o o e u

word = 'a {one} {two}'.format(one='i', two='u')
print(word)

a i u

新しい文字代入(f-strings) なんかformatより処理が速いらしい。 文字の代入がしやすいのでこっちを使っていきたい。

x = '閣'
y = '寺'
print(f'金 {x} {y}')

金 閣 寺