python

【python】変数定義と演算と文字列

変数の定義

#変数名 = データ
width = 20 
height = 5 * 9
 
# 文字列を定義するときは、" or ` で囲む
s1 = "Hello"

# "を3つ重ねると改行を含む文字列を定義できる
s2 = """Hello
        World"""

# aとbに10が代入されます。 
a = b = 10 

# c=10, d=11と同じ操作になります 
c, d = 10, 11 

以下のようには宣言しない!!

int a = 3

四則演算

計算 演算子 記述例 結果
足し算 + 1 + 1 2
引き算 10 – 7 3
掛け算 * 2 * 2 4
割り算 / 1 / 3 0.3333333333333333
// 5 // 3 1(整数同士の場合は切り捨てられる)
割り算の余 % 5 % 3 2
べき乗 ** 5 ** 2 25
足し算 += x+=2 x = x+2
引き算 -= x-=2 x = x-2
掛け算 *= x*=2 x = x*2
割り算 /= x/=2 x = x/2
//= x//=2 x = x//2

pythonには、i++のようにはできません。

真偽値

演算子 結果
or x or y xとyのどちらかがTrueだったらTrue、そうでなければFalse
and x and y xとyがTrueならTrue、そうでなければFalse
not not x xがFalseならTrue、xがTrueならFalseになる

比較演算子

演算子 意味
< x < y x は y より小さいとTrue、そうでないとFalse
> x > y x は y より大きいとTrue、そうでないとFlase
<= x <= y x は y以下だとTrue、そうでないとFalse
>= x >= y x は y以上だとTrue、そうでないとFalse
== x == y x と yは同値だとTrue、そうでないとFalse
!= x != y x と yは同値でないとTrue、そうでないとFalse
is x is y xとyは同じidである、xとyは同一であるとTrue、そうでないとFalse
is not x is not y xとyは同じidでない、xとyは同一でないとTrue、そうでないとFalse
in x in y xはyに含まれるとTrue、そうでないとFalse
not in x not in y xはyに含まれないTrue、そうでないとFalse

id関数

Pythonでは全ての物について一意のidというものを持っています。これは id() 関数を使って調べることができます。

 x = 1
print(id(x)) #4463860528
print(id(1)) #4463860528
print(id(2)) #4463860560
print(id("abc")) #4466149168
print(id("hoge"))#4467139056

文字列の演算

文字列の連結
#Python では、型の違うもの同士で計算はできない
day = 24 
date = day + "日" ←実行時エラー

#dayを変換して足し合わせると計算ができる
date = str(day) + "日"
print(date)

・文字列の連結は、文字列同士の足し算で連結する
・変数の型変換は、C言語やjavaとは違い関数を使う

Pythonで文字列を作るには ‘ (シングルクォーテーション) もしくは ” (ダブルクォーテーション) で囲みます。複数行の文字列を作りたいときは、三連引用符(”””…””” または ”’ … ”’)を利用します。 改行は自動で含まれますが、行末に \ を付けることで改行を一つ無視することができます。

print('tomo')
print("tomo")
print("""改行あり

""")

print("""改行無視
\
""")

print("a lot of" + " eggs")
print("Python" * 3)
first_name = 'tomo'
last_name = 'studyblog'
print(first_name + last_name)

出力結果:
tomo
tomo
改行あり

 

改行無視

a lot of eggs
PythonPythonPython
tomostudyblog

文字列の分割と結合

・A.split(B)
・B.join(A)
A:対象の文字列
B:区切り文字

s = "a i u e o"
print(s)  #出力: a i u e o

l = s.split()
print(l)  #出力: ['a', 'i', 'u', 'e', 'o']

s2 = ",".join(l)
print(s2)  #出力: a,i,u,e,o

 

文字列の置換と削除

・A.replace(B,C)
A:対象の文字列
B:変更前の文字(列)
C:変更後の文字(列)

・A.strip(D)
D:削除したい文字(列)

s = "いっぱい"
s = s.replace("い", "お")
print(s) #出力:おっぱお

s = s.replace("ぱ", "")
print(s) #出力:おっお

s = s.strip("お")
print(s) #出力:っ

 

文字列を検索する

[]はオプションなので省略可能です

・A.find(B[,C[,D]])
・A.index(B[,C[,D]])
A:対象の文字列
B:検索したい文字列
C:開始インデックス
D:終了インデックス

・A.index(B[,C[,D]])

A.find(B[,C[,D]])は文字列が見つからない場合は、-1を出力しますが、・A.index(B[,C[,D]])は例外が起きます

print(s.index(“あい”))
ValueError: substring not found

s = "あいうえおアイウエオ12345"
print(s.find("あ"))  # 0
print(s.find("あい"))  # 0
print(s.find("12"))  # 10

s = "あ い う え お ア イ ウ エ オ 1 2 3 4 5 "
print(s.index("あ")) 
print(s.index("あい")) 
print(s.index("1"))  
print(s.index("5", 10))  
print(s.index("あ", 2, 10)) 

 

最初や最後の文字列を調べる

[]はオプションなので省略可能です

・A.startswitch(B[,C[,D]])
・A.endswitch(B[,C[,D]])
A:対象の文字列
B:検索したい文字列
C:開始インデックス
D:終了インデックス

s = "aiueo12345"

print(s.startswith("aiu")) #出力:True
print(s.startswith("12345")) #出力:False
print(s.startswith("12345", 5)) #出力:True
print(s.startswith("12345", 5, 7)) #出力:False

print(s.endswith("345")) #出力:True
print(s.endswith("123")) #出力:False
print(s.endswith("12345", 5)) #出力:True
print(s.endswith("12345", 5, 7)) #出力:False

 

アルファベットの大文字と小文字を変換する

・A.upper()
・A.lower()
A:対象の文字列

s = "aiueoAIUEOあいうえお"

print(s.upper())  #出力: AIUEOAIUEOあいうえお
print(s.lower())  #出力: aiueoaiueoあいうえお