Python~頭とからだで覚えるPythonの基本~【1章】

なんとなくかけるけど基本的なことが抜けていたりするので、根本から学びなおそうと思って

Paul Barry 著

オライリー・ジャパン 2018年刊行


1章 基本

関数はモジュールの中に、

モジュールは標準ライブラリの中にある

編集、コンパイル、リンク、実行という流れの概念はない。インプリンタが自動化してくれる

pythonコードを実行するものをインタプリンタ

IDLEはIDEをさし、インタプリンタで実行する

◆environ属性を使ってシステムの環境変数全体に、またはgetenv関数を使って個別の環境変数にアクセスする

>>>import os

   os.envion

>>>os.getenv(‘HOME’) 

getenvを使って(environに含まれるデータから)特定の名前の属性にアクセスできる

◆datetimeモジュールは標準ライブラリに用意されている

datetime.date.isoformatdatetime.date.today())

・timeモジュール

time.strftime(“%H:%M”)

sikaku

◆Python変数は動的に型付けされる=型をあらかじめ宣言する必要はない

◆in演算子:一方が他方に含まれているか

if rigth_this_time in odds:

◆if構文について

elseifはelifと書く。

if today ==’Saturday’:

  print(“Party!”)

elif today == ‘Sunday’:

  print(‘refresh!’)

else:

  print (“work,work,work”)

◆シーケンスとは…オブジェクトの順序付きコレクション

Pythonのシーケンスはインタプリンタで反復処理できる

for ch in “Hi!”:

  print(ch)

◆反復処理

for:事前に反復回数が分かっているときに最適

while:反復回数がわからないとき

◆for の使用例

1.数値のリストを取り、リストの各数値を反復処理して現在の数値を表示

2.文字列を反復sy利子、反復ごとに文字列内の各文字を処理

3.指定した回数だけ反復処理する(range関数)

 for num in range(5):

print(‘unko!’)

◆実行を一時停止する

import time

time.sleep(5)

インポートするものを明確に指定せずに、モジュールの機能を利用できるようになる

インポートしたモジュールが提供する関数を使うには、ドット表記構文で指定する

◆range関数

range(99, 0, -1)  複数の引数を持たすことができる

ユースケース実践ガイド~効果的なユースケースの書き方~

『ユースケース実践ガイド~効果的なユースケースの書き方~』
アリスター・コーバーン 著
翔泳社 2001年刊行
--------------------------
ユースケースとは:システムの振る舞いに関する利害関係者間の契約を表現するもの
基本的にはテキスト形式で記述する

以下の3つの概念を身に着けて記述していく
・スコープ:実際に議論の対象になっているシステムは何か
・主アクター:目的を持っているのは誰か
・レベル:その目的のレベルはどのくらい高いか低いか

そのほかの定義
・アクター:なんらかのふるまいをする人あるいはもの
・事前条件および保証:ユースケースの実行前および実行後に真でなければならないこと
・主成功シナリオ:すべてがうまくいく場合
・拡張:シナリオの中で異なった動きをする可能性のあるもの
※SuD…議論の対象になっているシステム

スコープの管理について
・ビジョン記述
・設計スコープの図
・In/Outリストを作成する
・アクターの目的リスト

目的レベルについて
・主アクターは本当は何を望んでいるのか?
・このアクターはなぜこれをしているのか?

◆ユースケース実践1 ログインする
 このユースケースは、ユーザーがメンバーズサイトシステムにログインする処理を記述したものである。
イベントフロー:
基本パス:
1.ユーザーがアプリケーションを開始することでユースケースが始まる。
2.システムはログイン画面を表示する。
3.ユーザーはユーザー名とパスワードを入力する。
4.システムはその情報を確認する。
5.システムはメイン画面を表示する。
6.ユーザーは機能を選択する。
7.ユーザーが「終了」を選択するまで以下を繰り返す。loop
8.ifユーザーが「ポイント数を確認する」を選択した場合、「ポイント数を確認する」を使用する。
9.ifユーザーが「カタログを送付する」を選択した場合、「カタログを送付する」を使用する。
10.ifユーザーが「サポートへ連絡する」を選択した場合、「サポートへ連絡する」を使用する。
endif
11.ユーザーは機能を選択する
end loop
12.ユースケースは終了する

◆ユースケース実践2 ウェブ上でポイント数を確認する
事前条件:ユーザーがすでにポイントサイトにログインしていること。
トリガー:ユーザーが「ポイント数の確認」を選択する。
1.ユーザーはブラウザ上でポイント数の確認を選択する。
2.システムが利用しているユーザー情報を受け取る
3.システムは受け取った顧客情報をもとにデータベースから参照する
4.システムはブラウザ上にポイント数を返す
拡張
1a.ウェブ接続時になんらかの障害が起きる:
 1a1.システムはユーザーに障害に関するメッセージを出し、前のステップに戻る
 1a2.ユーザーはユースケースから抜けるか、再試行する。

【完全形式のユースケーステンプレート<名前>】
<動作を示す短い動詞句で目的が分かる名前を付ける>
使用時のコンテキスト:<一般的に起きる条件>
スコープ:<ようやく、ユーザー目的、サブ機能のいずれか>
主アクター:<主アクターのロール名または説明>
利害関係者と利益:<そのユースケースに関する利害関係者と主な利益>
事前条件:<すでにそうなっていると想定している状態>
最低保証:<どのようにユースケースが終了したとしても守られる利益>
成功時保証:<目的が達成されたときの状態>
トリガー:<何がユースケースを開始するか。時間イベントの場合もある>
主成功シナリオ:
<トリガーから目的の達成、事後処理までの仕事成夫のステップを記述>
<ステップ番号><アクション記述>
拡張:
<変更されたステップ><条件>:<アクションまたはサブユースケース>
<変更されたステップ><条件>:<アクションまたはサブユースケース>
技術及びデータのバリエーションリスト:
<結果としてシナリオの分岐が起きるバリエーションを記述>
<ステップ番号またはバリエーション番号><バリエーションのリスト>
関連情報:
<プロジェクトに必要な関連情報を記述>

Goの環境構築~Windows10&ATOM~

①GOのサイト(https://golang.org/dl/)よりmsiファイルのダウンロード
②インストール
 PATHは通さなくても自動でなってた
③動くかどうか確認。コマンドプロンプトで

cd c:\go\bin
go version

これでバージョンが表示されればOK

go get golang.org/x/tools/cmd/goimports
go get github.com/nsf/gocode
go get github.com/rogpeppe/godef

brew install go-delve/delve/delve

【ATOMの設定】

apm install go-plus
apm install godef

LINEと何かを連携してお買い物リストを共有

目的:LINEと何かを連携してTODOリストを作成したい
背景:人と暮らしていると、何かがなくなった時口頭で「●●がないから今度買わなきゃね」って話をするが、
   いざ薬局やらスーパーやら100均に行ったときに「なんだったけ」となることが多い。

   また、この間は「片栗粉買わなきゃね」って話していたら、お互いが片栗粉を買ってきてしまい、
   大量の片栗粉を消費しなければいけない状況にもなってしまった。

   「あれ買わなきゃ」とLINEで残しておいても日々のやりとりがあるので流れていってしまう。LINEのノートはTODOリストみたいな使い方がしずらくて、いまいち。二人の会話の中にチャンネルがあればいいと思った。
   「じゃあSlackする?」と提案してみたが「LINEとslack両方で管理しなければいけないのは面倒くさい」と言われてしまった。だったら、inもoutもできる仕組みを自作すればいいと考えた。

要件:お金はかけない絶対に
   複数のユーザーがLINEから買うものリストの追加・削除・編集ができる

用意したもの:
最初はZaiperを使いたかった。LINE Notifyと何かを連携して通知させればいいのかな?と思ったが、それだとLINEからの投稿とか削除ができない?と思われた。
メモがてら残す:ZapierにLINE Notifyを対応してみた

なので、LINEのMessageing APIを使ってみることにした。
まあこういう場合は先駆者がいて

Linux コマンド備忘録(Debian)

■現行バージョンの確認
cat /etc/debian_version

■ユーザーを切り替える
su XXXXX

■ユーザーの削除
userdel XXXXX

■プロセスがなんなのか確認
ps -f 662

■プロセスの終了
kill -kill 662

■作業ディレクトリの確認
pwd

 

--------------------------
■Vimの終了
□保存しないでvimを抜ける :q!
□保存してvimを抜ける :wq

【CentOS6】さくらVPS初期設定について

参考:【さくらのVPS】サーバの初期設定ガイド

OS:CentOS7 x86_64
★標準OSはCentOS6なので、公式サイトのsshdの手順の部分が異なる。

1.一般ユーザーの追加、パスワードの設定
useradd XXXX(ユーザー名)
passwd XXXX(ユーザー名)

2.sudoユーザーへの追加
usermod -G wheel XXXX(ユーザー名)

これで一般ユーザーでもsudoを付ければshutdownが可能になる。