Pythonエンジニア認定試験にチャレンジ!

Pythonの資格は経済産業省が定めるガイドライン「ITスキル標準(ITSS)」に記載の下記2つ
・「Python 3 エンジニア認定基礎試験」
・「Python 3 エンジニア認定データ分析試験」
がありますが、2022年11月29日から上位試験として位置付けとして
・「Python 3 エンジニア認定実践試験」
が追加されています。
受験宣言するとPythonの教科書本がもらえるようです。(応募は2023年3月末日まで)
Python 3 エンジニア認定基礎試験は以前に取得済みなので
2023年4月末までにPython3エンジニア認定実践試験を受験してみようと思います。

2023/2/21 追記
本日、技術評論社「Python実践レシピ 」(実践試験主教材)の本が無料で届きました。
一般社団法人Pythonエンジニア育成推進協会様、ありがとうございます。
この本、ぱっと見た感じで思ってたより内容が多く19章までで473ページほどありました。
その中から試験範囲に絞ると15章分で293ページほどでした。
とりあえず1日20ページ、3週間くらいを目標に一度読んでみようと思います。

2023/4/6 追記
その後、模擬試験アプリを初級、中級、上級と何回か実施してみた。
https://python-basic.com/#panel-menu02
問題が毎回同じなのでなんとなく解けてる感じになったが、
同じ問題は出ないだろうし、問題も少ないので、全然やばそうなので、もう一度「Python実践レシピ 」に目を通すことにした。
読み終えるとこのままではさらに厳しいのではないかと思ったので、
次は章ごとに順番に実際に入力して動かしてみようと思う。

2023/5/6 追記
一通り入力して動かしてみたが全部覚えるのはなかなか難しく、どんな問題が出るか分からないのでとりあえず書き起こして目標の4月末まで何度も見直してみた。その後、再度、模擬試験アプリを初級、中級、上級を実施してみると思ったより難しく、前回はよくわかってなかっただと分かり、これはやばいと思いはじめたが、とりあえず目標の4月末になったので試験の申し込みをしてみようと思って調べてみると、GWで会場が少なく予約できなさそうだったのと、まだ少し勉強が足りないと感じたので1週間ほど後の5/6に受験の予約をした。(宣言より1週間ほど受験が遅れてしまい、すいません。)
そして、1週間ほど復習する期間をおいて本日、受験し、ギリギリでしたが見事に合格することができました。
ありがとうございました!!

Python試験(Python資格)




Java SE 11 Programmer I (1Z0-815-JPN) 試験ポイント

・main 引数String[]とString…は同じ
・Java11からJREは配布せずJDK
・Javaファイルの実行はclassが存在するとできない
・staticメソッドでthisは使えない
・プリミティブ型との参照型ラッパークラス(int→Integer)
・リテラル、0b(2進数)、0(8進数)、0x(16進数)
・アンダースコアつきリテラル(見た目だけコンパイルで外れる)
・LocalVariableTypeInterface推論型(ローカル変数だけ右辺で判断、なので初期化子やnullやラムダには使えない、キーワードではないので変数名にvar var = 1は使える)
・StringBuilderとStringのreplaceは少し違う、StringBuilderは開始終了位置の内容を全部書き換え
・x | y(論理和)論理演算
・ArrayIndexOutOfBoundsException
・ループのcontinueとcaseのbreak
・staticメソッドからインスタンス変数やインスタンスメソッドにアクセスできないコンパイルエラー
・カプセル化(getter/setter)
・public > protected > なし(packege private) > private
・サブクラスのコンストラクタでスーパーのコンストラクタを呼び出してない場合は自動でsuper()を呼び出す
・キャスト>オートボクシング(型が近いものから順)
・インターフェースで定義されている変数は定数(public static final)
・インターフェースで定義されているメソッドはpublic abstract(オーバーライドしない場合はそのクラスはabstractで宣言)
・abstractクラスにabstractメソッドはあってもなくてもいいが、abstractメソッドがある場合はabstractクラスにしかなれない
・チェック例外(検査例外)Exception例外処理必要、非チェック例外(非検査例外)RuntimeExceptionなど例外処理はどちらでもいい(NullPointerException)、エラークラス(OutOfMemory)
・try-with-resources
・catchはサブクラスから記述する、到達できないcatchブロックがある場合はコンパイルエラー
・multi-catch(} catch(例外1 | 例外2)継承関係があると不到達が発生するのでないもののみ
・ラムダ式(StreamAPI)
・replaceAll(関数型インターフェースUnaryOperator)、removeIf(関数型インターフェースPredicate)、forEach(関数型インターフェースConsumer)
・モジュールシステム(Jigsaw)

Java SE 11 Programmer I (1Z0-815-JPN) 試験用のメモ

<1章>
・package宣言、Public
・java.langパッケージ
・Java –source 11
・ソースファイルモードではclass名<>ファイル名でも可
<2章>
・_はリテラルの先頭と末尾、記号の前後は×
・char ‘a’、’\u30A2’、65
・var は右辺からコンパイル時に推論、未初期化やnullやラムダ式や初期化子はエラー、ローカルしか使えない
・replace()でも全部、replaceAll()は正規表現を使いたい場合
・StringBuilderは16文字分バッファ
<3章>
・大きな範囲の値を小さな変数に代入するにはcastが必要、型が異なる計算では小さいほうの型は大きいほうの型に自動変換される
・同一(==)、同値
・コンスタントプール(==)、intern
・中括弧は省略可
・caseはlong、double、float、booleanは使えない、nullはだめ、定数かコンパイル時に値が決まること
<4章>
・whileやdo-whileは中括弧を省略できるが対象は1つの文だけしかだめ
・for(初期化文;条件文;更新文)、初期化文は同じ型なら複数可、更新文も複数可
<5章>
・配列のインスタンス生成時は整数のint型で要素数の指定が必要、2次元の場合に1次元目は省略できない、生成と同時は初期化子を使用する、[]と{}を使用する場合は[]に要素数は指定できない
<6章>
・staticからstaticでないフィールドやメソッドにはアクセスできない
・64ビットの浮動小数点doubleと32ビットの浮動小数点floatは互換性がある
・可変長引数は最後の引数のみ、型の後ろに…をつける
・オーバーロードでdoubleとintのように暗黙の型変換の曖昧な場合はコンパイルエラー、アクセス修飾子が異なってるだけだとオーバーロードにはならない
・コンストラクタを1つも定義しなかった場合はデフォルトのコンストラクタが生成される
・初期化子でコンストラクタが実行される前の前処理を書ける
・staticクラス変数は初期化子やコンストラクタでもインスタンス化の前に初期化できない、その場合はstatic初期化子を使う
・thisはオーバーロードされた別のコンストラクタを呼び出す時とインスタンスそのものを表す2つがある
・コンストラクタからオーバーロードされた別のコンストラクタを呼び出すにはthisを使うが最初に記述する必要がある
・publicすべてのクラス、protected同じパッケージか継承しているサブクラスから、なし(デフォルト)同じパッケージのクラス、privateクラス内のみ
<7章>
・インターフェースはpublicとなる、クラスの多重継承はだめ、インターフェースは可能、メソッド{}は記述できない、final、staticのフィールドは可
・default修飾子でインターフェースに実装を書ける、publicとなる
・java.lang.Objectクラスのメソッドをインターフェースでオーバーライドするとコンパイルエラー
・多重継承で同じメソッドの場合はどちらかを指定しないとエラーなる
・オーバーライドは共変戻り値(同じ型かそのサブクラスなら可)NumberのサブクラスのIntegerは可、アクセス修飾子は同じかより緩いもの
<8章>
・ラムダ式ではデータ型は関数型インターフェースの型から推論できるのでデータ型は省略可、引数を受け取らない場合は変数も省略可
・関数型インターフェースの型 変数名 = (引数) -> {処理};だが引数が1つの場合は()も省略可、実行したい処理も1つの場合は{}も省略可、{}があればreturnは必要、なければ書けない
・メソッド内のローカル変数と同じ名前のラムダ式引数は使えない
・ラムダ式外の変数を使用する場合、その変数は変更してはいけない(実質的にfinal)
・Consumer、Supplier、Predicate、Function
<9章>
・pow累乗、sqrt平方根
・Comparator xy→-1
・プリミティブ型に対応したクラスint→Integer、double→Double、boolean→Boolean
・javatime.LocalDateは1から始まり不変なオブジェクト(変更しようとしても新しいインスタンスで元のは変わらない)、日付指定はofメソッド、現在日付はnowメソッド
・Arraylistはnull、重複可でスレッドセーフではないコレクション(java.util.Vectorはスレッドセーフ)、他のスレッドがremoveするとConcurrentModificationException
・Arraylistで固定長のリストを作成するのはasListメソッドやofメソッド、増減しようとするとUnsupportedOperationException
・ラムダ(str) -> System.out.println(str)、forEach.Main::test;(クラス名/インスタンス名::括弧不要のメソッド名)
<10章>
・try-catch-finally順番は変えたり到達しないものがあったりtryやfinallyが複数あればエラー、finallyは例外の発生有無やcatchのreturnにかかわらず必ず実行
・try-with-resourcesはリソースの開放、catch、finallyの順
・エラーError(OutOfMemoryError、NoClassFoundError、StackOverflowError)、例外(検査例外Exceptionと非検査例外RuntimeException)、非検査例外はtry-catchやthrows句はなくてもよい
<11章>
・モジュールシステム(どのパッケージを公開するか、ほかのどのモジュールを使うか)module-info.java
・javac -d クラスファイルの出力先ディレクトリ コンパイルするファイルのパス
・java –module-path モジュールのルートディレクトリ(モジュールよりも1つ上のディレクトリ) -m 実行したいモジュールのクラス(モジュール名/実行したいクラスの完全修飾クラス名、jarの場合モジュール名)
・jar –create –file=jarファイル名 main-class=エントリーポイントを持つクラス -C jarファイルに含めるファイルがあるディレクトリ
・javacコマンドで利用するmodule-info.javaでexportsで公開するパッケージ名(記述しなければ非公開)、他のモジュールで利用する場合requiresでモジュール名
・必要とするモジュールを伝搬させるrequiresにtransitiveをつける
・プラットフォームモジュールjava.baseモジュールはrequiresをつけなくても自動的に読み込まれる(java.lang、java.util、java.ioは標準クラスライブラリ)
・module-info.java以外でモジュールの情報確認はjavaコマンドの–describe-moduleオプションかjmodコマンドのdescribeモード
・javaコマンドの–show-module-resolutionオプションでプログラム実行時に依存するモジュールがどのように探されているかを表示
・jdepsコマンドはクラスやメソッド、JARファイル、モジュールの依存関係を調べる
・javacコマンドの–add-exportsオプション(対象のモジュール/公開するパッケージ=利用するモジュール)で緊急避難用にパッケージ公開できる

JavaScriptのドット記法とブラケット記法

const fruit = {‘name’ : ‘りんご’, ‘price’ : ‘100’}

ドット記法
.(ドット)を使ってプロパティにアクセスする。
fruit.name = ‘みかん’;

ブラケット記法
[](ブラケット)を使ってプロパティにアクセスする。
fruit[‘price’] = ‘150’;

const fruit = {‘name’ : ‘みかん’, ‘price’ : ‘150’}

Windows11を少し古いパソコンにもインストールする方法

Windows11がリリースされたがシステム要件が高く、新しいパソコンだにしかインストールできないが、少し古いパソコンでも簡単にインストールする方法がある。
(正式な方法ではないので自己責任で)
1.Windows 11 ディスク イメージ (ISO) をダウンロードする
https://www.microsoft.com/ja-jp/software-download/windows11
2.7-ZipでダウンロードしたISOを展開する
https://sevenzip.osdn.jp/
3.展開したフォルダのappraiserres.dllを削除する
Win11_Japanese_x64\sources\appraiserres.dll
4.展開したフォルダのsetup.exeをクリックする
「セットアップでの更新プログラムのダウンロード方法の変更」をクリック
「今は実行しない」を選択
「インストール」をクリック

日本語入力ON/OFFキーを割当てて快適にする

右下のIMEを右クリックしてプロパティを選択
詳細設定を選択
全般タブの編集操作のキー設定の変更を選択
無変換の入力/変換済み文字なしを選択して変更を選択
IME-オフを選択してOKを選択
変換の入力/変換済み文字なしを選択して変更を選択
IME-オンを選択してOKを選択
直接入力モードを使用しないのチェックを外す
これで無変換ボタン押下でIMEオフ
変換ボタン押下でIMEオン
となる