Differences between revisions 2 and 3
Revision 2 as of 2018-10-29 04:56:11
Size: 631
Comment:
Revision 3 as of 2018-10-29 05:03:02
Size: 1604
Comment:
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:


===== リストの添え字アクセス =====

 * 【高度な話題】 じゃんけんの手
  * 「リストの添え字アクセス」で「じゃんけん」の手を,コードから文字列へ変換します.
  * 非常に簡潔に書けるが,エラー処理は決して十分ではありません.
   * 0~2以外の引数を与えると,添え字エラー(IndexError)例外を送出します.
   * IndexError: list index out of range

{{{#!highlight python numbers=off
# 「じゃんけんの手」の文字列を,対応する整数0,1,2から返す関数
janken_hand_str = lambda hand: ["グー","チョキ","パー"][hand]

janken_hand_str(1)
}}}

 * まとめると...

{{{#!highlight python numbers=off
import random

# 「じゃんけんの手」の文字列を,乱数で決める関数
janken_random_hand_str = \
    lambda: ["グー","チョキ","パー"][random.randint( 0, 2 )]

janken_random_hand_str()
}}}

λ式
  • 【高度な話題】
    • λ式を使うと下記のように,簡潔に書けますが,必ずしも,読みやすいとは言えません.

import random

# 乱数で「じゃんけんの手」を求める関数 (0,1,2の整数で返す)
janken_random_hand = lambda: random.randint( 0, 2 )

janken_random_hand()

リストの添え字アクセス
  • 【高度な話題】 じゃんけんの手
    • 「リストの添え字アクセス」で「じゃんけん」の手を,コードから文字列へ変換します.
    • 非常に簡潔に書けるが,エラー処理は決して十分ではありません.
      • 0~2以外の引数を与えると,添え字エラー(IndexError)例外を送出します.

      • IndexError: list index out of range

# 「じゃんけんの手」の文字列を,対応する整数0,1,2から返す関数
janken_hand_str = lambda hand: ["グー","チョキ","パー"][hand]

janken_hand_str(1)
  • まとめると...

import random

# 「じゃんけんの手」の文字列を,乱数で決める関数
janken_random_hand_str = \
    lambda: ["グー","チョキ","パー"][random.randint( 0, 2 )]

janken_random_hand_str()

SoftEng: Python/Prog/Practice/Extended/02/EP_002a/AdvancedTopics (last edited 2018-10-29 05:03:02 by TadashiIijima)