LoginSignup
3
2

More than 1 year has passed since last update.

Javaに慣れている人向けのPython基本文法のメモ

Posted at

Javaに慣れた人(自分)からすると、一見、見慣れなかったり奇妙だと思える記法があるためメモ

python 基本文法

import

module をインポートします

import <module> as <alias>

module 内のmethodやvariableをimportします

import <module> from <method> [as <alias>]
import <module> from <var> [as <alias>]

import の指定にドット区切りのものを指定するケースは、パッケージ内パッケージとからしい。(追記予定)

関数引数

スプレッド演算子のような使い方で関数の引数に値を渡すことができる。

tuple / arrayを展開して引数に与える

arr = (1,2,3)
print(*arr)
arr = [1,2,3]
print(*arr)

比較演算子

pythonの論理演算子は連結して記載すると評価結果の論理積が式の値として扱われます。
そのため、よくあるプログラミング言語で使用できない以下のような数学の記法

if 1 < a < 5:

if 1 < a and a < 5:

として解釈されます。

a is b is c is None

a is b and b is c and c is None

として解釈されます。

文字列のパーセント演算子

print("aaa%d" % 123)
print("aaa%d%d" % (123,456))

のような表現があり、c言語のprintfのようにフォーマットされているのかと思いきや、
フォーマット処理自体が文字列の演算子として定義されている。

この % 演算子の実態は、数値の剰余演算子 % の実体と同じ名称の関数 mod(s, obj) で定義されている・・・

浮動小数点数の精度

ほとんどすべてのプラットフォームでは Python の浮動小数点を IEEE-754 における "倍精度(double precision)" に対応付けます。
...
J/2**N の形式にしようと努力します。J はちょうど 53 ビットの精度の整数です

整数の精度

Python3のintはPython2のlongに相当し、最大値の上限はなく、メモリの許す限り大きな値を扱うことが可能。
...
なお、NumPyではint32(32ビット整数型)やint64(64ビット整数型)のようにビット数が固定のデータ型が用いられる。

配列のスライス

a:b は範囲として b を含まないことに注意。

arr = [10,11,12,13]

print(arr[1:3])
# [11, 12]

print(arr[1:])
# [11, 12, 13]

print(arr[:3])
# [10, 11, 12]

print(arr[::2])
# [10, 12]
3
2
0

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
3
2