Javaは多少わかる自分が、Pythonを学習して2時間目。
構文等々の違いについて。
- ブロックが{}ではなく、インデント
- 変数宣言ない
-
型は動的→ 型は値が持っている - クラスとファイルは一致していなくてよい
-
コンストラクターは__init__→ __init__は初期化メソッド - 継承、パッケージ等ある
- クラス、メソッド、制御文の終わりはコロン
- 文字と数値の区別がある
数値と文字を+して文字"13"とはならずエラーとなる
#!/usr/bin/env python
a=1
b=2
print(a+b)
str="3"
print(a+str)
出力結果
Traceback (most recent call last):
3
File "C:/Data/project/201806_python_1/venv/hellloWorld.py", line 7, in <module>
print(a+str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
1と"1"を比較して同じと判定されない
#!/usr/bin/env python
i=1
if i==1:
print("true")
else:
print("false")
str="1"
if i==str:
print("true")
else:
print("false")
出力結果
true
false
!!重要!!
strとかうっかり安易に変数名を付けると混乱を招く。strは組み込み関数!
- ==とequalsが逆
参考 Pythonの'=='と'is'、ついでにJavaの'=='と'equals'について
- Map、List、Setの参考サイト
参考 Java vs Python - 構文の違い選手権(超不完全版)
- 0はfalse、0以外はtrueと判定される
#!/usr/bin/env python
print(" 0の場合:" + ("true" if 0 else "false"))
print(" 1の場合:" + ("true" if 1 else "false"))
print(" 2の場合:" + ("true" if 2 else "false"))
print("-1の場合:" + ("true" if -1 else "false"))
print(" 0がFalseか?:" + ("true" if 0==False else "false"))
print(" 1がTrueか?:" + ("true" if 1==True else "false"))
出力結果
0の場合:false
1の場合:true
2の場合:true
-1の場合:true
0がFalseか?:true
1がTrueか?:true
-
文字列は、シングルクォーテーションでも、ダブルクォーテーションでもどちらでもよい(Stringはダブル、charはシングルとかはない?)
-
三項演算子はあるが、少し書き方が違う
Python
print(("true" if 0 == 1 else "false"))
Java
System.out.println((0 == 1 ? "true" : "false"));
- trueはTrue、falseはFalse、先頭大文字!
print((0==0))
print((0==1))
出力結果
True
False