ジャン(斎藤末広)ブログ 

日常の話題は,facebook に書き込みしてます。

はてなグループ,継続してほしい。

かなりディープに使ってます。

J塾,TOEIC☆塾グループ関連で,キーワード登録で,1万

語彙を超えているかと思います。

自力で,これだけの機能を作るのは,たいへん。
はてなもメリットある方法で,ぜひ,継続希望。

TOEICに出題されそうな単語の語源解説では,日本一の量です。

http://jjuku.g.hatena.ne.jp/

http://jjuku.g.hatena.ne.jp/

自然派ママ友「レンジは電磁波で変質させるから悪影響がある」→ガチ理系の夫が丁寧に反論「これは惚れ直す案件」「聞いてて気持ちいい!」

https://togetter.com/li/1343279

で,自然ママ叩きが酷い。

電子レンジの害については,こちらが,ただしそう。
https://kosodate-bu.com/health/hukushima-radiater/microwave/

オーバーライドの間違い

本日のメルマガ「宿題メール」から

オーバーライドの間違い

 オブジェクト指向プログラミングにおける,多相性を実現するためのオーバーライド の説明はどれか。

   ア オブジェクト内の詳細な仕様や構造を外部から隠蔽すること

 イ スーパークラスで定義されたメソッドをサブクラスで再定義すること

 ウ 同一クラス内に,メソッド名が同一で,引数の型,個数,並び順が異なる複数のメソッドを定義すること

 エ 複数のクラスの共通する性質をまとめて,抽象化したクラスを作ること

■キーワード■  

■解答■

  基本情報技術者午前平成29年秋問07

   イ スーパークラスで定義されたメソッドをサブクラスで再定義すること

 

 > オーバーライド
> 【英】override
> オーバーライドとは、スーパクラスから継承されたサブクラスにおいて、メンバ関数を独自の機能で上書きすることである。オーバーライドは、オブジェクト指向における多態性(多様性、ポリモーフィズム)の例 である。なお、オーバーライドを可能にするには、引数の型、および、引数の数が同じでなければならない。ちなみに、類似の用語にオーバーロードがあるが、これは同一クラス内で引数の内容が違うものであり、オーバーライドとは異なるものである。
>https://www.weblio.jp/content/%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89

   どうもありがとうございます。

 > オーバーライドを可能にするには、引数の型、および、引数の数が同じでなければならない。

  は,間違いです。これは,Java の例です。他の言語では違う場合があります。Python では,名前がいっしょなら,オーバーライドします。   なお,解答の

> イ スーパークラスで定義されたメソッドをサブクラスで再定義すること

も,正確にいうと間違いです。再定義ではなく,再実装です。定義は,親クラスのものをそのまま使います。そうしないと,オーバーライドとはいいいません。

2019-02-創刊号 変数の型

www.mag2.com

訂正

サンプルソース

a = (1, 2, 3, 2, 1) #リスト,変更不可配列

a = (1, 2, 3, 2, 1) #タプル,変更不可配列

 

以下は,訂正済み

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Python で合格,基本情報技術者試験        .&&&& **** %%%%. ┃
┃                         &&&&&&******%%%%%% ┃
┃ 発行 斎藤末広 suehiro3721p@gmail.com @は半角 '&┃&''*┃*''%┃%' ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━┻━━┻━━┛

========================================================================

 2019年2月2日 創刊号

 変数の型

========================================================================
Python を動かす 無料の JupyterLab を使う

 Python を学習用にさっと使うなら,今は,JupyterLab(ジュピターラボ)を使う
のが簡単です。インストールして使うこともできますが,学習用のためであれば,
Web で無料に公開してあるところを使えば十分です。

 Google をはじめいろいろなところが,お試しを公開しています

 現在は,Jupyter を公開しているサイトから無料で試せるところと紹介されて
いる,mybinder.org を利用するのがいいでしょう。

 以下の短縮 URL https://goo.gl/AFCsU7
 https://mybinder.org/v2/gh/jupyterlab/jupyterlab-demo/master?urlpath=lab%2Ftree%2Fdemo

 もし,上記アクセス先が移動していたら,Jupyter.org から,「Try it」,を
選ぶとその時点の公式サイトのオススメの無料サイトに飛べます。

========================================================================
セルにコード入れて,Shift+Enter

 JupyterLab は,Python の対話型実行環境です。Python を対話型で実行する
IPython を利用し,Jupyter Notebook というウェブ実行環境を改良されてできた
ものです。今後は,JupyterLab,Jupyter Notebook を Jupyter と省略します。

 JupyterLab から,Notebook に分類してある,Python 3 を選んで起動します。

 画面の右肩で,Python 3 ○ と表示されておれば,Python が動作します。
mybinder.org で動作させる場合,数分,操作がないと,処理系が止まり
ます。さらに,時間が立つと,作業フォルダが削除されます。
 
 画面の右肩が,「Python 3 ○」が「No Kernel!」とあれば,処理系が
止まっています。作業フォルダが残っている段階であれば,この「No Kernel!」
の表示をクリックして,Python 3 を再起動します。

 作業フォルダが削除された場合は,URL へ再接続して,作業フォルダを
再作成してください。

 なお,プログラムは,保管されません。自分でどこかにコピー&貼り付けして
おきます。

 では,さっそく,動かしてみましょう。

以下の初期化&動作テスト確認プログラムを実行します。

#Sympy 初期化プログラム Ver 1.10 2019/01/16
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
from sympy.plotting import *
from sympy.stats import *
from sympy.ntheory import *
%matplotlib inline
var("a:z") # a から z までの一文字変数は,記号変数とする
rt = sqrt
init_printing()
Integral(x**2+x, x), rt(2)

 長細い四角の枠を,セルといいます。このコードをセルに貼り付けして,Shift+Enter
で,実行してみてください。

 積分記号が表示されたら,成功です。

========================================================================
Python 入門 その1 変数の型

 Python では,変数とその型は,インスタンスとクラスの形となります。

 Python の変数(インスタンス)の基本な型(クラス)は,次の5つです。

-真偽型,例:True, False
-整数型,有効桁数は自動可変
-浮動小数点型,倍精度のみ
-複素数型,例: 3 + 2j (i は,j と書く)
-文字列型

です。これらを要素して

コレクション系
-配列(変更可能かいなかで次の2種類)
--リスト型(他言語の配列に相当,変更可能)
--タプル型(変更不可能な配列)
-集合型
-辞書型(他言語では,キャシュ,連想配列,マップとも呼ばれているも)

があります。

 以上が,インポートの指定なしに使える型です。

 さらに,外部モジュールからインポートすれば,多様な型があります。

以下のソースを,動作させて確かめてください。

長方形のセルに貼り付け,Shift+Enter で実行できます。

#基本の型
a = (1==1) #真偽型
print(type(a), a)

a = 1000000000000000000000000000 + 2 # 整数型
print(type(a), a)

a = 0.1234567890123456789e100 # 浮動小数点型
print(type(a), a)

a = 3 + 4j # 虚数
print(type(a), a)

a = "ABC" # 文字列型
print(type(a), a)

#配列,コレクション系
a = [1, 2, 3, 2, 1] #リスト,変更可能配列
print(type(a), a)

a = (1, 2, 3, 2, 1) #タプル,変更不可配列
print(type(a), a)

a = {1, 2, 3, 2, 1} #集合
print(type(a), a)

a = {"apple":"りんご", "peach":"桃", "banana":"バナナ"} #辞書
print(type(a), a)

#import で好きなように拡張

import decimal # 10進数演算
a = decimal.Decimal(1) / decimal.Decimal(3)
b = 1/3 #通常の浮動小数点型
print(type(a), a)
print(type(b), b)

import fractions # 分数表記用
a = fractions.Fraction(2, 5)
b = 2/5 #通常の浮動小数点型
print(type(a), a)
print(type(b), b)

import numpy # 高速演算用整数配列
a = numpy.asarray([1, 2, 3], dtype=numpy.int32)
print(type(a), a)

import sympy # 数式表記用
x = sympy.Symbol('x')
a = 2*x + 3*x
print(type(a), a)

========================================================================
ぜひ,以下をご返信して,ご意見をおきかせください。
返信すると,suehiro3721p@gmail.com @は半角 に送られます。

感想


質問


扱ってほしいテーマ

 

 

テスト

はてなダイアリーが2019年春に終了とのこと
はてなダイアリーからはてなブログに過去の分だけでも移行しておかなくてはね。

以下,終了の案内

2019年春「はてなダイアリー」終了のお知らせと「はてなブログ」への移行のお願い - はてなダイアリー日記

 

はてなグループをかなり使い込んでいるので,はてなグループが今後どうなるか,気になります。