demo32.pyのプログラム

demo32のプログラム

– 他の「demoxx.html」プログラムは省略します。
– 後日機会があったら当ブログに載せます。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo32.py sessin managed & username get
from flask import Flask, redirect, request, render_template, url_for, session

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo07.html')

@app.route('/program', methods=['GET', 'POST'])
def program():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo03.html')

@app.route('/program1', methods=['GET', 'POST'])
def program1():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo04.html')

@app.route('/program2', methods=['GET', 'POST'])
def program2():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo05.html')

@app.route('/param/<parameter>')
def show_user_profile(parameter):
    if 'username' in session:
        html = render_template('demo07.html',name = str(parameter))        
        return html
    return 'You are not logged in. from param processing'

@app.route('/reset', methods=['GET', 'POST'])
def reset():
    session['username'] = 'monkey'
    return render_template('check31.html')

@app.route('/')
def func():
    if 'username' in session:
        html = render_template('demo07.html',name = str(session['username']))        
        return html
    return 'You are not logged in'

@app.route('/check', methods=['GET', 'POST'])
def check():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('func'))
    return render_template('check31.html')

@app.route('/',methods=['POST'])
def index():

    if (request.form['attr'] == 'need'):

        success = False
        name = request.form["username"]
        passwd = request.form["pass"]
        att1 = request.form['attr']
        my_message = "keyword処理は?"
    else:
        con1 = request.arg.get('_ControlID')
        pg1 = int(request.arg.get('_PageID'))
        act1 = request.arg.get('_ActionID')
        flg1 = request.arg.get('getFlg')
        html = render_template('demo07.html', con = con1, pg = str(pg1), act = act1, flg = flg1)        
        return html

    user_data = [{"id":"カリフラワー", "pass":"hanakyabetsu"},{"id":"西行法師", "pass":"masako"},{"id":"monkey", "pass":"kayochan"},{"id":"program1", "pass":"pass1"}]

    for i in range(0, 10):
        if user_data[i]["id"] == name:
            if user_data[i]["pass"] == passwd:
                success = True
                session['username'] = name
                return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
            else:
                continue
        else:
            continue
    success = False
    return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('func'))

app.secret_key = 'B0Qp89i/2xY F~XHH!jnVVLWX/,%QR'

if __name__ == '__main__':
    app.run(debug=True)

– 以上セッション処理プログラムでした。

↑人気ブログランキングに参加しています。ポチっと1票を!

Coursera machine Learningに参加してみた

Coursera machine Learningに参加してみた

次のような理由でコースを途中でQuitした。
まだ、様々な基本知識の欠落がある。
オブジェクト指向言語を学習中。
5ヶ年計画で目標はAIのリテラシーが分かればよい。
でもコースのカリキュラムが知りたい。
そこでこのコースの章立てを紹介する。

Coursera machine Learning(スタンフォード大学)
講師:Andrew Ng
******************************************************
Introduction
Test
Linear Regression with One Variable
Test
Linear Algebra Review
Test
Linear Regression with Multiple Variables
Test
Octave/Matlab Tutorial
Test
Programming
Logistic Regression
Test
Regularization
Test
Neural Networks:Representation
Test
Programming
Multi-Class Classification and Neural Networks
Test
Programming
Advice for Applying machine Learning
Test
Programming
Regularized Linear Regression and Bias/Variance
Test
Support Vector Machines
test
Programming
Unsupervised Learning
Test
Dimensionality Reduction
Test
Programming K-means Clustering and PCA
Anomaly Detection
Test
Recommender Systems
Test
Programming
Large Scale Machine Learning
Test
Application Example:Photo OCR
Test
**************************************************
Testは80%以上で次に進める。
ProgrammingはOctave。
基本、数学は80%以上で先に進めたがそれ以降は途中でQuitした。(実力不足)

これで5年かけて徐々に計画を進めるとの方針が再び決まった。

話は変わりますが、クラウドを勉強するうえでQiitaで有用な記事を見つけたので将来ブログにアップしたいと思っています。
CNCFとは
CNCFは2015年7月に発表され、約50社が集まり2016年1月に正式発足した。最初の発表から4年後2019年11月のメンバーは約500団体で、大手クラウド事業者、ミドルウェア企業、ハードウェア製造企業、オープンソース・ソフトウェア企業、大学、その他非営利団体などが加入している。

(写真はY.O.氏から借用)

↑人気ブログランキングに参加しています。よろしければ1票を!

WP SyntaxHighlighterを使ったPython Programの例

WP SyntaxHighlighterを使ったPython Programの例

WordPressでSyntaxHighlightができるようになった。
Python ProgramのClassの例である。
これでテキストをコピペできるようになったが、その代わりHydrogenの結果などを表現できなくなった。長短相半ばするといったところか。今後は場合によって両者を使い分けることとする。

class Fish:
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = name
        self.build = build
        self.eyelids = eyelids

    def swim(self):
        print("こちらの魚は泳ぎます")

    def swim_back(self):
        print("こちらの魚は後ろ向きにも泳ぎます")

class Medaka(Fish):
    pass

#mach1
mach = 1225
topspeed = 40000
print(topspeed / mach)

no0 = Fish("魚1号(親クラス)")
print(no0.name)
print('骨格:',no0.build)
print('まぶた:',no0.eyelids)
no0.swim()
no0.swim_back()

no1 = Medaka("魚2号(子クラス)")
print(no1.name)
print('骨格:',no1.build)
print('まぶた:',no1.eyelids)
no1.swim()
no1.swim_back()

# below do not execute
class Kingyo(Fish):
    def __init__(self, name, build="ほね", eyelids=False):
        self.name = '金魚ちゃん' + name + 'だよ'
        self.build = build + ' かな'
        self.eyelids = eyelids

以下がこれまでの当ブログでの表現

Python Classの例(Atom)の場合

(写真はY.O.氏から借用)
↑人気ブログランキングに参加しています。ポチっと1票を!

学校計算ドリルテストその3

学校計算ドリルテストその3(手順)

学校計算ドリルテストその3

当プログラムは自己責任でお使いください。

※本プログラムをご利用の方はお問い合わせフォームより「学校計算ドリルテスト」希望の旨、メールアドレスを記入し申し込んでください。折り返し本プログラムを添付し送らさせて戴きます。「種別」は「活動に関するお問い合わせ」でお願いします。

本プログラムを使用したいかなる結果も当サイトでは責任を負いかねます。
プログラムの改変は各自の自由です。
第3者への配布も自由ですがそれによる結果についても当方は責任を負いかねます。
またいかなるサポートも致しません。
四則演算でマイナスになることはありません。(マイナス結果を考慮する改変大歓迎!)

手順
①resetボタンを押してください
②表示されたら実行を押してください(何も表示されてなくても)
③Listに自分の名前があったらそれをクリックしてください
④赤の×をクリックしてください(パネルをクローズするという事)

上記オペレーションは違和感があるでしょうがその通りにしてください

画像による手順

191112data1

プログラム・アイコンをダブルクリックすると表示される。
191112data2

「reset」ボタンをクリックしたとき表示されるパネル。
191112data3

「実行」をクリックすると名前一覧表が表示される。
191112data4

名前をクリックしたのち*1✖をクリックすると追加登録が表示される。
191112data5

前の画面で「yes」の時あらかじめ入っている名前を削除後登録したい名前・番号・小学校名ラジオボタン複数の時「登録継続」をクリック1件だけの時「登録終了」をON。
191112data6

加減乗除を選択後実行をクリック。
191112data7

桁数を選択後実行をクリック。
191112data8

この後問題が表示される。(10問)
191112data9

答えを入力。
191112dataa

「check」ボタンをクリック。正誤が表示される。
191112datab

正答数8が入っている。
191112datac

「sheet2」のタブをクリック⑩正答数8が入る。
191112datad

「sheet1」に戻る。
191112datae

「reset」ボタンをクリック。
191112dataf

「実行」をクリック。名前一覧表に「data5」で入力した「吉田康生」が表示されている。
191112datag

✖で抜けると「追加?」いいえをクリック。
191112datah

今回は登録しません。OKをクリック。
191112datai

四則演算を選択。
191112dataj

問題が表示される。
191112datak

解答入力後「check」ボタンをクリック。全問正解、OK*2
191112datal

「sheet2」をクリック。
191112datam

吉田康生の欄に正答数10が入っている。
*1 名前をクリックすると自動的に「sheet2」が開く。
*2 「sheet2」をクリックし確認→「sheet1」をクリック「reset」ボタンをクリック。

入力のカレントポインターは「K1」(黄色の部分)にありまあす、この数値を変えていただければNEXT LINEポイントになります。「K1」は絶対に4以上にしてください。そうでなければヘッダー部分が破壊されます。(この時はオリジナルファイルからやり直しになります)

このプログラムの中身を見るには「ファイル」、「オプション」、「リボンのユーザー設定」、「(開発)にチェックを入れてOK」メニュー・バーに「開発」の文字が入ってから実行してください。

↑人気ブログランキングに参加しています。よろしければ1票を!

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。

ジェネレータその1

ジェネレータ関数は、関数を動かしながら、yield文を使って何度も結果を返すことができます。
アイキャッチ画像は
①素数を返すジェネレータ関数
②割り切れる数を見つける
③見つかったのでループを中断
④素数が見つかったのでyieldで返す
⑤数値を増加

⑥素数を14個洗い出し
⑦14個まで素数を表示

↑人気ブログランキングに参加しています。ポチっと1票を!

イテレータ

イテレータ

・次の要素を取り出す処理
・要素が終わったかどうかを判別する処理
①リストをイテレータオブジェクトに変換
②「次の要素」を取り出す
④要素がなくなったら、「StopIteration」という例外が発生します。

↑人気ブログランキングに参加しています。ポチっと1票を!

ディクショナリ内包表記とset内包表記

ディクショナリ内包表記とset内包表記

アイキャッチ画像はディクショナリ内包表記(①)と
set内包表記(③)

ディクショナリ内包表記とset内包表記


↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその5

公約数のリストを持つタプルを作り出す。

Comprehensionその5

アイキャッチ画像はリスト内包表記を使って、1から20までの数と公約数のリストを持つタプルを次々と作っています。

↑人気ブログランキングに参加しています。ポチっと1票を!

Comprehensionその4

Comprehensionその4

リスト内包表記のシーケンスの右には、ifを使った条件式を置くことができる。
①②は24の約数をリストにして返す。

③④は等価で結果は⑤である。
④はリスト内包表記である。

↑人気ブログランキングに参加しています。ポチっと1票を!