LoginSignup
0
0

More than 3 years have passed since last update.

学習記録(5日目)#関数の引数にデフォルト値を設定する#複数の戻り値を指定する#mapメソッド#数値の進数表現#リストとタプル

Last updated at Posted at 2020-03-16

学習内容

  • Python基本文法

    • 関数の引数へデフォルト値を指定する
    • 複数の戻り値を指定する
    • mapメソッド
    • 数値の進数表現
    • リストとタプル

Python基本文法

関数の引数へデフォルト値を指定する

引数にはデフォルト値を設定することができる。以下の例では、showName()メソッドの三つの引数のうち二つにデフォルト値が設定されており、1つまたは2つの引数だけを指定する形でもメソッドを呼び出すことができる。

def showName(name1, name2 = 'Taro', name3 = 'Kota'):
    print(name1)
    print(name2)
    print(name3)

print('ーーーーー')
showName('Hanako', 'Sachiko', 'Kazuko')   # (1)
print('ーーーーー')
showName('Yuta', 'Ryo')   # (2)
print('ーーーーー')
showName('Chisato')   # (3)
print('ーーーーー')
showName('Hiroki', name3 = 'Yuji')   # (4)

実行結果

ーーーーー
Hanako
Sachiko
Kazuko
ーーーーー
Yuta
Ryo
Kota
ーーーーー
Chisato
Taro
Kota
ーーーーー
Hiroki
Taro
Yuji

(1)引数を3つ指定したときはデフォルトの値は用いられない
(2)引数を2つしか指定しなかったときは3つ目の引数はデフォルト値のまま処理が実行される
(3)引数を1つしか設定しなかったときは2つ目と3つ目の引数がデフォルト値のまま処理が実行される
(4)もし、二つ目の引数だけデフォルト値を保持して、1つ目と3つ目の引数を指定してメソッドの処理を実行したいときはこのように明示的に引数を指定すれば良い

複数の戻り値を指定する

return文で戻り値を指定する際に、カンマで区切って複数の戻り値を返すことができる。このようなメソッドが返す戻り値の型はタプルであるため、for文でも使うことができる

記述例
def twice(num1, num2):
    num1 *= 2
    num2 *= 2
    return num1, num2

for n in twice(10, 25)
    print(n)

実行結果

20
50

mapメソッド

引数に別のメソッドとイテレータブルなデータをとり、そのメソッドの処理をデータの各要素に適応させるイテレータを返す。

記述例
def twice(num):
    return num*2

a = [1, 2, 3]

b = map(twice, a)

for n in b:
    print(b)

実行結果

2
4
6

数値の進数表現

0bを先頭につけることで2進数表現、0oで8進数表現、0xで16進数表現の数値となる。

記述例
a = 0b1100   # 2進数で12
b = 0o17   # 8進数で15
c = 0x2B   #16進数で43

リストとタプル

可変個数のデータを格納できるデータ型で、格納されるデータは順序づけされている。リストはデータの個数を増減させたりできるのに対して、タプルはデータを作成後はその内容を変更することができない。

リスト タプル
データの追加 ×
データの取り出し
データの挿入 ×
データの削除 ×
記述例
# リストの操作
a = [0, 1, 2, 3, 4]
a.append(6)            # 最後にデータを追加
print(a)

a.extend([7, 8, 9])    # 最後にリストのデータを追加
print(a)

a.insert(5, 10)        # インデックス5の位置にデータを追加
print(a)

del a[5]               # インデックス5のデータを削除
print(a)

b = a.pip(7)           # インデックス7のデータを取り出してbに代入
print(a)
print(b)

c = a.pip()            # 最後のデータを取り出してcに代入
print(a)
print(c)

a.remove(2)            # 値が2のデータを削除
print(a)

実行結果

[0, 1, 2, 3, 4, 6]
[0, 1, 2, 3, 4, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 10, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 6, 7, 9]
8
[0, 1, 2, 3, 4, 6, 7]
9
[0, 1, 3, 4, 6, 7]

これ以外にもデータの総数を数えるcount()、データを整列させるsort()、データの順番を反転させるreverse()、データのコピーを実行するcopy()、データを全削除するclear()などのメソッドはリストに対してのみ使用することができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0