PyCharm Version Up(19.2)

PyCharm Version Up(19.2)

PyCharmのバージョンアップを行った。
Ver18.3→Ver19.2である。
WSLで作ったFlaskもAtomで作ったPython Programも皆、PyCharm上で動く。
将来的にはSQLiteも動かす予定だ。

# -*- coding: utf-8 -*-
print("例:明治 42 年")
S = input("和暦:")

syear = 0
print(S.split())
items = S.split()
year = int(items[1])

if items[0] == "明治":
    syear = 1867 + year
elif str(items[0]) == "大正":
    syear = 1911 + year
elif items[0] == "昭和":
    syear = 1925 + year
elif items[0] == "平成":
    syear = 1988 + year
elif items[0] == "令和":
    syear = 2018 + year
else:
    print(items[0],"Error")

print("西暦",str(syear),"年")

これは和暦→西暦変換プログラムである。

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

wp-syntaxhighlighterの記事は野性の証明でないと見られません

wp-syntaxhighlighterの記事は野性の証明でないと見られません

野性の証明 を参照。

wp-syntaxhighlighter を参照。

アイキャッチ画像は最近のカスケードメニューです。

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

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票を!

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票を!

WP SyntaxHighlighterが使えたぞ!

WP SyntaxHighlighterが使えたぞ!

WP SyntaxHighlighter

今日の前のブログの記事でUPした「WP SyntaxHighlighter」が使えたぞ。
2019年11月15日 @ 20:37にUPした「元号特定プログラム」記事のWP SyntaxHighlighter適用版です。

Function Ad-Conversion($indate){
  
    $ERA_MEIJI = "明治"
    $ERA_TAISHO = "大正"
    $ERA_SHOWA = "昭和"
    $ERA_HEISEI = "平成"
    $ERA_REIWA = "令和"
  
    $DATE_MEIJI = 18680908 
    $DATE_TAISHO = 19120730
    $DATE_SHOWA = 19261225
    $DATE_HEISEI = 19890108
    $DATE_REIWA = 20190501
  
    if($indate -lt $DATE_MEIJI){
  
        Write-Host("明治以前の日付には対応していません。")
  
    }elseif($indate -lt $DATE_TAISHO){
  
        Write-Host("元号は" + $ERA_MEIJI + "です。")
  
    }elseif($indate -lt $DATE_SHOWA){
  
        Write-Host("元号は" + $ERA_TAISHO + "です。")
     
    }elseif($indate -lt $DATE_HEISEI){
  
        Write-Host("元号は" + $ERA_SHOWA + "です。")
     
    }elseif($indate -lt $DATE_REIWA){
  
        Write-Host("元号は" + $ERA_HEISEI + "です。")
  
    }else{
         
         Write-Host("元号は" + $ERA_REIWA + "です。")
 
         }
}
  
Ad-Conversion 19300101 # ①
Ad-Conversion 18700101 # ②
Ad-Conversion 20190101 # ③
Ad-Conversion 20190502 # ④
Ad-Conversion 20200101 # ⑤
Ad-Conversion 19510817 # ⑥

# 下記は同スクリプトを実行した結果です
# 元号は昭和です。①
# 元号は明治です。②
# 元号は平成です。③
# 元号は令和です。④
# 元号は令和です。⑤
# 元号は昭和です。⑥

上記は元のプログラムと「SYOU」と「SHO」が違っています。
(写真はY.O.氏から借用)

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

WP SyntaxHighlighterを見つけた!

写真はビビハニム・モスクです。
191116

WPSyntaxHighlighter

wp-syntaxhighlighter を参照

使ってみる
設定が終わったところで、実際に使ってみましょう。投稿画面のビジュアルエディタタブを選択します。

preボタンは、ドラッグした箇所をハイライト対象にしてくれるもの。
codeボタンは、ソースコードを貼り付けて挿入するもの。
わたしは、ほとんどcodeボタンしか使ってませんが、状況に応じて使いわけるといいでしょう。
preボタンの使い方
preボタンの場合は、まずビジュアルエディタにプログラムコードを書き込みます。例として以下のようなhtmlコードを書きました。

こういった直接ビジュアルエディタに書き込んだコードに対してSyntaxHighlighterをあてるには、preボタンを利用します。使い方は、コード全体をドラッグしてpreボタンを押すだけです。

preボタンでhtml言語を選択→「挿入」。

SyntaxHighlighterが適応されます。

テキストで見るとこんな感じ。htmlのハイライトが適応されているのが分かります。

codeボタンの使い方
続いてcodeボタンの使い方。こちらは、コードをそのまま貼り付けたい時に利用します。インデントなどもそのまま維持されます。わたしはローカル環境で動作確認したコードを貼ることがほとんどなので、こちらのcodeボタンを利用するほうが圧倒的に多いです。
codeボタンをクリックします。

言語を選択して、コードを貼り付けます。先ほどと同じhtmlコードを貼り付けてみましょう。

挿入ボタンを押すと、貼り付けたコードがそのまま反映されます。preボタンの時と同じ結果になるのが分かります。

表示
実際の表示をプレビューで見てみましょう。例として作成したコードは以下のように表示されるます。ただし、設定で選択したテーマによって見栄えは異なります。

スポンサード リンク
WP SyntaxHighlighterのいいところ
ソースを切れに表示させるSyntaxHighlighterをWordPressでも簡単に使わせてくれる点はもちろんですが、もう1点。
ショートコードを使わなくていい点がわたしは好きです。他の有名な「SyntaxHighlighter Evolved」はショートコードありきの設計になっています。
わたしはショートコードがあまり好きではなく、それはそのプラグインの開発が終わってしまった途端に(もしくはそのプラグインを利用しなくなった時点で)ゴミのコードになってしまうからですね。
今後のことを考えるとなるべくなら使わない方がいいということで、WP SyntaxHighlighterに軍配をあげています。
おわり
(写真はY.O.氏から借用)

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

元号特定プログラム

Ad-Conversion 20190502④で関数を呼び出し結果を表示する。今回は月日も考慮する。

元号特定プログラム

前に当ブログで西暦、和暦相互変換のプログラムを載せたが、今回はPowerShell_ISEで西暦年月日でその日がどの元号に当たるかを特定するプログラムである。Ad-Conversion 20190502④で関数を呼び出し結果を表示する。今回は月日も考慮する。

Function Ad-Conversion($indate){

$ERA_MEIJI = “明治”
$ERA_TAISYOU = “大正”
$ERA_SYOUWA = “昭和”
$ERA_HEISEI = “平成”
$ERA_REIWA = “令和”

$DATE_MEIJI = 18680908
$DATE_TAISYOU = 19120730
$DATE_SYOUWA = 19261225
$DATE_HEISEI = 19890108
$DATE_REIWA = 20190501

if($indate -lt $DATE_MEIJI){

Write-Host(“明治以前の日付には対応していません。”)

}elseif($indate -lt $DATE_TAISYOU){

Write-Host(“元号は” + $ERA_MEIJI + “です。”)

}elseif($indate -lt $DATE_SYOUWA){

Write-Host(“元号は” + $ERA_TAISYOU + “です。”)

}elseif($indate -lt $DATE_HEISEI){

Write-Host(“元号は” + $ERA_SYOUWA + “です。”)

}elseif($indate -lt $DATE_REIWA){

Write-Host(“元号は” + $ERA_HEISEI + “です。”)

}else{

Write-Host(“元号は” + $ERA_REIWA + “です。”)

}
}

Ad-Conversion 19300101①
Ad-Conversion 18700101②
Ad-Conversion 20190101③
Ad-Conversion 20190502④
Ad-Conversion 20200101⑤
Ad-Conversion 19510817⑥

*******************************************************
PS C:\Users\prog> C:\Users\prog\Desktop\File\Gengo.ps1
元号は昭和です。①
元号は明治です。②
元号は平成です。③
元号は令和です。④
元号は令和です。⑤
元号は昭和です。⑥

*************以下は実行結果

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

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

PowerShell_ISEでFileを作る‐フォルダーごと削除する

191109

PowerShell_ISEでFileを作る‐フォルダーごと削除する

PowerShell_ISEでファイルをフォルダーごと削除する

① 「New-Item」コマンドレットでFile or Directoryを作る
New-Item -Path Desktop\Sample\201910\1001\sample.txt -ItemType File -Force
② 「File」名はsample.txt
③ 「ItemType」パラメーターはFile
④ パスは「ユーザー」~「1001」フォルダー
⑤ 確かに「sample.txt」が作られた
⑥ 「createfile.ps1」が実行された
⑦ 「sample.txt」ができている
⑧ それを「Remove-Item」コマンドレットで「201910」フォルダーごと削除する
Set-Location C:\Users\******\Desktop\Sample
Remove-Item 201910 -Force -Recurse
⑨ フォルダー以下全てを削除する
⑩ 「RemoveFolder01.ps1」を実行する
⑪ 確かにフォルダー「201910」が削除されている

以上

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

PowerShell_ISEを使ってみた

ちょっと迷っている。それは、今までのPowerShellがWindows用だけであったのに対して、PowerShell core 6.0以降がWindowsだけでなくLinux、MacOSにも対応しているからである。

PowerShell_ISEを使ってみた

Windows PowerShell ISE(Integrated Script Environment)を使ってみた。
ちょっと迷っている。それは、
今までのPowerShellがWindows用だけであったのに対して
PowerShell core 6.0以降がWindowsだけでなくLinux、MacOSにも対応しているからである。
普通のWindowsPowerShellが新規開発を行わずにBugのみに対応するのに対して、
coreの方はこれからずっと新規機能にも対応する。
しかし、coreの方は日本語文書もまだ出回っておらず反対にPowerShellの方は豊富に出回っている。
私はLinuxの方はWSLで使うがその他はWindowsだけで今のところ十分である。
そこで見切り発車して今までのWindows PowerShell_ISEで開発することとした。
アイキャッチ画像は
①通常の配列を使った例
②パイプを使ってForEach-Objectにて配列で①と同等の処理を行った例です。
・変数は数値や文字列を一時的に保存する箱のようなもの。
・ForEach-Objectを使うと配列の全要素に対して処理をするスクリプトをシンプルに書くことができます。

ForEach-Object(配列処理)


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

Atom(Alt + R)(文字化け)

191002

エンコードの判定

以前からHydrogenで日本語の表示はうまくいっていたがAtom(Alt + R)で日本語を表示させると文字化けが起きてしまっていた。何が原因かわからなかったのでアイキャッチ画像にあるような関数を作って(encodings = [“ascii”, “utf-8”, “shift-jis”, “euc-jp”])の4種類を利用してAtomのコードが何であってもAlt + Rで文字化けしないように試みたが②のように無駄だった。日本語表示させるためにはPyCharmを使うか、Hydrogenを使ってステップバイステップでやるしかないということが分かった。

Atom(Alt + R)文字化けあり

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