多くのプログラミング言語では、変数を使用する前に宣言する必要があり、データの型を指定しなければならないが、Pythonにそのような制約はない。
#変数aに整数の2を代入
a = 2
#変数bに整数の5を代入
b = 5
#変数cにaとbを足したものを代入
c = a + b
#変数dに少数点以下を含む数値を代入
d = 1.05
#変数eに文字列”Noel”を代入
e = "Noel"
#変数aの型を出力
type(a)
int
データの型が異なると演算の意味も異なる。
# 文字列の足し算
x = '1'
y = "6"
z = x + y
z
'16'
# 算術演算
a += b # aとbを足した結果をaに代入
a -= b # aからbをひいた結果をaに代入
a *= b # aにbをかけけた結果をaに代入
a / b # aをbでわった結果をaに代入
a ** b # aのb乗をaに代入
100000
L = ["オレンジ", "パパイヤ","マンゴー"]
要素を取り出す
# リスト名[要素番号]
L[1]
'パパイヤ'
# 複数の要素の場合
L[0:2]
['オレンジ', 'パパイヤ']
要素の置き換え
L[1] = "ライチ"
L
['オレンジ', 'ライチ', 'マンゴー']
要素の削除
# del リスト[要素番号]
del L[1]
L
['オレンジ', 'マンゴー']
リストの連結
# リスト + リスト
M = ["キャベツ","トマト","カリフラワー"]
L + M # 保存されない
['オレンジ', 'マンゴー', 'キャベツ', 'トマト', 'カリフラワー']
要素の追加
# リスト.append(注: 複数要素はappendできない)
A = ["ライオン","カバ","キリン"]
A.append("ゾウ")
A
['ライオン', 'カバ', 'キリン', 'ゾウ']
リストへリストを追加する
B = ["クジラ","イルカ"]
A.extend(B)
A
['ライオン', 'カバ', 'キリン', 'ゾウ', 'クジラ', 'イルカ']
要素の挿入
# リスト.insert(位置, 追加する要素)
A.insert(1,"オカピ")
A
['ライオン', 'オカピ', 'カバ', 'キリン', 'ゾウ', 'クジラ', 'イルカ']
要素の削除
# 要素を指定して削除
A.remove("カバ")
A
['ライオン', 'オカピ', 'キリン', 'ゾウ', 'クジラ', 'イルカ']
# 要素番号を指定して削除
del A[0]
A
['オカピ', 'キリン', 'ゾウ', 'クジラ', 'イルカ']
# 指定した要素番号の要素を削除して出力
A.pop(-1)
'イルカ'
要素番号の取得
A.index("ゾウ")
2
要素の存在確認
"キリン" in A
True
要素の並べ替え
S = ["India","Hotel","Fox","Delta","Alpha","Charie","Bravo","Echo","Golf"]
# 非破壊
sorted(S)
['Alpha', 'Bravo', 'Charie', 'Delta', 'Echo', 'Fox', 'Golf', 'Hotel', 'India']
S
['India', 'Hotel', 'Fox', 'Delta', 'Alpha', 'Charie', 'Bravo', 'Echo', 'Golf']
# 破壊
S.sort()
S
['Alpha', 'Bravo', 'Charie', 'Delta', 'Echo', 'Fox', 'Golf', 'Hotel', 'India']
emumerate
# 要素の順番と値を返す
L = [10,25,30]
for i, v in enumerate(L):
print(i,v)
0 10 1 25 2 30
# range関数
#0からn-1の整数列
r = range(5)
list(r)
[0, 1, 2, 3, 4]
リストや辞書などのループ処理を短く書く記法。
# forで書くと
L = ["pen","apple","grape"]
M = []
for i in L:
M.append(i+"s")
M
['pens', 'apples', 'grapes']
L = ["pen","apple","grape"]
N = [i + "s" for i in L]
N
['pens', 'apples', 'grapes']
# Lの中の単語でXにある単語だけPに保存
L = ["pen","apple","book"]
X = ["pen","eraser","book","pencil"]
P = [i for i in L if i in X]
P
['pen', 'book']
(10**10-1)/9
1111111111.0
タプルとは()で括った構造。リストと似ているが、1度作ったタプルは変更できない。
T = (1,2,3,4,5)
T.append(6)
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[30], line 1 ----> 1 T.append(6) AttributeError: 'tuple' object has no attribute 'append'
順番が保持さない、重複要素が削除されるリスト
S = set([1,2,2,2,4,4,5])
S
{1, 2, 4, 5}
# 要素の追加
S.add(9)
S
{1, 2, 4, 5, 9}
# 和集合1
A = {1,2,3}
B = {3,4,5}
A | B
{1, 2, 3, 4, 5}
# 和集合2
D = {1,2,3}
E = {3,4,5}
D.union(E)
{1, 2, 3, 4, 5}
# 積集合1
A & B
{3}
A.intersection(B)
{3}
# 差集合1
A - B
{1, 2}
# 差集合2
A.difference(B)
{1, 2}
# 排他的論理和1
A ^ B
{1, 2, 4, 5}
# 排他的論理和2
A.symmetric_difference(B)
{1, 2, 4, 5}
# ディクショナリの生成
D = {"S001":25,"S002":40,"S003":50}
# 値の取り出し
D["S002"]
40
# 要素の追加
D["S004"] = 90
# keyの取得
D.keys()
dict_keys(['S001', 'S002', 'S003', 'S004'])
# 値の取得
D.values()
dict_values([25, 40, 50, 90])
# 以下のようにすると全ての値が取得できる
for i in D.keys():
print(D[i])
25 40 50 90
# 両方同時に
for k,v in D.items():
print(k,v)
# 順番は保持されない
S001 25 S002 40 S003 50 S004 90
1, 11, 111,1111のようにすべての桁の数字が1である自然数をレピュニット(数)と言い、1番目のレピュニットを$R_1 = 1$、2番目を$R_2 = 11$と表します。$R_2$から$R_{10}$までを出力しなさい。
以下のように1を文字列として扱うことはできません。
n = "1"
for i in range(1,11):
print(n * i)
1 11 111 1111 11111 111111 1111111 11111111 111111111 1111111111