Aiffel: Day 6


今日のテーマ
Aiffel LMS : Fundamental 10. マルチデータプリプロセッシング技術
Python符号化スタンプ:Unit 31-32,34-35

Aiffel LMS


Fundamental 10. マルチデータプリプロセッシング技術



Pythonコードスタンプ


Unit 31. 関数での再帰呼び出しの使用

  • レビュー問題
  • def fib(n):
      if n <= 1:
        return n
      else:
        return fib(n-1)+fib(n-2)
        
    n = int(input())
    print(fib(n))

    Unit 32. Ramda式の使用

  • レビュー問題
  • files = input().split()
    
    a = list(map(lambda x: '{0:03d}'.format(int(x.split('.')[0]))+'.'+x.split('.')[1],files))
    print(a)
    -->どうやって解けるか分からないので、グーグルゲームをしましたが、
    プール:リストファイルに文字列ファイル名が含まれます.このリストのすべての要素を指定した関数と見なす必要があるため、map関数を使用する必要があります.
    Ramda式が最初に作成されると、操作パラメータによって受信された文字列が001になります.png, 099.docx, 100.フォーマットはxlsxと同じである必要があります.したがって、文字列は「{0:03 d}にマッピングされる.“”.まず,{0:03 d}はファイル名の一部であり,1は001,99は099,100は100の3つの数字であり,0を加算する.一方、{1}は拡張子の一部であり、文字列は変わらない.
    今は「{0:03 d}です.formatメソッドを使用して「」の内容を入力します.まず、文字列はsplit(".")のように"."ファイル名と拡張子を分けます.lambdaがxをパラメータとして指定すると、int(x.split(.")[0]などのファイル名セクションが得られます.すなわち.pngがsplit(".")に分割される場合、リスト「1」および「png」は最初の要素を使用する必要があるため、[0]である.{0:03 d}には数値を含める必要があるため、intを使用して整数に変換できます.
    拡張子は、x.split(.")[1]の拡張子として文字列""を使用します.分割された2番目の要素を使用します.新しい変数はラムダ式では使用できないため、splitメソッドを使用してファイル名と拡張子セクションを毎回取得する必要があります.
    最後に、出力結果がリスト形式で表示されるため、マッピング部分がリストに囲まれます.

    Unit 34. クラスの操作

  • レビュー問題
  • class Annie:
        def __init__(self, health, mana, ap):
            self.health = health
            self.mana = mana
            self.ap = ap
        
        def tibbers(self):
            print('티버: 피해량', self.ap * 0.65 + 400)
    
    
    health, mana, ap = map(float, input().split())
     
    x = Annie(health=health, mana=mana, ap=ap)
    x.tibbers()

    Unit 35. クラス属性と静的、クラスメソッドの使用

  • レビュー問題
  • class Time:
        def __init__(self, hour, minute, second):
            self.hour = hour
            self.minute = minute
            self.second = second
            
        @classmethod
        def from_string(cls, time_string):
            hour, minute, second = map(int, time_string.split(':'))
            time = cls(hour, minute, second)
            return time
        
        @staticmethod
        def is_time_valid(time_string):
            hour, minute, second = map(int, time_string.split(':'))
            return hour <= 24 and minute <= 59 and second <= 60
    
     
    time_string = input()
     
    if Time.is_time_valid(time_string):
        t = Time.from_string(time_string)
        print(t.hour, t.minute, t.second)
    else:
        print('잘못된 시간 형식입니다.')
    -->これも難しすぎて、
    プール:Timeクラスには、時間、分、秒のインスタンス属性があります.インスタンスを作成するには、Timeに数値を追加できますが、from stringメソッドを使用して文字列形式でインスタンスを作成する必要があります.
    from stringメソッドはTimeです.呼び出しはfrom stringのように行われ、現在のクラスを使用してインスタンスを作成する必要があるため、クラスメソッドとして作成します.したがって、メソッドの上に@classmethodを貼り付け、最初のパラメータにclsを指定し、2番目のパラメータに日付文字列time stringを指定します.メソッドでは、文字列":"を":"に区切ってintに変換し、時間、分、second=map(int、time string.split(":")などの各変数に挿入します.次に、変数をクラスに挿入してtime=cls(時間、分、秒)などのインスタンスを作成します.ここでcls(時間、分、秒)は時間(時間、分、秒)に等しい.次に、インスタンスはreturnを返して外部で使用します.静的メソッドを使用して作成する場合、clsは受け入れられません.したがって、インスタンスを作成する場合は、時間(時間、分、秒)のみが使用されます.
    is time validメソッドもDateです.呼び出しはis time validのように行われますが、文字列の時間が正しいかどうかを確認するだけで、クラスにアクセスする必要はありません.したがって,静的手法である.まずメソッドに@staticmethodを貼り付け、日付文字列time stringを最初のパラメータとして指定します.メソッドでは、文字列":"を":"に区切ってintに変換し、時間、分、second=map(int、time string.split(":")などの各変数に挿入します.次に、24時間未満<=24およびminute<=59およびsecond<=60、24分未満、59分未満、60秒未満の時間を検査し、結果を返します.時間、分、秒が満たされている場合はTrue、満たされていない場合はFalseを返します.