はじめに
4月に入社した入社1年目の人間
です。
今回は研修で学んだ言語の中でもPythonとJavaに注目をおいて構成やコードの違いについて紹介します。
目次
1. きっかけ
2. 実行環境
3. コードの比較
3-1 計算文
3-2 基本構造の有無
3-3 変数宣言
3-4 出力処理
4. まとめ
5. 参考文献
1. きっかけ
学生時代からPythonとJavaの両方に触れていたものの、研修で改めて2つの言語を使用した際に、記述方法やプログラム構造などに多くの違いがあることを実感しました。
なので、特に印象に残った違いについて、自分なりに整理しながらまとめていきたいと思いました。
2. 実行環境
今回、プログラムを実行するにあたってPythonではGoogle Colaboratoryを使用しました。これはブラウザ上でPythonを実行できるクラウドサービスであり、Googleアカウントがあればだれでも利用でます。
また、Google Driveと連携できるのでファイル保存や共有も簡単にできます。
実際に、研修でもGoogle Colaboratoryを使用しました。
Javaの実行環境にはVisual Studio Codeを使用しました。
Visual Studio CodeでJavaを利用するためには、JDKという開発キットのインストールや拡張機能の追加など、事前に開発環境を整える必要がありますが、私は以前から利用していたため、そのまま使用しました。
利点
今回の場合、Visual Studio CodeにPython本体をインストールしてPython用の拡張機能を追加すれば2つの言語を同じ環境内で利用できます。
3. コードの比較
PythonとJavaにはさまざまな違いがありますが、今回は「変数宣言」と「四則演算」を行う際の記述に注目し、特徴的な違いをいくつか紹介します。
3-1. 計算文
Pythonの場合
# 数字を2つ用意する
a = 20
b = 10
# 足し算をして表示
print("足し算->", a + b)
# 引き算をして表示
print("引き算->", a - b)
# 掛け算をして表示
print("掛け算->", a * b)
# 割り算をして表示
print("割り算->", a / b)
足し算 -> 30
引き算 -> 10
掛け算 -> 200
割り算 -> 2
Javaの場合
public class Main {
public static void main(String[] args) {
// 数字を2つ用意する
int a = 20;
int b = 10;
// 足し算をして表示
System.out.println("足し算->" + (a + b));
// 引き算をして表示
System.out.println("引き算->" + (a - b));
// 掛け算をして表示
System.out.println("掛け算->" + (a * b));
// 割り算をして表示
System.out.println("割り算->" + (a / b));
}
}
足し算 -> 30
引き算 -> 10
掛け算 -> 200
割り算 -> 2
3-2. 基本構造の有無
プログラムを実行するにあたってPythonはそのままコードを記述するだけで実行できますが、Javaではclassやmainメソッドを記述する必要があります。
また、Javaのソースコードには波カッコ{}で囲まれた部分があります。この波カッコで囲まれた部分をブロックといいます。
public class Main {
public static void main(String[] args) {
//内側部分にコードを書いていく
}
}
ブロックにより二重階層となっており、どのブロックの中で記述するのかによって実行結果が変わってきます。
今回は2行目のメインメソッドの内側部分にコードを記述します。
3-3 変数宣言
Pythonは変数の型を自動的に判別してくれるので、データ型の定義は不要になります。 一方、Javaでは変数を使用する際にデータ型を明示する必要があります。
今回は数値を扱うため、整数型であるintを使用します。
また、Javaには文の終わりを表す記号である;(セミコロン)を1つの処理が終わるたびに付けます。
a = 20 # 文字列の場合は a = '20'
b = 10 # 数字 → 文字列の場合は str(10)
int a = 20;
int b = 10;
ポイント
Pythonで数字を文字列で表記したいとき、最初からの場合は''(シングルクォーテーション)、途中から文字列へ変換したい場合はstr()と記述する。
3-4 出力処理
Pythonの出力処理はprint()を使用します。
カッコの中に出力してほしいものを記述することで出力されます。
print("足し算->", a + b)
print("引き算->", a - b)
Javaの出力処理はSystem.out.println();を使用します。
カッコの中に出力してほしいものを記述することで出力されます。
System.out.println("足し算->" + (a + b));
System.out.println("引き算->" + (a - b));
足し算 -> 30
引き算 -> 10
また、System.out.print();と入力すると改行なしで文字を出力できます。
System.out.print("足し算->" + (a + b));
System.out.print("引き算->" + (a - b));
足し算 -> 30 引き算 -> 10
4. まとめ
今回は以下の3点について説明しました。
-
基本構造の有無
- Java:mainメソッド
- Java:お決まりで必要なブロック構造
-
変数宣言
- Java:整数型のint
-
出力処理
- Python:print()
- Java:System.out.println();
- Java:System.out.print();
まとめてみると改めてそれぞれの言語の良さを感じられたと思います。
個人的には、PythonはJavaよりもコードがシンプルで量も少ないので使いやすいなと感じました。
今回の例の他にも実行速度や書き方などまだまだたくさん違いがあるので、気になった人や興味をもった方はぜひ、調べてみてください。
5. 参考文献
この記事は以下の情報を参考にして執筆しました。
中山清喬, 国本大悟, 『スッキリわかるJava入門 第3版』
中山清喬, 国本大悟, 『スッキリわかるPython入門 』