1. 四則演算 他
足し算 +
引き算 -
掛け算 *
割り算 /
割り算の余りを求める %
累乗 **
平方根 **0.5
()(括弧を用いた計算の順番変更も可能)
答えが10になる計算の例)
1+9
(10+90)/10
11%10*10
100**0*10
100**0.5
2. 変数を作る
変数名 = データ の形で変数を定義できる。
(変数名は初めの文字に数字、全角文字を使用できない
例)
○A2 = 2
×2A = 3)
定義した変数は四則演算で使用できる。
例)
A = 3
B = 4
C = 5
A**2+C-B (10になる)
変数に文字列を定義するときは、
変数名 = "文字列"(or '文字列') とする。
文字列の場合でも四則演算で使用できる。
例)
A = 'あれれ~'
B = "おっかしいぞ~"
A+B ('あれれ~おっかしいぞ~'となる)
(足し算・掛け算、また括弧を用いた足し算・掛け算はできるが、引き算・割り算・割り算の余りを求める・累乗はできない。
同様にそのままの形では文字列と数字を足し算することはできない(方法は後述)。)
定義した変数を変数内に代入できる。
例)
A = 3
B = 4
C = A+B
C+A (10になる)
A = 3
A = A+2
A*2 (10になる)
A = 'おいしいけど'
B = 'おいしい'
C = A+'、'+B ('おいしいけど、おいしい'となる)
改行を含むデータを定義する場合は
変数名 = """データ
データ"""
(変数名 = '''データ
データ''')のように "か'を3つで挟むと定義できる。
また、改行したい時点で\nで挟む手もある。
例)
meigen = '''今日はオフ会当日ですが、
参加者は誰一人来ませんでした。'''
('今日はオフ会当日ですが、
参加者は誰一人来ませんでした。'となる)
文字列と数字を足す方法
文字列と数字で足し算するには数字を文字列に変換しなければいけない。
数字を文字列に変換するには、str()関数を用いる。
例)
today_is = "今日は"
month = str(8)
MONTH = "月"
day = str(11)
DAY = "日"
off_kai = "オフ会当日"
off_kai_day = today_is+month+MONTH+day+DAY+off_kai
('今日は8月11日オフ会当日'と表示される)
3. リストを作る
リスト名 = [要素0, 要素1, 要素2, ...] の形でリストを定義できる。
例)
tokyo_temps = [15.1, 15.4, 15.2, 15.4, 17.0, 16.9]
(1950年から2000年までの10年ごとの東京の平均気温のリスト)
リストの内容に文字列を使うとこともできるが、その際は 'か”で挟む。
リストの内容をグラフにして表示する
グラフの表示準備
%matplotlib inline
import matplotlib.pyplot as plt
グラフに表示にするリストを選択する
plt.plot(リスト名)
例)
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(tokyo_temps)
上のグラフが表示される。
リスト内容を抜き出す
リスト名[要素番号] で作成済みのリストから要素番号の要素のみ抜き出せる。
例)tokyo_temps[0] (15.1となる)
要素番号は[0,1,2,3,4,5,6.....]のように0から始まるので注意
抜き出した要素番号同士は四則演算で使用できる。
tokyo_temps[5]-tokyo_temps[0] (2000年の平均気温-1950年の平均気温 1.8になる)
リストの一番最後の要素を抜き出すときは
リスト名[-1]という方法もある。
リストを連結する
リスト名+リスト名 でリストを連結することができる。
例)
e_tokyo_temps = [13.6, 13.5, 14.2, 14.8, 14.8]
(1900年から1940年までの10年ごとの東京の平均気温のリスト)
tokyo_temps2 = e_tokyo_temps+tokyo_temps
([13.6, 13.5, 14.2, 14.8, 14.8, 15.1, 15.4, 15.2, 15.4, 17.0, 16.9])
グラフを表示すると上のようになる。
要素の置き換え、削除
リスト名[要素番号] = 数字or文字列("か'で挟む) で作成済みのリストの要素番号の要素を置き換えられる。
例)
syamu = ["大阪", "広島", "対馬"]
syamu[0] = "貝塚" (['貝塚', '広島', '対馬'] となる)
del リスト名[要素番号] で作成済みのリストのようそばんごうのようそのみけすことができる。
例)
del syamu[0] (['広島', '対馬'] となる)
リストの合計・最大値・最小値、リストの要素の個数
数字のみを要素に持つリストは合計・最大値・最小値を出すことができる。
合計は sum(リスト名)、
最大値は max(リスト名)、
最小値は min(リスト名) でそれぞれ出すことができる。
リストの要素の個数は len(リスト名) で出すことができる。
リストの要素の個数を出す場合はリストの要素が文字列でも求められる。
例)
tokyo_temps2 = [13.6, 13.5, 14.2, 14.8, 14.8, 15.1, 15.4, 15.2, 15.4, 17.0, 16.9]
(東京の1900年から2000年までの10年ごとの平均気温のリスト)
最大値を求める max(tokyo_temps2) (17.0となる)
最小値を求める min(tokyo_temps2) (13.5となる)
平均値を求める sum(tokyo_temps2)/len(tokyo_temps2) (リストの合計/リストの要素の個数) (15.0818...となる)
リストのメソッドを用いる
リスト名.index(リストの要素) の形でリストの要素の番号がわかるようになる (数値として返される。複数個あるあ場合一番初めの番号が表示される)
リスト名.sort() の形でリストが昇順に並び替えられる。数字なら小さいものから、文字列なら文字コードの並び順に並び変わる
リスト名.reverse() の形でリストが逆順で並べられる
リスト名.count(要素) の形でリスト内に何個要素があるか表示される (数値として返される)
例)
A = [2,3,2,2,1,3,5,1,4,2,2,3,4]
A.index(2) (0と表示される)
A = [2,3,2,2,1,3,5,1,4,2,2,3,4]
A.sort()
A ([1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5]と表示される)
A = [2,3,2,2,1,3,5,1,4,2,2,3,4]
A.reverse()
A ([4, 3, 2, 2, 4, 1, 5, 3, 1, 2, 2, 3, 2]と表示される)
A = [2,3,2,2,1,3,5,1,4,2,2,3,4]
A.count(2) (5と表示される)
上記からわかるようにsortとreverseはリストの並び順を変更しているだけで画面には表示されないので、画面に表示したい場合は別途print()などを使用する必要がある。またindexやcountはsortとreverseと違い自動で表示されるので、表示したくない場合は 変数 = リスト名.index(要素) のように変数に代入する必要がある。
4. ifによる条件分岐
if 条件式:
条件を満たしている場合にする行動 の形で条件式が満たされている行動を決定できる。
例)
if 3 == 3:
print("3=3") ('3=3'と表示される)
if 5 > 3:
print("5>3") ('5>3'と表示される)
if 5 <= 3:
print("5<=3") (何も表示されない)
例のように 条件式内で A=B が言いたい場合は A == B (=が二個)
A>B が言いたい場合は A > B (>(大なり記号)で挟む)
A<B が言いたい場合は A < B (<(小なり記号)で挟む)
A≧B が言いたい場合は A >= B (>=の順番で挟む *≧記号で挟まないように)
A≦B が言いたい場合は A <= B (<=の順番で挟む *≦記号で挟まないように)。
A=Bの場合のみリストを比較できる。
if [1, 2, 3] == [1, 2, 3]:
print("[1, 2, 3]=[1, 2, 3]") ('[1, 2, 3]=[1, 2, 3]'と表示される) (リストの内容が完全一致の場合のみ可能)
if 条件式:
条件を満たしている場合にする行動
else:
条件を満たしていない場合にする行動 の形で条件式が満たされている場合の行動と、満たされていない場合の行動を決定できる。
例)
off_kai_joiner = 0
if off_kai_joiner >= 1:
print("大物Youtuber")
else:
print("オフ会ゼロ人Youtuber")
('オフ会ゼロ人Youtuber'と表示される)
off_kai_joinerの数字を1以上にすると、'大物Youtuber'と表示される。
リストの要素の検索
if 検索したい数字or文字列 in リスト:
検索したい数字or文字列がリスト内にあった場合にする行動 でリストの要素の検索ができる。
例)
if 14.2 in [13.6, 13.5, 14.2, 14.8, 14.8, 15.1, 15.4, 15.2, 15.4, 17.0, 16.9]:
print("涼しい") ('涼しい'と表示される)
またリストに名前を付けている場合、リストの名前を用いて要素の検索ができる。
tokyo_temps2 = [13.6, 13.5, 14.2, 14.8, 14.8, 15.1, 15.4, 15.2, 15.4, 17.0, 16.9]
if 17.0 in tokyo_temps2:
print("暑い") ('暑い'と表示される)
elifを用いた条件分岐
elifを用いればより複雑な条件分岐を設定できる。
例)
off_kai_joiner =
if off_kai_joiner >= 1:
if off_kai_joiner >= 10:
if off_kai_joiner >= 100:
if off_kai_joiner == 810:
print("syamu is YAJYU")
elif off_kai_joiner >= 1000:
if off_kai_joiner == 1919:
print("SYAMU IS yajyu")
elif off_kai_joiner >= 10000:
print("人間界の神")
else:
print("Youtuberの神")
else:
print("大物Youtuber")
else:
print("中堅Youtuber")
else:
print("底辺Youtuber")
else:
print("オフ会ゼロ人Youtuber")
(off_kai_joinerの数値が0の時、'オフ会ゼロ人Youtuber'
1~9の時、'底辺Youtuber'
10~99の時、'中堅Youtuber'
100~999の時、'大物Youtuber'
1000~9999の時、'Youtuberの神'
10000以上の時、'人間界の神'
ちょうど810の時、'syamu is YAJYU'
ちょうど1919の時、'SYAMU IS yajyu'と表示される)
5. 関数を作る
def 関数名():
関数ですること の形で新しく関数を定義することができる。
例)
def syamu_game():
syamu = ["オフ会ゼロ人Youtuber", "底辺Youtuber", "中堅Youtuber", "大物Youtuber"]
num = input("数字を入力してください")
rf = int(num) % len(syamu)
print(syamu[rf])
これでsyamu_game()という関数を定義したことになる。
別のセルでsyamu_game()と入力し実行すると、セルの下にフォームが出てくる。
このフォームは、input()関数から来ているもので数字や文字を入力できるが、今回は数字を入力してエンターキーを押す。
input()関数で入力された数字or文字は文字列扱いされるので、int()関数でinput()関数で入力した数字を数値に変える。
入力した数字をリストの要素の個数で割って出た余りをrfと置いて、print(syamu[rf])でリストのrf番目の要素を表示している。数字をリストの個数で割るとリストの要素の個数に収まった数字が出せる。
こんな感じになる。
6. ディクショナリを用いる
ディクショナリ名 = {"キー":"要素", "キー2":"要素2"...} の形でディクショナリを定義できる
キーに同じ文字列or数字は二度使えない
ディクショナリ名["要素のキー"] で定義済みのディクショナリの要素のキーに対応した要素を取り出せる
例)
syamu = {"名前":"浜崎 順平", "チャンネル名":"syamu_game", "出身":"広島", "あだ名":"貝塚勃起土竜"}
print(syamu["名前"]) (浜崎 順平 と表示される)
ディクショナリの要素の置き換え
ディクショナリ名["要素のキー"] = "文字列or数字" で要素のキーに対応した要素を置き換えられる
ディクショナリに新要素を追加する
ディクショナリ名["要素のキー"] = "文字列or数字" で新たに要素を追加できる
ディクショナリの要素の削除
del ディクショナリ名["要素のキー"] で要素のキーに対応した要素が削除される。
例)
syamu = {"名前":"浜崎 順平", "チャンネル名":"syamu_game", "出身":"広島", "あだ名":"貝塚勃起土竜"}
syamu["あだ名"] = "前世は徳を積んだ虫"
syamu["オフ会参加者数"] = "0人"
del syamu["名前"]
print(syamu) ({'チャンネル名': 'syamu_game', '出身': '広島', 'あだ名': '前世は徳を積んだ虫', 'オフ会参加者数': '0人'} と表示される)
キーとそれに対応した要素を表示するには
for key in ディクショナリ名:
print(key, syamu[key]) とする
例)
syamu = {"名前":"浜崎 順平", "チャンネル名":"syamu_game", "出身":"広島", "あだ名":"貝塚勃起土竜"}
for key in syamu:
print(key, syamu[key])
7. setを用いる
set名 = {"要素", "要素2", "要素3", "要素4"...} の形でsetは定義できる
setの要素に数字や文字列を使うことはできるが、変数やリスト、ディクショナリ、setなどの要素が変わるものは使用できない。また、同じ数字や文字列を重複して要素にすることはできなし、インデックスを用いて要素を検索することができない。
setの和集合を求める
setが2つ以上あるとき、set同士の和集合を
C = A | B の形で求められる(和集合とは和集合を求めるsetのいずれかに少なくとも一つに含まれているような要素のこと)
setの差集合を求める
差集合を求めたいsetが2つのとき、set同士の差集合を
C = A | B の形で求められる(差集合とはset Aの要素からset Bの要素を引いて残った要素のこと *順番関係あり)
setの交わりを求める
setが2つ以上あるとき、set同士の交わりを
C = A & B の形で求められる(交わりとは交わりを求めたいsetすべてに入っている要素のこと)
setの対象差を求める
setが2つ以上あるとき、set同士の対象差を
C = A ^ B の形で求められる(対象差とは対象差を求めたいsetの和集合-交わりで残った要素のこと)
例)
s = {"広島", "大阪", "和歌山"}
r = {"大阪", "沖縄", "福島"}
A = s | r (和集合を求めている。{'大阪', '広島', '和歌山', '福島', '沖縄'} となる)
B = s - r (差集合を求めている。{'和歌山', '広島'}となる)
C = s & r (交わりを求めている。{'大阪'}となる)
D = s ^ r (対象差を求めている。{'沖縄', '広島', '和歌山', '福島'})
setとリスト
setもリストと同様に
len(set名)の形でsetの要素の個数を、
max(set名)、min(set名)、sum(set名)の形で最大値、最小値、合計を(要素が数値の時に限る)求めることができる。
また、
set名 = set(リスト名)の形で作成済みのリストをsetに変換できる。なお、リストには同じ要素を重複させることができるが、setには同じ要素を重複させることができないので重複した要素は後の要素から削除される。
例)
r = ["大阪", "沖縄", "大阪", "福島", "大阪"]
R = set(r)
print(R) ({'大阪', '沖縄', '福島'}と表示される)
setもリストのようにifの条件式に使用できる。
条件式内でsetA=setBが言いたい場合は setA == setB(=は二個)
setAがsetBの部分集合であることが言いたい場合は setA <= setB (部分集合とはsetAの要素すべてがsetBに入っているということ)。
8. タプルを用いる
タプル名 = (要素1, 要素2, 要素3, 要素4...) の形でタプルを定義できる
タプルの要素に数値や文字列を使うことはできるが、set同様に変数やリストなど変化する数値や文字列を要素にすることはできない。また、setと違いインデックスによる要素の検索ができる。
例)
syamu = ("広島", "大阪", "貝塚", "泉南イオン")
print(syamu[0]) ('広島'と表示される)
タプルの要素番号は、リストと同様に (0,1,2,3,4,5...)となる。
タプルは要素の変更はできないがリストと同様に2つ以上のタプル同士を連結したり、len(タプル名)で要素の個数、max()、min()、sum()を用いて最大値、最小値、合計を求めたり、ifの条件式に用いることもできる(リストと同様にin演算子で要素の検索もできる)。
9. ifのandとor
ifの条件式にはandとorが使える。
条件式A and 条件式B:
条件を満たしている場合にする行動 となっている場合、条件式Aと条件式Bが同時に満たされているときのみに条件を満たしている場合にする行動を行う(条件式Aかつ条件式B)
条件式A or 条件式B:
条件を満たしている場合にする行動 となっている場合、条件式Aか条件式Bのどちらか(またはその両方)が満たされているときに条件を満たしている場合にする行動を行う(条件式Aまたは条件式B)
例)以下の3つのプログラムはどちらも同じ動きをする
1. 以前に例として作ったもの
off_kai_joiner =
if off_kai_joiner >= 1:
if off_kai_joiner >= 10:
if off_kai_joiner >= 100:
if off_kai_joiner == 810:
print("syamu is YAJYU")
elif off_kai_joiner >= 1000:
if off_kai_joiner == 1919:
print("SYAMU IS yajyu")
elif off_kai_joiner >= 10000:
print("人間界の神")
else:
print("Youtuberの神")
else:
print("大物Youtuber")
else:
print("中堅Youtuber")
else:
print("底辺Youtuber")
else:
print("オフ会ゼロ人Youtuber")
2. andを用いたもの
off_kai_joiner =
if off_kai_joiner >= 1 and 10 > off_kai_joiner:
print("底辺Youtuber")
if off_kai_joiner >= 10 and 100 > off_kai_joiner:
print("中堅Youtuber")
if off_kai_joiner == 810:
print("syamu is YAJYU")
elif off_kai_joiner >= 100 and 1000 > off_kai_joiner:
print("大物Youtuber")
if off_kai_joiner == 1919:
print("SYAMU IS yajyu")
elif off_kai_joiner >= 1000 and 10000 > off_kai_joiner:
print("Youtuber界の神")
if off_kai_joiner >= 10000:
print("人間界の神")
if off_kai_joiner == 0:
print("オフ会ゼロ人Youtuber")
後者のほうが若干簡潔に見える。何より改行とスペースを押す回数が減ったのがいい。
3. さらにandを省略したもの
off_kai_joiner =
if 10 > off_kai_joiner >= 1:
print("底辺Youtuber")
if 100 > off_kai_joiner >= 10:
print("中堅Youtuber")
if off_kai_joiner == 810:
print("syamu is YAJYU")
elif 1000 > off_kai_joiner >= 100:
print("大物Youtuber")
if off_kai_joiner == 1919:
print("SYAMU IS yajyu")
elif 10000 > off_kai_joiner >= 1000:
print("Youtuber界の神")
if off_kai_joiner >= 10000:
print("人間界の神")
if off_kai_joiner == 0:
print("オフ会ゼロ人Youtuber")
(off_kai_joinerの数値が0の時、'オフ会ゼロ人Youtuber'
1~9の時、'底辺Youtuber'
10~99の時、'中堅Youtuber'
100~999の時、'大物Youtuber'
1000~9999の時、'Youtuberの神'
10000以上の時、'人間界の神'
ちょうど810の時、'syamu is YAJYU'
ちょうど1919の時、'SYAMU IS yajyu'と表示される)
if off_kai_joiner >= 1 and 10 > off_kai_joinerとif 10 > off_kai_joiner >= 1は同じ意味になる。
10.ループを用いる
forを用いたループの作成
for 繰り返し変数 in 対象:
ループ内で行う行動 の形で対象に対し繰り返し変数の数だけループ内で行う行動を繰り返すループを作成したことになる
例)
youtuber = ["HIKAKIN", "HAJIME", "SEIKIN", "KUN", "SYAMU"]
for member in youtuber:
print(member)
(HIKAKIN
HAJIME
SEIKIN
KUN
SYAMUと表示される)
memberは対象がリスト関連の時に0からリスト関係の要素の個数-1まで繰り返す繰り返し変数
range()を用いてループする回数を限定する
for 繰り返し変数 in range(数値):
ループ内で行う行動 で数値の回数だけループ内で行う行動を行うようになる
例)
youtuber = ["HIKAKIN", "HAJIME", "SEIKIN", "KUN", "SYAMU"]
num = 0
for num in range(len(youtuber)):
print(youtuber[num])
num + 1
先にnum = 0 と置き、print(youtuber[num])でnumの時のyoutuberの要素を表示し最後にnum + 1 でnumの数字を増やす。range(len(youtuber))でyoutuberの要素の個数だけ同じことを繰り返させた
whileを用いたループの作成
while 条件式:
条件を満たしている場合に行う行動 の形で条件式を満たしている場合条件を満たしている場合にする行動を繰り返すループを作成したことになる
例)
num = 1
while num <= 100:
if num % 3 == 0 and "3" in str(num):
print(str(num) + "★☆")
elif num % 3 == 0:
print(str(num) + "★")
elif "3" in str(num):
print(str(num) + "☆")
else:
print(num)
num = num + 1
(3の倍数の時は★が付いて、3が付く数字の時は☆が付いて、3の倍数かつ3月つく数字の時は★☆が付いて、その他の場合そのまま表示される)
breakとcontinueを用いたループの制御
ループブロック内でbreakを用いると、ループは終了し、
continueを用いるとループの初めまで戻る
例)
from random import randint
hands = {"0":"グー", "1":"チョキ", "2":"パー"}
rule = {("0", "0"):"あいこ", ("0", "1"):"勝ち", ("0", "2"):"負け",
("1", "0"):"勝ち", ("1", "1"):"あいこ", ("1", "2"):"負け",
("2", "0"):"勝ち", ("2", "1"):"負け", ("2", "2"):"あいこ"}
while True:
pc = randint(0, 2)
PC = str(pc)
user = input("手を入力してください 0=グー、1=チョキ、2=パー、3=終了")
if user == "3":
break
if user not in ("0", "1", "2"):
continue
print("コンピューター "+ hands[PC] + "、ユーザー " + hands[user])
print(rule[(user, PC)] )
(コンピューターの手と自分の手と勝敗が表示される。3を入力すると終了し、0,1,2,3以外が入力されるともう一度初めからになる)
ループの最後にelseを用いる
ループの最後に
else:
ブロック の形でループが終わってからブロックを実行する
また、ループ内にbreakがある場合、breakでループが終了した場合elseは実行されない。
例)
:
num = 1
num_2 = int(input("数字を入力してください"))
double_star = []
white_star = []
black_star = []
non_star = []
while num <= num_2:
if num % 3 == 0 and "3" in str(num):
print(str(num) + "★☆")
double_star = double_star + [num]
elif num % 3 == 0:
print(str(num) + "★")
black_star = black_star + [num]
elif "3" in str(num):
print(str(num) + "☆")
white_star = white_star + [num]
else:
print(num)
non_star = non_star + [num]
num = num + 1
else:
print("星二つの数字の数は" + str(len(double_star)) + "個, "
+ "白星の数字の数は" + str(len(white_star)) + "個, "
+ "黒星の数字の数は" + str(len(black_star)) + "個, "
+ "星なしの数字の数は" + str(len(non_star)) + "個")
(3の倍数の時は★が付いて、3が付く数字の時は☆が付いて、3の倍数かつ3月つく数字の時は★☆が付いて、その他の場合そのまま表示される。最後にそれぞれの数字の数が表示されるようになった)
11. 文字列型を用いる
文字列にメソッドを用いる
変数名 = "文字列"
変数名.replace("文字", "文字2") の形で文字列の文字を文字2に変換できる。
変数名.split("文字") の形で文字列中の文字を削除し、削除した場所で文字列を分割できる。
"文字".join(変数名) の形でsplitで分割した場所に文字を入れることができる。
例)
A = "しんぶんし"
A.replace("ん", "を") ('しをぶをし'となる)
A = "しんぶんし"
B = A.split("ん")
"を".join(B) ('しをぶをし'となる)
変数名 = "文字列"
変数名.find("文字", 要素番号A, 要素番号B) の形で文字列の要素番号Aから要素番号Bまでの間に文字があった場合、その文字の要素番号(文字が複数ある場合一番目の番号)を、文字がなかった場合-1を表示するメソッドになる。要素番号Aと要素番号Bは省略可能で、要素番号Bのみ省略した場合要素番号Aから最後まで、どちらも省略すると0から最後までが範囲になる。
変数名.endswith("文字") の形で文字列が文字で終わっていた場合Trueを、そうでない場合Falseを返すメソッドになる(ifなどで使う)。findと同様に範囲の指定ができる。
変数名.startswith("文字") の形で文字列が文字で始まっていた場合Trueを、そうでない場合Falseを返すメソッドになる(ifなどで使う)。findと同様に範囲の指定ができる。
変数名.strip("文字") の形で文字列から文字を取り除くメソッドになる。文字は省略可能で、省略した場合空白文字(スペースなど)を取り除く。
変数名.upper() の形で文字列内の小文字英語を大文字英語に変換するメソッドになる。
変数名.lower() の形で文字列内の大文字英語を小文字英語に変換するめメソッドになる。
例)
A = "しんぶんし"
B = A.find("ん", 3)
print(B)
if A.endswith("し") and A.startswith("し"):
print("しんぶんしはしで始まり、しで終わる")
C = A.strip("し")
D = "syamu_game"
E = "SYAMU_GAME"
F = E.lower()
print(F)
G = D.upper()
print(G)
(3
しんぶんしはしで始まり、しで終わる
syamu_game
SYAMU_GAME と表示される)
文字列のフォーマット
"{} 文字列".format("文字") の形で{}内に文字を代入して文字列として表示する
"{} {} 文字列 {}".format("文字") のように文字列内に{}が複数ある場合でも各{}に文字が代入される
"{} 文字列".format("文字1", "文字2") のように要素を複数設定することも可能でその場合{}内に要素番号を入れる。要素番号はリストなどと同様に(0,1,2,3,4,5...)となる。
例)
"{}は、大物Youtuber".format("syamu") ('syamuは、大物Youtuber'と表示される)
"{}は、大物Youtuber。{}は、オフ会ゼロ人Youtuber".format("syamu", "HIKAKIN") ('syamuは、大物Youtuber。HIKAKINは、オフ会ゼロ人Youtuber'と表示される)
"{1}は、大物Youtuber。{0}は、オフ会ゼロ人Youtuber".format("syamu", "HIKAKIN") ('HIKAKINは、大物Youtuber。syamuは、オフ会ゼロ人Youtuber'と表示される)
2番目では{}内に要素番号を指定していない、3番目では{}内に要素番号を指定している。
要素番号を指定しない場合、{}の数とフォーマットの要素の個数は同じにしないとエラーが起こる。
フォーマットのオプション
{}内の末尾に下記のいずれかを入れることでフォーマットにオプションを使できる。
:+ を入れると数字に符号が付く(()内が数字の場合に限る)
:- を入れると数字がマイナスの場合のみ -が付く(()内が数字の場合に限る)
:c を入れると文字列として代入する(()内が数字の場合に限る)
:% を入れると%表示で代入する(()内が数値や割り算など%が付けられる場合に限る)
また、:.2% のように.数字 を入れるとその数字の少数位までで%を表示する(その1つ後の蹴立て四捨五入する)。
:, を入れると1,000のように,を入れて表示する(()内が数字の場合に限る)
例)
"{:+},{:+}".format(114514, 114 - 514) ('+114514,-400'と表示される)
"{:-},{:-}".format(114514, 114 - 514) ('114514,-400'と表示される)
"{:%}".format(114 / 514) ('22.178988%'と表示される)
"{:.2%}".format(114 / 514) ('22.18%'と表示される)
"{:,}".format(114514) ('114,514'と表示される)
f文字列
変数名 = 文字列or数列
f"{}文字列" の形で{}内に文字列を代入できる。
例)
yajyu = 114 / 514
f"{yajyu:.3%}" ('22.179%'と表示される)
import random
youtuber = ["HAJIME", "syamu", "HIKAKIN"]
name = random.choice(youtuber)
f"{name}は、大物Youtuber" (ランダムで'HAJIMEは、大物Youtuber','syamuは、大物Youtuber','HIKAKINは、大物Youtuber'と表示される)
12. リスト、タプルの応用
リストのソート
リスト名.sort() の形で作成済みのリストを小さい順番に並べる。
リスト名.sort(reverse = True) の形で作成済みのリストを大きい順番に並べる。
例)
A = [5, 4, 0, 1, 3, 2]
A.sort()
A ([0, 1, 2, 3, 4, 5]と表示される)
A = [5, 4, 0, 1, 3, 2]
A.sort()
A ([5, 4, 3, 2, 1, 0]と表示される)
リストの要素のタプルの要素の数値を足して小さい順に並べる
まず、リストの要素のタプルの要素を足す関数を作る
リスト名[リストの要素番号][タプルの要素番号] の形でリストの要素番号のタプルの要素番号を選択できる
A = [(38, 80, 75), (40, 50, 75), (39, 51, 75), (20, 17, 57)]
def sum_A_date(tup):
return tup[0] + tup[1] + tup[2]
print(sum_A_date(A[0]))
print(sum_A_date(A[1]))
print(sum_A_date(A[2]))
print(sum_A_date(A[3])) (193,165,165,94と表示される)
要素を足す関数をsortのキーに用いる
A.sort(key = sum_A_date, reverse = False)
A ([(20, 17, 57), (40, 50, 75), (39, 51, 75), (38, 80, 75)]と表示される)
大きい順番で並べてい場合、reverse = True にする
13. スライスを用いる
リスト名[X : Y] の形で作成済みのリストのX番目からY-1番目までの要素を表示する
リスト名[: Y] の形で作成済みのリストのY-1番目までの要素を表示する
リスト名[X :] の形で作成済みのリストのX番目以降の要素を表示する
リスト名[:: X] の形で作成済みのリストのX倍の番号の要素を表示する(0,X,2X,3X...番目の要素が表示される)
例)
syamu = [0, "8/11", "オフ0", "貝塚勃起土竜", "泉南イオン"]
syamu[1:4] (['8/11', 'オフ0', '貝塚勃起土竜']と表示される)
syamu = [0, "8/11", "オフ0", "貝塚勃起土竜", "泉南イオン"]
syamu[:4] ([0, '8/11', 'オフ0', '貝塚勃起土竜']と表示される)
syamu = [0, "8/11", "オフ0", "貝塚勃起土竜", "泉南イオン"]
syamu[2:] (['オフ0', '貝塚勃起土竜', '泉南イオン']と表示される)
syamu = [0, "8/11", "オフ0", "貝塚勃起土竜", "泉南イオン"]
syamu[::2] ([0, 'オフ0', '泉南イオン']と表示される)
スライスを用いてリストの要素を置き換え、削除する
リスト名[X : Y] = [要素] の形で作成済みのリストのX番目からY-1番目までの要素を置き換えられる。置き換える要素の個数と(Y-1)-Xが一致していなければいけない
del リスト名[X : Y] の形で作成済みのリストのX番目からY-1番目までの要素を削除する。上記で説明したい[:Y],[X:],[::X]も使える。
リストのメソッドを使用する
リスト名.reverse() の形で作成済みリストの順番を反転する
リスト名.remove(要素) の形で作成済みリストの要素を削除する
リスト名.append(要素) の形で作成済みのリストの末尾に要素を追加する
リスト名.extend(リスト) の形で作成済みのリストの末尾にリストを追加する
リスト名.pop(要素番号) の形で作成済みのリストの要素番号の要素を削除する
リスト名.index(要素) の形で作成済みのリストから要素を検索し一番初めの出てきた時点での要素番号を表示する
例)
syamu = [0, "8/11", "オフゼロ", "前世は徳を積んだ虫", "トロピカル無職", "完全無職ドリーマー", "大物Youtuber"]
syamu.reverse()
syamu (['大物Youtuber', '完全無職ドリーマー', 'トロピカル無職', '前世は徳を積んだ虫', 'オフゼロ', '8/11', 0]と表示される)
syamu.remove("大物Youtuber")
syamu ([0, '8/11', 'オフゼロ', '前世は徳を積んだ虫', 'トロピカル無職', '完全無職ドリーマー']と表示される)
syamu.append("のびハザ脳")
syamu ([0, '8/11', 'オフゼロ', '前世は徳を積んだ虫', 'トロピカル無職', '完全無職ドリーマー', '大物Youtuber', 'のびハザ脳']と表示される)
syamu.extend(["みかちゃん", "とんかつマックぶーぐー"])
syamu ([0,
'8/11','オフゼロ','前世は徳を積んだ虫','トロピカル無職','完全無職ドリーマー','大物Youtuber','みかちゃん','とんかつマックぶーぐー']と表示される)
syamu.pop(6)
syamu ([0, '8/11', 'オフゼロ', '前世は徳を積んだ虫', 'トロピカル無職', '完全無職ドリーマー']と表示される)
syamu.index("オフゼロ") (2と表示される)
14. setのメソッドを使用する
S.union(S2) の形で作成済みのsetとset2の和集合(どちらか片方に一つ以上ある要素)を表示する
S.intersection(S2) の形で作成済みのsetとset2の交わり(どちらにもある要素)を表示する
S.difference(S2) の形で作成済みのsetの要素からset2の要素を削除する
S.symmetric_difference(S2) の形で作成済みのsetとset2の対象差(どちらか片方にしかない要素)を表示する
S.add(要素) の形でsetの末尾に要素を追加する
S.remove(要素) の形で作成済みのsetから要素を削除する
例)
A = {0,2,4,6,8,10,12,14,16,18,20}
B = {1,2,3,5,7,11,13,17}
A.union(B) ({0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20}と表示される)
A.intersection(B) ({2}と表示される)
A.difference(B) ({0, 4, 6, 8, 10, 12, 14, 16, 18, 20}と表示される)
A.symmetric_difference(B) ({0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20}と表示される)
A.add(22)
A ({0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22}と表示される)
A.remove(0)
A ({2, 4, 6, 8, 10, 12, 14, 16, 18, 20}と表示される)
15. ディクショナリ型のメソッドを使用する
組み込み関数dict()を用いたディクショナリの作成
ディクショナリ名 = dict({"キー" : "要素", "キー2" : "要素2", "キー3" : "要素3"…) の形でディクショナリを作成できる。作成したディクショナリは ディクショナリ名 = {"キー" : "要素", "キー2" : "要素2", "キー3" : "要素3"...}となる。
ディクショナリ名.update(ディクショナリ) の形で作成済みのディクショナリに新たに要素を追加できる。
ディクショナリ名.keys() の形で作成済みのディクショナリのキーを表示できる
ディクショナリ名.values() の形で作成済みのディクショナリの要素を表示する。
ディクショナリ名.get(キー, 値) の形で作成済みのディクショナリのキーに割り当てられた要素を表示する。キーがディクショナリにない場合値が返される。値は省略できる。
ディクショナリ名.setdefault(キー, 値) の形でで作成済みのディクショナリのキーに割り当てられた要素を表示する。キーがディクショナリにない場合キーをキーとする要素が価のディクショナリを追加する。
例)
syamu = dict({"オフ会参加者":"0人", "住居":"貝塚", "前世":"虫"})
syamu ({'オフ会参加者': '0人', '住居': '貝塚', '前世': '虫'}と表示される)
syamu.update({"通り名":"大物Youtuber"})
syamu ({'オフ会参加者': '0人', '住居': '貝塚', '前世': '虫', '通り名': '大物Youtuber'}と表示される)
syamu.keys() (dict_keys(['オフ会参加者', '住居', '前世', '通り名'])と表示される)
syamu.values() (dict_values(['0人', '貝塚', '虫', '大物Youtuber'])と表示される)
syamu.get("彼女", "0") ('0'と表示される)
syamu.get("オフ会参加者") ('0人'と表示される)
syamu.setdefault("彼女", "0人")
syamu ({'オフ会参加者': '0人', '住居': '貝塚', '前世': '虫', '彼女': '0人', '通り名': '大物Youtuber'}と表示される)
ifの
最終更新:2018年03月29日 15:43