—python —
日本語を使うときははじめに
#coding: UTF-8
を書くべし!
■使えるデータ型
・数値
・真偽値 true false
・None(何もない)
・関数/オブジェクト
・要素が並んだもの
・文字列:文字が並んだもの
・リスト:データが並んだもの
・タプル:データが並んだもの(変更ができない)
・セット:データが並んだもの(重複をゆるさない)
・辞書:キーと値がペア
■数値に関して
数値型で扱えるのは整数/小数/複素数
#演算子 和+ 差– 積* 商/
商のみ// あまり% べき乗**
■文字列に関して
文字列 ”” や ’’ が使える
日本語を使うとき > u”こんにちわ”
のようにuをつけること!
+で文字連結
*で文字反復
print “hello” + “world”
print u”無駄!”*30
▶エスケープ
改行\n タブ\t バックスラッシュ自身\\
ある程度長い文章を改行付きで入れたいとき
”””ここに長い文章を書ける!”””
文字数を調べるlen
文字列の検索find indexを0〜見つかんないときは-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)0〜9まで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 #aとbの和集合
print a&b #aとbの積集合
print a^b #どちらかにしか無いもの集合
■辞書型 keyとvalueがセットになったもの
波カッコを使う!
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は処理をあとから書くように何もしない処理。
■mapとlambdaリストの各要素に関数の処理を適用させる方法と無名関数
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()
コメント