python

PythonStudyNote

タグ: 

  • このトピックには6件の返信、1人の参加者があり、最後に管理人により1ヶ月前に更新されました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #650
    管理人
    キーマスター

    クラス models でデータを扱うクラスというもの
    出てくるキーワード class データの型 def
    pythonでクラスとは
    クラスとは、オブジェクトを生成する“型”  オブジェクトというのは 変数や関数を、ひとまとまりにしたもの。
    上手い例え 車というオブジェクト 変数タイヤ ボディ エンジン ハンドル 関数タイヤの状態の取得やブレーキという操作 ドアが開いているかどうかのチェックや警告 エンジンの制御 ハンドルの入力にあわせたタイヤの操作
    ということはクラスとは変数や関数をひとかたまりにした型ということになります つまりクラスという変数や関数を使った型でデータを扱える 表出されるデータがインスタンスというのかな
    クラス関数はメソッドと呼ばれます

    このクラス(型)からインスタンスを生成し、処理を行います。 
     ここでインスタンスとは インスタンスとは、型となるクラスを元に生成した実体
     クラスは設計図、インスタンスは設計図から作られた物
     実際の処理では、インスタンスを生成する事によってそのクラス内の処理を実行できるようになります。
     例は後述

    では実際にクラスの作り方“class”キーワードの後に任意のクラス名を書きその下にメソッドや変数を書く
    class className(): #キーワードクラスとクラス名
    def myprint(self): #関数はじまるよキーワードdefと関数名(任意)myprint(関数呼び出し)とパラメーターリストself(selfはインスタンス自身)「仮引数」(その関数が受け取る値のリスト)別のとこにパラメーター(実引数)があると渡される
    print(“Hello World!”) #関数で行う処理キーワードprint(引数に受け取ったものを画面などに出力する)と関数ボディ関数本体

    メソッド(クラスの関数)は、クラスと同じ要領で”def”キーワードの後に任意のメソッド名を入れ、そこに引数を与えます。
    引数とは処理をする上で必須となる、メソッドやクラスに引き渡す値 何らかの値を渡すと、その値に応じた何らかの値を返すもの
    Pythonでは、関数は「def文」を使って定義する。「関数の定義」とは「関数の名前、その関数を実行するのに必要なデータが何か、実際に実行するコードがどんなものかをPythonに伝えること」

    #659
    管理人
    キーマスター

    コンストラクタとは、オブジェクトが生成される時に実行されるメソッド(関数)のことです。オブジェクトが扱う変数などの初期化を主に行います。オブジェクトはクラスをもとに生成されます。
    オブジェクト指向のプログラミング言語新たなオブジェクトを生成する際に呼び出されて内容の初期化などを行なう関数、メソッドのことである。
    設計書をもとにプログラム内で実際に使うためには、実体化(インスタンス化)が必要となります。
    コンストラクタの名前は「__init__」に決まっています。名前の前後に「__」が付いているメソッドは「特殊メソッド」と呼ばれます。コンストラクタは特殊メソッドの1つです。
    コンストラクタで「name」を指定することで、オブジェクト変数「self.name」を初期化しています。オブジェクト変数がコンストラクタで明示
    猫 tora は2つの「値」を持っています。 猫 tora は、名前 name があり、とら と言います。 猫 tora は、動物として分類 family されていて、猫 科に属します。
    猫 tora は2つの「処理」を行うことができます。 猫 tora は、鳴く say することができます、にゃー と。 猫 tora は、唸る growl することができます、ウー と。
    猫 tora は、動物として分類 family されています。 みな鳴くこと say ができますし、唸ることもできます growl。

    class Cat:
    family = ‘猫’

    def say(self):
    print(‘にゃー’)

    def growl(self):
    print(‘ウー’)

    tora = Cat()
    tora.family
    tora.say()
    tora.growl()

    >>> tora.family
    ‘猫’
    >>> tora.say()
    にゃー
    >>> tora.growl()
    ウー

    インスタンス化する時に名前をつけたいです。 インスタンス化する時に __init__ が、自動的に呼び出されるのでこれを使います。

    class Cat:
    family = ‘猫’

    def say(self):
    print(‘にゃー’)

    def growl(self):
    print(‘ウー’)

    def __init__(self):
    # 1. 第一引数 self には名前のない猫オブジェクトが
    # 自動的に代入されています。
    self.name = ‘とら’

    # 2. self は return しない
    # return self

    tora = Cat()
    tora.name
    >>> tora.name
    とら
    >>>

    #682
    管理人
    キーマスター

    class Cat:
    family = ‘猫’

    def say(self):
    print(‘にゃー’)

    def growl(self):
    print(‘ウー’)

    def __init__(self, name): # <--- __init__ の引数は2つ self.name = name tama = Cat('たま') # <--- インスタンス化の引数は1つ tama.name dora = Cat('ドラえもん') dora.name >>> tama = Cat(‘たま’)
    >>> tama.name
    ‘たま’
    >>> dora = Cat(‘ドラえもん’)
    >>> dora.name
    ‘ドラえもん’
    self をつけて後からから確認することができる変数を インスタンス変数 と言います。

    self をつけず後から確認することができない変数を ローカル変数 と言います。

    class Cat:
    def __init__(self, name):
    # インスタンス変数
    # そこで名前をつけてあげる。
    # その時、必ず self をつけないといけません。
    self.name = name

    # ローカル変数
    # self をつけない変数は参照できません。
    age = 0

    dora = Cat(‘ドラえもん’)
    dora.name
    dora.age # <--- AttributeError になります >>> dora = Cat()
    >>> dora.name
    ‘ドラえもん’
    >>> dora.age
    Traceback (most recent call last):
    File ““, line 1, in
    AttributeError: ‘Cat’ object has no attribute ‘age’
    >>>

    関数とは違い自動的に、self にインスタンスが代入される
    関数とは違い自動的に、インスタンス化した時に呼び出される
    関数とは違い自動的に、return していないのに self が返される

    IndentationError: expected an indented block
    インデント(行頭に空白で字下げすること)がない。。。
    ちゃんとインデント入れて!!!!!!!!!!

    インデントとは、行頭に空白を入れて文字を入れて字下げを行う事を言います。
    pythonにおけるインデントは非常に重要です。
    なぜなら、pythonは同じ数の空白でインデントされたまとまりを一つのブロックと認識する為です。

    NameError: name ‘name’ is not defined
    NameErrorは日本語にすると名前のエラー。つまり、変数の名前に関するエラーです。
    name ‘xxx’ is not definedの意味は、xxxという名前の変数が定義されていませんという意味です。

    #683
    管理人
    キーマスター

    変数とは、文字や数値、計算式を自分の好きなキーワードに記録できる機能

    import requests

    bf = requests.get(‘https://api.bitflyer.jp/v1/ticker/?product_code=BTC_JPY&#8217😉
    bb = requests.get(‘https://www.btcbox.co.jp/api/v1/ticker/&#8217😉

    print(‘【国内主要取引所の現在のビットコイン価格】’)
    print(‘bitFlyer ‘ , bf.json()[‘ltp’] , ‘円/BTC’)
    print(‘BTCBOX ‘ , bb.json()[‘last’] , ‘円/BTC\n’)

    bf_e = bf.json()[‘ltp’]
    bb_e = bb.json()[‘last’]
    average_price = (bf_e + bb_e)/2

    print(‘【国内取引所の平均価格】\n’ , average_price , ‘円/BTC\n’)

    bf_v = bf.json()[‘volume’]
    bb_v = bb.json()[‘vol’]
    average_volume = (bf_v + bb_v)/2
    print(‘【国内取引所の平均出来高】\n’ , average_volume , ‘BTC’)

    実行すると
    【国内主要取引所の現在のビットコイン価格】
    bitFlyer 858839.0 円/BTC
    BTCBOX 859538 円/BTC

    【国内取引所の平均価格】
    859188.5 円/BTC

    【国内取引所の平均出来高】
    41201.43409219 BTC

    すげー

    #684
    管理人
    キーマスター

    python for文
    for 変数 in オブジェクト:
    実行する処理
    pythonのfor文では、変数の後ろに「in」が付くことと、オブジェクトの後ろに「:」が付くことに注意しましょう。

    >>> words = [‘Japanese’, ‘English’, ‘French’] #オブジェクトwords 配列j e f
    >>> for w in words: #変数w に オブジェクト配列要素を繰り返し処理 j代入 2番めe代入 という処理
    … print (w)

    Japanese
    English
    French

    5回繰り返すfor文
    >>> for num in range(5): #「range(5)」と記述することで、変数numに0から4までの数字が繰り返し代入されていくということ
    … print(num)

    0
    1
    2
    3
    4
    >>>

    「range(5, 10)」と記述することで、5から9までの範囲を指定
    range(0, 10, 3)の3は、増加量を表しています。つまり、0以上10未満の数字の中で、3ずつ増加するということなので、「0・3・6・9」が出力

    #702
    管理人
    キーマスター

    bool型
    どのプログラミング言語でも真偽を判定するためのブール型(bool・boolean)は用意されています。
    ブーリアン型(ブーリアンがた、英: Boolean datatype)は、真理値の「真 = true」と「偽 = false」という2値をとるデータ型である。
    真偽値は真(True)と偽(Flase)の二種類が用意されています。条件式や論理演算で確認するときなどに、
    条件式の結果が真(True)なら処理を実施する
    条件式の結果が偽(Flase)なら実施しない のような使われ方をします。

    ターミナルでpython3
    比較演算子とbool型
    >>> x = 100
    >>> y = 200
    >>> b1 = x < y >>> print(b1)
    True
    >>> b2 = y < x >>> print(b2)
    False

    式とprintは行変えてるけど送信すると一行になっちゃうな
    この例はわかりやすいけど

    • この返信は1ヶ月前に管理人が編集しました。
    • この返信は1ヶ月前に管理人が編集しました。
    #705
    管理人
    キーマスター

    filter
    リストのようなものから条件にあった要素のみを取り出す 抽出(スクリーニング)
    逆に、条件を満たさない要素のみを抽出したい場合は、itertools.filterfalse()
    Pythonに実装されたfilter関数は、与えられた条件がTrueである要素のみを取り出してくれます。
    filterに渡す「条件」が関数なので、一般に高階関数と呼ばれている機能
    関数を受け取る関数か返り値として関数を返す関数の事を指します。
    普通、関数の引数には何かしらの値を持ったオブジェクトを渡しますね。しかし中には関数を受け取る関数もあるんです!
    数字のリストから偶数の数字のみを取り出す操作例
    まずは偶数を評価する関数

    def even_evaluator(x:int)->bool:
    … return x % 2 ==0

    >>> print(even_evaluator(18))
    True
    >>> print(even_evaluator(91))
    False

    よしよし 続きはあるよ

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • このトピックに返信するにはログインが必要です。