0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonのインストールと基本文法

Last updated at Posted at 2020-08-27

概要

PythonのインストールとPythonの公式チュートリアルで学習したことをまとめました。

開発環境

  • OS:MacOS Mojave 10.14.6
  • Python 3.8.5

インストール

1.pyenvのインストール

git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

2.pyenvの利用方法とpythonのインストール

pyenvでインストール可能なPythonのバージョンを確認します。

pyenv install --list

インストール可能なバージョンのPythonをインストールします。

pyenv install 3.8.5

使いたいPythonのバージョンに切り替えます。

pyenv local 3.8.5
pyenv global 3.8.5

問題(下記のリンク参照)

  1. zshでpyenvが起動しない

    https://qiita.com/hidekingerz/items/e2b662dfbeeb691999de

  2. MacOSのpyenvでpyexpatのエラーが出る対処

    https://www.nozograph.com/2019/11/29/macos%E3%81%AEpyenv%E3%81%A7pyexpat%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%82%8B%E5%AF%BE%E5%87%A6/

文法

数値

print(1 + 1)
print(2 - 0.1)
print(4 * 2)
print(5 / 2)

# 出力
# 2
# 1.9
# 8
# 2.5

文字列

文字列は インデックス (添字) を指定して文字を取得できます。最初の文字のインデックスは 0 になります。インデックスには負の値も指定できます。また部分文字列も取得できます。

word = 'Python'
print(word[0])
print(word[5])
print(word[-1]) # インデックスに負の値
print(word[0:2]) # 部分文字列

# 出力
# 'P'
# 'n'
# 'n'
# 'Py'

Python の文字列は変更できません。従って文字列でインデックスを指定して代入するとエラーが発生します。

word = 'Python'
word[2] = 'T'

# 出力
# TypeError: 'str' object does not support item assignment

埋め込み文字列

a = "aaa"
print(f"私は{aaa}です"

リスト

リストには異なる型の要素を入れることができます。

list = [1, 'test', {"1":"test"}]

リストは連結などもサポートしています。

squares = [1, 4, 9, 16, 25]
print(squares + [36, 49, 64, 81, 100])

# 出力
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

if文

list = [1,2,3,4,5,6]
key1 = 10
key2 = 4

if key1 in list:
    print(key1)
elif key2 in list:
    print(key2)
else:
    print('見つかりませんでした。')

# 出力
# 4

for文

Listや文字列を順番に繰り返し処理をします。

word = 'Python'
for num in word:
    print(num)

# 出力
# P
# y
# t
# h
# o
# n

range関数

for i in range(5):
    print(i)

# 出力
# 0
# 1
# 2
# 3
# 4

関数

def test(a,b):
    return a+b
    
print(test(1,3))

# 出力
# 4

無名関数

一度しか使わない関数のことです。キーワードlambdaをつけることで使うことができます。

print((lambda a,b: a+b)(1,3))

# 出力
# 4

内包表記

for文を用いてListの全要素に処理をすることができます。
またif文を用いて抽出するリストを絞ることができます。

nums = [1,2,3,4,5]
nums_after = [i * 3 for i in nums if i != 2]
for num in nums_after:
    print(num)

# 出力
# 3
# 9
# 12
# 15

# ちなみにC#のLINQだと以下のようになります。
# var nums = new List<int>(){1,2,3,4,5};
# var nums_after = nums.Where(x => x != 3).Select(x => x * 3);

その他のデータ構造

辞書

dic = {'one':'test1','two':'test2'}

## keyメソッドを用いたfor文
for key in dic.keys():
    # dicのキーを取り出す
    print(key)

# 出力
# one
# two


## valueメソッドを用いたfor文
for value in dic.values():
    # dicの価を取り出す
    print(value)

# 出力
# test1
# test2


## itemメソッドを用いたfor文
for key,value in dic.items():
    # dicの値を取り出す
    print(key,value)

# 出力
# one test1
# two test2

タプル

Listに似ていますが一度代入したら変更できないこととListより要素のアクセスが早い点が特徴です。

str_tuple = (1, 2, 3, 4)

集合

Listに似ていますがListと違い順番がないことと重複は無視されるのが特徴です。また和集合や積集合ができます。

str_set = {'red', 'red', 'blue', 'green', 'yellow', 'green'}

str_set2 = set('abcdefg')
str_set3 = set('acg')
print(str_set)
print(str_set2 | str_set3)
print(str_set2 & str_set3)
print(str_set2 - str_set3)

# 出力
# {'blue', 'red', 'yellow', 'green'}
# {'g', 'b', 'e', 'f', 'a', 'd', 'c'}
# {'a', 'g', 'c'}
# {'d', 'b', 'e', 'f'}
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?