Pythonの基礎備忘録

#記事概要
Pythonを少しでも読めるようになってみようと思い、[参考書](#参考文献)に沿って学習した備忘録になります。
Javaと比較して自身が気になった点、便利と感じた点をまとめております。
<strong>※かなり基礎的な内容になります。</strong>

#算術演算子
四則演算（`+-*/`）と余剰計算(%)はJavaと変わりませんが、累乗が便利にできる。
ただし、Pythonの`/`は、割り切れないときに浮動小数値になる。`//`演算子を使うと整数値（浮動小数の場合は小数点以下切捨て）になる。
Pythonでは「`**`」で累乗を行うことができる。
#####例

```java:java
Math.pow(2, 3)
3 / 2
```

```Python:python
2 ** 3
3 // 2
```

#変数
Pythonでは変数を定義する際に<strong>型の定義が不要。</strong>

#####例
```java:java
//文字列
String str = "あいうえお";

//数字
int index = 100;

//リスト
List<String> list = new ArrayList<String>(Arrays.asList("あ", "い", "う", "え", "お"));
```

```Python:python
#文字列
str = "あいうえお"

#数字
index = 100

#リスト
list = ["あ", "い", "う", "え", "お"]
```

#リストの結合
Pythonでは複数のリストを連結する際は、「+」で結合することが出来る。

#####例

```java:java
List<String> list1 = new ArrayList<String>(Arrays.asList("あ", "い", "う", "え", "お"));
List<String> list2 = new ArrayList<String>(Arrays.asList("か", "き", "く", "け", "こ"));

List<String> list3 = new ArrayList<>();
list3 = Stream
            .concat(list1.stream(), list2.stream())
            .collect(Collectors.toList());
```

```python:python
list1 = ["あ", "い", "う", "え", "お"]
list2 = ["か", "き", "く", "け", "こ"]

list3 = list1 + list2
```

#リストを操作する

####要素を削除する

#####例
```java:java
List<String> list = new ArrayList<String>(Arrays.asList("あ", "い", "う", "え", "お"));

//「あ」を削除する
list.remove(0);
```

```python:python
list = ["あ", "い", "う", "え", "お"]

#「あ」を削除する
del list[0]
```

####リストの値を全て合計する

#####例
```java:java
List<int> list = new ArrayList<int>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Arrays.stream(list).sum();
```

```python:python
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum(list)
```

####リストの要素数を調べる
Javaはsizeメソッド
Pythonはlenメソッド
<strong>Javaのlengthメソッドは文字列の長さを返すメソッドなので、混同しないように注意する</strong>

#####例
```java:java
List<int> list = new ArrayList<int>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
list.size()
```

```python:python
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
len(list)
```

####スライス
リストの連続する複数要素を取り出せる。

#####例
```java:java
List<int> list = new ArrayList<int>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
sList = list.subLisy(2, 4)
//sListには[3, 4]が入る
```

```python:python
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sList1 = list[2:4]
#sList1には[3, 4]が入る

sList2 = list[:5]
#sList2には[1, 2, 3, 4, 5]が入る

sList3 = list[7:]
#sList3には[8, 9, 10]が入る
```

#繰り返し（for文）

####リストで繰り返す
<strong>for i in list:
　　繰り返し内容</strong>

#####例
```java:java
List<String> list = new ArrayList<String>(Arrays.asList("あ", "い", "う", "え", "お"));

for(String str : list) {
    println(str);
}

/*
あ
い
う
え
お
*/
```

```python:python
list = ["あ", "い", "う", "え", "お"]

for str in list:
    print(str)

#あ
#い
#う
#え
#お
```

####回数指定して繰り返す
引数によって繰り返す際の条件を指定できる。

<strong>0 から n回 繰り返す場合</strong>
for i in range(n):
　　繰り返し文

<strong>m から n まで繰り返す場合</strong>
for i in range(m, n):
　　繰り返し文

<strong>m から n まで lずつ増やして繰り返す場合</strong>
for i in range(m, n, l):
　　繰り返し文

<strong>m から n回 繰り返す場合</strong>
for i in range(m, m + n):
　　繰り返し文

<strong>m から n回 lずつ 繰り返す場合</strong>
for i in range(m, m + n, l):
　　繰り返し文


#####例
```java:java
int sum = 0;
for(int i = 0; i < 10; i++) {
    sum += i;
    print(sum);
}
/*
0
1
3
...
45
*/
```

```python:python
sum = 0
for i in range(10):
    sum += i
    print(sum)
#0
#1
#3
#...
#45
```

#条件分岐（if文）
Javaは else if で条件分岐
Pythonは elif で条件分岐
※追記
文字列の比較について、コメントにて追加情報を頂きました！

<strong>比較（else無し）</strong>
if 1 == 1:
　　print("True")
<strong>比較（else有り）</strong>
if 1 == 1:
　　print("True")
else:
　　print("False")
<strong>比較（条件分岐あり）</strong>
if a == "ABC":
　　print("ABCです")
elif a == "DEF"
　　print("DEFです")
else:
　　print("ABCかDEFではありません")

<strong>検索</strong>
if 5 in [5, 10, 15]:
　　print("True")

#####例
```java:java
int a = 0;

if(a == 1) {
    print("aは1です");
} else if (a == 2) {
    print("aは2です");
} else {
    print("aは1でも2でもありません");
}
```

```python:python
a = 0

if a == 1:
    print("aは1です")
elif a == 2:
    print("aは2です")
else:
    print("aは1でも2でもありません")
```

#あとがき
一つ言語を習得すると他の言語の理解がしやすくなるという話を身をもって実感しました。
Javaについても改めて基礎的な部分を固められたと感じたので、関数やクラス定義などについても備忘録をまとめるかもしれません。

#参考文献
柴田淳(2016)「みんなのPython 第4版」SBクリエイティブ株式会社
Python公式リファレンス[https://www.python.org/]