python基本

この記事は約8分で読めます。

—python —

日本語を使うときははじめに

#coding: UTF-8

を書くべし!

 

使えるデータ型

・数値

・真偽値 true false

None(何もない)

・関数/オブジェクト

・要素が並んだもの

・文字列:文字が並んだもの

・リスト:データが並んだもの

・タプル:データが並んだもの(変更ができない)

・セット:データが並んだもの(重複をゆるさない)

・辞書:キーと値がペア

 

数値に関して

数値型で扱えるのは整数/小数/複素数

#演算子  和+ 差 積* 商/

商のみ// あまり% べき乗**

 

文字列に関して

文字列 ”” や ’’ が使える

日本語を使うとき > u”こんにちわ”

のようにuをつけること!

+で文字連結

*で文字反復

print “hello” + “world”

print u”無駄!”*30

エスケープ

改行\n タブ\t バックスラッシュ自身\\

ある程度長い文章を改行付きで入れたいとき

”””ここに長い文章を書ける!”””

 

文字数を調べるlen

文字列の検索find index0〜見つかんないときは-1を返す

文字列の切り出し[ ] [start:end] start or endは省略できる。

 

数値と文字列の相互変換

文字列→数値 int float

数値→文字列 str

print 5+int(“5”)

print 5+float(“5”)

age=20

print “I am ”+str(age)+”years old”

 

リスト(配列)大カッコでくくる。

違うデータ型も並列に扱える

sales=[255,100,353,400,”aaa]

print len(sales)

print sales[2]

ptint 100 in sales salesの中に100があるか?真偽値で返ってくる。

リストを一気に作る命令-range

print range(10)09まで10個

print range(3,10)

print range(10)

print range(1,11)

print range(1,11,2)

 

ソート・リバース・スピリット・ジョイン

sales.sort()

print sales #[20, 100, 255, 353, 400]

sales.reverse()

print sales #[400, 353, 255, 100, 20]

#文字列とリストを相互変換

d=”2013/12/15″

print d.split(“/”) #[‘2013′, ’12’, ’15’]

a=[“a”,”b”,”c”]

print “-“.join(a) #a-b-c

リスト→文字列は+でも連結

 

タプル(変更ができない) 丸カッコで表現

#タプル–>計算速度が上がったり、変更できないことが明示できる

a=(2,5,6)

print a

print len(a)

print a*3

print a[2]

#タプル→リストの変換

b = list(a)

print b

#リスト→タプル変換

c= tuple(b)

print c

 

セット:集合型(重複を許さない)

a=set([1,2,3,4,3,2])

print a

b=set([3,4,5])

print a-b #aにあってbに無いもの

print a|b #abの和集合

print a&b #abの積集合

print a^b #どちらかにしか無いもの集合

 

辞書型 keyvalueがセットになったもの

波カッコを使う!

sales ={“taguchi”:200,”fkoji”:300,”dotinstall”:500}

print sales

print sales[“taguchi”]

sales[“fkoji”]=800

print sales

#キーを調べたい時in

print “taguchi” in sales

#キーの一覧、値の一覧、それぞれの一覧

print sales.keys() #リストで返る

print sales.values() #リストで返る

print sales.items() #タプルで返る

 

文字列にデータを組み込む

a=10

b=1.234

c=”sakoda”

d={“fkoji”:200,”dotinstall”:500}

print “age: %d” %a

print “age: %010d” %a

print “price: %f” %b

print “name: %s” %c

#辞書型については・・・

print “print “a:%d and b:%f” %(a, b)sales %(fkoji)d” %d

#複数使うときは()でくくる

print “a:%d and b:%f” %(a, b)

print “a:%d and b:%f” %a, %bは使えない

 

条件分岐

if条件式:

処理(タブ必須)

 

比較演算子< > <= >= == !=

論理演算子and or not

範囲の演算おk! if 60 < score < 80:

 

score =30

if 60< score < 80:

print “OK!”

elif score>=80:

print “GREAT!”

else:

print “NG”

#ifelse文に関する一行での書き方(特殊?)

print “OK!!” if score>60 else “NG!!”

 

繰り返しfor in else continue break

sales=[12,23,435,6,23]

sum =0;

for sale in sales:

sum +=sale

print sale

else:

print “sum”+str(sum)

 

 

for i in range(10):

if i==3:

continue

elif i==5:

break

print I

 

#辞書型のforループ

users ={“taguchi”:200,”fkoji”:300,”dotinstall”:500}

for key,value in users.iteritems():

print “key:%s value %d” %(key, value)

for key in users.iterkeys():

print “key:%s” %key

for value in users.itervalues():

print “value %d” %value

 

while else continue break

n=0

while n<10:

print n

n+=1

else: #falseの場合実行される

print “END”

関数

def関数名():

処理

 

def関数名(引数):

処理

 

def関数名(引数1,引数2):

処理

 

引数に関して定義内で初期値の設定ができる。

Returnで戻り値

 

変数のスコープとpass

スコープは当たり前と思っていい、passは処理をあとから書くように何もしない処理。

 

maplambdaリストの各要素に関数の処理を適用させる方法と無名関数

def double(x):

return x*x

print map(double,[2,3,5])

#ラムダ式(無名関数)一度しか使わないので名前を付けないで使える関数

print map(lambda x:x*x,[2,3,5])

 

a=[1,2,3,4,5,6,7]

print map(lambda x:x*x,a)

 

オブジェクト(変数と関数をまとめて管理したい)

 

モジュール

#予め用意してあるモジュール

import math,random

print math.ceil(5.6)

for i in range(5):

print random.random()

 

#datetimeモジュールの内dateのみ使う

from datetime import date

print date.today()

コメント

タイトルとURLをコピーしました