Pythonの基本

他の言語は多少分かるけどPythonは初めて。という人向けに基本的な書き方を説明します。


1. まずは Hellow World

Python2.x系では、print ('xx')でもprint 'xx'でもOK。3.x系だとprint ('xx')のみになります。文字列は、シングルクォート、もしくはダブルクォートで括ります。

print ('Hellow World')
Hellow World
print 'Hellow World'
Hellow World
print "Hellow World"
Hellow World

2. 変数の使い方

変数の宣言(int a)は不要。数値型で扱いたい場合は、数字を変数に代入します。

a = 1
a += 1
print (a)
2

変数の型を調べたい場合はtype()を使う。

print (type(a))
<type 'int'>

文字列型の変数にしたい場合は、代入する値をシングルクォートか、ダブルクォートで括る。

b = '1'
print (type(b))
<type 'str'>

数値→文字列は、str()。文字列→数値は、int() もしくはfloat()。

print (type(a))
print (type(str(a)))
print (type(float(a)))
<type 'int'>
<type 'str'>
<type 'float'>

3. 四則演算

四則演算の記載方法は以下の通りです。

演算子 内容
* 乗算 5 * 10 = 50
/ 除算 4 / 2 = 2
+ 加算 3 + 2 = 5
- 減算 4 - 1 = 3

また、以下の演算子もあります。

演算子 内容
// 除算(小数点以下切り捨て) 5 // 2 = 2
% 剰余 5 % 3 = 2
** べき乗 3 ** 2 = 27
print (5 * 10)
50
print (4 / 2)
2
print (5 / 2)
2
print (5 // 2)
2
print (5 % 3) 
2
print (5 ** 2)
25

4. 文字列+数値型の変数を組み合わせたprint

name = 'test'
allcount = 10
count = 1
print (type(name))
print(type(allcount))
print (type(count))
<type 'str'>
<type 'int'>
<type 'int'>

一番便利なのが、format()。文章中、変数を表示させたい場所に{数字}を書き、format()のカッコ内に対応する変数を記述していきます。数字は0から昇順に採番。変数がどの型かを意識する必要はないです。

print ('プログラム名{0}:全{1}回目中、{2}回目の処理です'.format(name, allcount, count))
プログラム名test:全10回目中、1回目の処理です

数値の変数を見栄え良く、001、002・・と、頭0補填したい時があるかと思います。その場合は、{数字:書式}とすれば良いです。例えば、2桁に満たない場合は頭0補填する。という場合の書式は'02d'です。

print ('プログラム名{0}:全{1:03d}回目中、{2:02d}回目の処理です'.format(name, allcount, count))
プログラム名test:全010回目中、01回目の処理です

他の方法としては、全ての変数を文字列に変換した上で、文字列 + 文字列 で文字連結したものをprintする方法もあります。

print('プログラム名' + name + ':全' +  str(allcount) + '回目中、' + str(count) + '回目の処理です')
プログラム名test:全10回目中、1回目の処理です

zfill()で頭0埋めも可能です。

print('プログラム名' + name + ':全' +  str(allcount).zfill(3) + '回目中、' + str(count).zfill(2) + '回目の処理です')
プログラム名test:全010回目中、01回目の処理です

format()の方が型を意識しなくて済む上、可読性もformat()方式の方が優れていると思うので、format()オススメ。

5. if文の書き方

if文は以下の通り。

if  条件式:  
    処理内容  
elif 条件式:  
    処理内容  
elif 条件式:  
    処理内容  
else:  
    処理内容  

条件式の最後にコロン(:)を忘れがちなので注意。また、if文やfor文など、どこまでの行を処理内容とするかはインデントにて制御します。
例えば、

if 条件式:    
    処理内容1  
    処理内容2  
処理内容3  

と書いた場合、ifの条件式に合致した場合にのみ実行されるのは処理内容1と処理内容2だけです。逆に処理内容3はifの条件に合致するorしないに関わらず実行される処理になります。 インデントはスペースでもタブでも良いですが、統一する必要があります。ちなみに、python推奨はスペース4つです。

条件式で使用する比較演算子は以下の通り。

演算子 記述例 意味
== a == b aとbが等しい
!= a != b aとbが等しくない
> a > b aがbより大きい
>= a >= b aがb以上
< a < b bがaより大きい
=< a <= b bがa以上

複数の条件式を記述したい場合に使用する論理演算子は以下の通り。

演算子 記述例 意味
and a and b aかつbが真の時、真
or a or b aまたはbが真の時、真
not not a aが偽の時、真
a = 100

if a == 100:
    print ("yes")
else:
    print("no")
yes
a = 100
b = 50

if a == 100 and b == 100:
    print('case1')
elif a == 100 and b == 50:
    print('case2')
else:
    print('error')
case2
a = 100
b = 50

if a == 100 and b != 50:
    print('case1')
elif a != 100 or b == 100:
    print('case2')
else:
    print('error')
error

6. 繰り返し文の書き方

6-1. for文の書き方

for文の書き方は以下の通り。

for 変数 in オブジェクト:
  実行する処理1
  実行する処理2

if文同様、オブジェクトの後にコロン(:)をつける点、繰り返し対象の処理はインデントをずらす(スペースでもタブでも良いが統一する)点がポイントです。処理イメージは、リスト型や文字列などのシーケンシャルなオブジェクトの要素を先頭から順に変数iに渡し、実行する処理を行う。というものです。ちょっとわかりづらいので、実際に試してみましょう。

list = ['test1','test2','test3','test4']
for i in list:
    print (i)
test1
test2
test3
test4
name = 'Hellow World'
for i in name:
    print ('get : {0}'.format(i))
get : H
get : e
get : l
get : l
get : o
get : w
get :  
get : W
get : o
get : r
get : l
get : d

10回繰り返したいだけなのに、わざわざlist用意するのめんどくさいな・・という時は、range()を使いましょう。

for i in range(10):
    print (i)
0
1
2
3
4
5
6
7
8
9

「for 変数 in オブジェクト:」という書き方はちょっと特殊なので最初は戸惑いますが、だんだん便利に感じてくると思います。リスト分だけ繰り返し何かの処理を行う。ということが思ったより多いので、そういう場合、すごく直接的に書けます。

6-2. while文の書き方

while文の書き方は以下の通りです。

while 条件式:
    処理内容1
    処理内容2

条件式の最後にコロン(:)を記述する点、繰り返し対象の処理は、インデントをずらす(スペース、タブどれでも良いが統一する)以外は特に注意点はありません。

i = 0
while i <= 3:
    print (i)
    i += 1
0
1
2
3

pythonの基本的な書き方は以上です。