ホームページに張り付けるカウンターをさがしてみました。
https://freesoft-100.com/homepage/rental/counter.html
上記のサイトで色々紹介されています。
他にも紹介サイト(例:https://internet.watch.impress.co.jp/www/article/1999/0719/special.htm)あります。
簡単に設定したい方は、
http://www.rays-counter.com/
が簡単です。
カウンターは、他の広告表示されるものもあるので、選ぶのに慎重さが必要かもしれません。
忍者カウントも設定は簡単だったのですが、広告がうざいのでやめました
http://www.ninja.co.jp/counter/
FC2は設定方法が面倒なのでこちらもやめました。
https://counter.fc2.com/
2018年9月23日日曜日
【F#】F# リファレンス ~シンボルとキャスト、Match
1、シンボルと演算子の表
F#でまずなやむのがシンボルです。
次のURLでは、F# 言語で使用されるシンボルについて説明し、より詳しい情報が提供されるトピックへのリンクと、シンボルの使用方法の一部の簡単な説明がなされています。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/symbol-and-operator-reference/
例えば、
:> ・・・ キャストと変換で使います。
:? ・・・ match式で使います。指定された型に値が一致する場合は true を返します。それ以外の場合は、false を返します (型テスト演算子)。
キャストについては次のURLに詳しく書いてあります。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/casting-and-conversions
(2) Match式
他の言語で使われるswitch式に該当します。
【参考URL】
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/match-expressions
F#でまずなやむのがシンボルです。
次のURLでは、F# 言語で使用されるシンボルについて説明し、より詳しい情報が提供されるトピックへのリンクと、シンボルの使用方法の一部の簡単な説明がなされています。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/symbol-and-operator-reference/
例えば、
:> ・・・ キャストと変換で使います。
:? ・・・ match式で使います。指定された型に値が一致する場合は true を返します。それ以外の場合は、false を返します (型テスト演算子)。
キャストについては次のURLに詳しく書いてあります。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/casting-and-conversions
(2) Match式
他の言語で使われるswitch式に該当します。
【参考URL】
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/match-expressions
【F#】F# リファレンス
F#始めました。
しかし、市販されている本も少なく、またサイトにある情報も少ないので、
すこしづつ情報をまとめていきたいとおもっています。
【参考URL】
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/index
1、値(value)と型(type)
F#の値(value)は、特定の型(type)を持つ数量(quantity)です。
値は変更不可ですがが、
キーワード mutable を使用して、変更可能な変数を指定できます。
> let mutable x = 1
> x <- x + 1
・・・<-で値変更する
【参考URL】
http://fsharpintro.net/value.html
2、ラムダ式(匿名関数/無名関数)
fun pat1 ... patn -> expr
funがラムダ式が始まることを示すキーワードで
exprは様々な式のこと、つまり関数の本体です。
> fun x -> x + 1
関数を適用するための構文は次のようになります。
expr expr | expr(expr)
式全体を括弧で囲む必要がある点です。
> (fun x -> x + 1) 10
今度は引数が2つの関数です。
> ((fun x y -> x + y) 10) 20
> (fun x y -> x + y) 10 20
※返り値:関数本体部分の一番最後の式の値が返り値になります。
> (fun x -> x 10) (fun y -> y + 1)
val it : int = 11
引数の無い関数も定義はつぎのようにします。
> (fun () -> 10) ()
val it : int = 10
3、letを用いた関数定義
let ident pat1 ... patn return-typeopt = bodyexpr
let ident pat1 ... patn return-typeopt = bodyexpr in expr
identは、定義する関数の名前です。演算子も定義出来ます
pat1 ... patnは、引数で、匿名関数のところで説明したものと全く同じです
return-typeoptは、定義する関数の型の注釈で、省略可能です
bodyexprは関数本体に相当する式です。
> let add x y = x + y //2つの入力をとり、それらを加算する関数
> add 10 20
> let add2 = fun x y -> x + y
> add2 10 20
4、letの構文
let recを用いた関数定義(再起関数)
let rec ident pat1 ... patn return-typeopt = bodyexpr
let rec ident pat1 ... patn return-typeopt = bodyexpr in expr
>let rec fact n =
> if n=1 then
> 1
> else
> n * fact(n-1)
> fact 5
5、参照型
参照型を使えば、値を変更可能(mutable)にできます。
値を参照型に変更するにはrefを使います。
また、!参照型とすることで、値の参照が、
参照型:=値とすることで値の変更を行うことができます。
let a = ref "hello";;
//aの値を参照
!a ^ " world";; ---->val it : string = "hello world"
//aの値を変更
a := "hi";;
//aの値を参照
!a ^ " world";;
リストに要素を付加するには、:: (cons) 演算子を使用します。
let pdmList=ref []
pdmList:=pdm:: !pdmList // := は参照に値を挿入 !pdmListは、pdmListの参照値 ::は結合
let tr=[tr1;tr2;tr3]|>List.max // リスト[tr1;tr2;tr3]を|>演算子を使って、List.maxを実行
6、option型
これを使うと、「値がないか、何かの値がある」ことを表すことが出来ます。
option型のデータを操作するには
パターンマッチを用います。
type 'a option =
| None //値がない場合
| Some of 'a //値がある場合
しかし、市販されている本も少なく、またサイトにある情報も少ないので、
すこしづつ情報をまとめていきたいとおもっています。
【参考URL】
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/index
1、値(value)と型(type)
F#の値(value)は、特定の型(type)を持つ数量(quantity)です。
値は変更不可ですがが、
キーワード mutable を使用して、変更可能な変数を指定できます。
> let mutable x = 1
> x <- x + 1
・・・<-で値変更する
【参考URL】
http://fsharpintro.net/value.html
2、ラムダ式(匿名関数/無名関数)
fun pat1 ... patn -> expr
funがラムダ式が始まることを示すキーワードで
exprは様々な式のこと、つまり関数の本体です。
> fun x -> x + 1
関数を適用するための構文は次のようになります。
expr expr | expr(expr)
式全体を括弧で囲む必要がある点です。
> (fun x -> x + 1) 10
今度は引数が2つの関数です。
> ((fun x y -> x + y) 10) 20
> (fun x y -> x + y) 10 20
※返り値:関数本体部分の一番最後の式の値が返り値になります。
> (fun x -> x 10) (fun y -> y + 1)
val it : int = 11
引数の無い関数も定義はつぎのようにします。
> (fun () -> 10) ()
val it : int = 10
3、letを用いた関数定義
let ident pat1 ... patn return-typeopt = bodyexpr
let ident pat1 ... patn return-typeopt = bodyexpr in expr
identは、定義する関数の名前です。演算子も定義出来ます
pat1 ... patnは、引数で、匿名関数のところで説明したものと全く同じです
return-typeoptは、定義する関数の型の注釈で、省略可能です
bodyexprは関数本体に相当する式です。
> let add x y = x + y //2つの入力をとり、それらを加算する関数
> add 10 20
> let add2 = fun x y -> x + y
> add2 10 20
4、letの構文
let recを用いた関数定義(再起関数)
let rec ident pat1 ... patn return-typeopt = bodyexpr
let rec ident pat1 ... patn return-typeopt = bodyexpr in expr
>let rec fact n =
> if n=1 then
> 1
> else
> n * fact(n-1)
> fact 5
5、参照型
参照型を使えば、値を変更可能(mutable)にできます。
値を参照型に変更するにはrefを使います。
また、!参照型とすることで、値の参照が、
参照型:=値とすることで値の変更を行うことができます。
let a = ref "hello";;
//aの値を参照
!a ^ " world";; ---->val it : string = "hello world"
//aの値を変更
a := "hi";;
//aの値を参照
!a ^ " world";;
リストに要素を付加するには、:: (cons) 演算子を使用します。
let pdmList=ref []
pdmList:=pdm:: !pdmList // := は参照に値を挿入 !pdmListは、pdmListの参照値 ::は結合
let tr=[tr1;tr2;tr3]|>List.max // リスト[tr1;tr2;tr3]を|>演算子を使って、List.maxを実行
6、option型
これを使うと、「値がないか、何かの値がある」ことを表すことが出来ます。
option型のデータを操作するには
パターンマッチを用います。
type 'a option =
| None //値がない場合
| Some of 'a //値がある場合
2018年9月22日土曜日
【Python3】pythonの教科書(7) ~日本語対応
Pythonプログラミングで、ファイル内で日本語使うとエラーになります。
例えば、コンソールにつぎのようなメッセージが出力されます。
SyntaxError: Non-UTF-8 code starting with '\x82' in file C:\本山さん\ranking\ranking4.py on line 15, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
この場合には、
Pythonのスクリプトファイルの1行目もしくは2行目に「# coding: 文字コード」を記入します。
⇒ファイルで使われている文字コードを宣言し、Pythonに知らせることができます。
「文字コード」の部分を「Shift_jis」にすればShift jisになりますし、「utf-8」にすればutf-8になります。
【参考URL】
http://programming-study.com/technology/python-japanese/
例えば、コンソールにつぎのようなメッセージが出力されます。
SyntaxError: Non-UTF-8 code starting with '\x82' in file C:\本山さん\ranking\ranking4.py on line 15, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
この場合には、
Pythonのスクリプトファイルの1行目もしくは2行目に「# coding: 文字コード」を記入します。
⇒ファイルで使われている文字コードを宣言し、Pythonに知らせることができます。
「文字コード」の部分を「Shift_jis」にすればShift jisになりますし、「utf-8」にすればutf-8になります。
【参考URL】
http://programming-study.com/technology/python-japanese/
2018年9月21日金曜日
[Windows10] ウインドウズアップデートに注意 ~ リモートデスクトップで接続できなくなりました
[Windows10] で、アップデートしたら、「リモートデスクトップで接続できなくなりました。
|認証エラーが発生しました。要求された関数はサポートされていません。原因は CredSSP 暗号化オラクルの修復である可能性があります。詳細については、https://go.microsoft.com/fwlink/?linkid=866660
と表示されました。
対応策しらべたら、 レジストリを変更したら、リモートデスクトップつかえるようになりました。
【対応策】
①regeditで「レジストリエディタ」起動
② 以下のディレクトを確認(ない場合は作成する(フォルダ右クリックメニュー「新規」「キー(K)」選択で作成)
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
③以下の値変更(ない場合は、右クリックメニュー「DWORD(32ビット)」選択で値作成)
AllowEncryptionOracle
データの種類 : DWORD
値 : 2
【参考URL】
https://blog.dreamhive.co.jp/mkoba/?p=6276
2018年9月9日日曜日
【Python3】pythonの教科書(6) ~コマンド引数、ファイル検索、os.path、クラス
1、コマンド引数、ファイル検索
コマンドライン引数を使用して、複数テキストファイルからテキストファイルを検索するサンプルです。
import sys
import os
if len(sys.argv) <= 1: # sys.argvがコマンドライン引数
print("pyファイルの後ろに引数(キーワード)を指定してください")
sys.exit(0) # プログラムを終了する
keyword = sys.argv[1]
for root, dirs, files in os.walk("."):
for fi in files:
result = []
try: #try-catchを使って、テキストファイル以外読み込んだ時のエラー防止
path = os.path.join(root, fi)
with open(path, encoding='utf-8') as f:
for no, line in enumerate(f):
if line.find(keyword) >= 0:
line = line.strip()
s = "| {0:4}: {1}".format(no+1, line)
result.append(s)
except:
continue
# resultに検索結果があれば結果を表示
if len(result) > 0:
print("+ file: " + fi)
for li in result:
print(li)
2、スクリプトパス
コマンドライン引数を使用して、複数テキストファイルからテキストファイルを検索するサンプルです。
import sys
import os
if len(sys.argv) <= 1: # sys.argvがコマンドライン引数
print("pyファイルの後ろに引数(キーワード)を指定してください")
sys.exit(0) # プログラムを終了する
keyword = sys.argv[1]
for root, dirs, files in os.walk("."):
for fi in files:
result = []
try: #try-catchを使って、テキストファイル以外読み込んだ時のエラー防止
path = os.path.join(root, fi)
with open(path, encoding='utf-8') as f:
for no, line in enumerate(f):
if line.find(keyword) >= 0:
line = line.strip()
s = "| {0:4}: {1}".format(no+1, line)
result.append(s)
except:
continue
# resultに検索結果があれば結果を表示
if len(result) > 0:
print("+ file: " + fi)
for li in result:
print(li)
2、スクリプトパス
__file__でパス取得できます。
print __file__ # スクリプトファイルへの相対パス
print os.path.dirname(__file__) # スクリプトファイルのあるディレクトリへの相対パス
txt = os.path.join(os.path.dirname(__file__), 'input.txt') # スクリプトと同じディレクトリのファイル input.txt のパス
print txt
print os.path.basename(__file__) # スクリプトファイル名
print os.path.abspath(__file__) # スクリプトファイルの絶対パス
print os.getcwd() # 実行時カレントディレクトリの絶対パス
os.path にはいろいろな関数があります。
https://docs.python.jp/3/library/os.path.html
3、クラス
__init__が初期化関数になります。selfはインスタンス自身を表します。
class Clock:
def __init__(self, hour, min, sec):
self._hour = hour
self._min = min
self._sec = sec
@property
def hour(self):
return self._hour
obj = Clock(11, 10, 0)
print(obj.hour)
派生クラスは、次のように定義します。
class 派生クラス名(基底クラス名):
派生クラスの定義
...
派生クラスから基底クラスのメソッドを呼び出すには
super().基底クラスのメッソド()
と書きます。
メッソド名や変数名がアンダーバー(_)からはじまっていれば、
非公開メソッド定義になります。
class Car:
''' 基底クラス '''
def __init__(self, owner):
self.car_type = "normal"
self.owner = owner
def show_status(self):
''' 状態を表示 '''
print("owner:", self.owner)
print("car_type:", self.car_type)
def _test
''' 非公開メソッド'''
print("test.....")
class Van(Car):
''' 派生クラス '''
def __init__(self, owner):
super().__init__(owner)
self.car_type = "van"
【Python3】pythonの教科書(5) ~モジュール、ファイル読み書き
1、モジュール
(1)モジュールを取り込む
ファイル名がモジュール名となります。
モジュールを取り込む場合は、importを使います。
import モジュール名
hoge.pyというファイルを作った場合は、import hogeで取り込むことができます。
異なるパスにモジュールを配置した場合は、「ディレクトリの区切り」は"."で表します。
(2) 標準モジュール
以下URLで確認できます。
https://docs.python.jp/3/py-modindex.html
(3)パッケージ管理ツール「pip」
パッケージ一覧登録「PyPI」(https://pypi.org/)は
pip install パッケージ名
でインストールできます。
※pip uninstall パッケージ名、で削除できます
※インストールしたパッケージは、「c:\Users\ユーザ名\AppData\Local\Programs\Python\Python37-32(Pythonのバージョン名)\Lib\site-packages」に保存されます
2、ファイルの読み書き
①ファイルを開く open()
②ファイルを読み書きする read()/write()
③ファイルを閉じる close()
(1) ファイルの読込
test.txtファイルを読み込む例です。
a_file = open("test.txt", encoding="utf-8")
# 日本語読込の場合は、a_file = open("mt7_7_sjis.txt", encoding="sjis")
s = a_file.read()
a_file.close()
【ファイルを1行づつ読み込む場合】
また、with構文を使うと、close文を使わなくっても、自動的に処理の最後にclose文を実行してくれます。
key = "test"
with open("test.txt", encoding="utf-8") as tf:
for i, line in enumerate(tf):
# 文字列 key が行に含まれるか?
if line.find(key) >= 0:
print(i+1, ":", line)
(2) ファイルの書込
try-catchを使って、 test.txtファイルを書き込む例です。
a_file = open("test.txt", mode="w", encoding="utf-8")
try:
a_file.write("test=\n今日は晴れです\n")
finally:
a_file.close()
with構文を使って、ファイル書き込みを行います。
with open("test.txt", mode="w", encoding="utf-8") as f:
f.write("test=\n今日は晴れです")
(3) jsonファイルの読込/書込
import jsonを使用します。
①読込例
import json
filename = "test.json"
with open(filename, "r") as fp:
r = json.load(fp)
print("no=", r["no"])
print("code=", r["code"])
print("scr=", r["scr"])
②書込例
import json
# 辞書型のデータ(数値、タプル、文字列が使えます)
data = {
"no": 1,
"code": ("num", 1, 10),
"scr": "test,test......",
}
filename = "test.json"
#オブジェクトをJSON文字列に変換
with open(filename, "w") as fp:
json.dump(data, fp)
(1)モジュールを取り込む
ファイル名がモジュール名となります。
モジュールを取り込む場合は、importを使います。
import モジュール名
hoge.pyというファイルを作った場合は、import hogeで取り込むことができます。
異なるパスにモジュールを配置した場合は、「ディレクトリの区切り」は"."で表します。
(2) 標準モジュール
以下URLで確認できます。
https://docs.python.jp/3/py-modindex.html
(3)パッケージ管理ツール「pip」
パッケージ一覧登録「PyPI」(https://pypi.org/)は
pip install パッケージ名
でインストールできます。
※pip uninstall パッケージ名、で削除できます
※インストールしたパッケージは、「c:\Users\ユーザ名\AppData\Local\Programs\Python\Python37-32(Pythonのバージョン名)\Lib\site-packages」に保存されます
2、ファイルの読み書き
①ファイルを開く open()
②ファイルを読み書きする read()/write()
③ファイルを閉じる close()
(1) ファイルの読込
test.txtファイルを読み込む例です。
a_file = open("test.txt", encoding="utf-8")
# 日本語読込の場合は、a_file = open("mt7_7_sjis.txt", encoding="sjis")
s = a_file.read()
a_file.close()
【ファイルを1行づつ読み込む場合】
また、with構文を使うと、close文を使わなくっても、自動的に処理の最後にclose文を実行してくれます。
key = "test"
with open("test.txt", encoding="utf-8") as tf:
for i, line in enumerate(tf):
# 文字列 key が行に含まれるか?
if line.find(key) >= 0:
print(i+1, ":", line)
(2) ファイルの書込
try-catchを使って、 test.txtファイルを書き込む例です。
a_file = open("test.txt", mode="w", encoding="utf-8")
try:
a_file.write("test=\n今日は晴れです\n")
finally:
a_file.close()
with構文を使って、ファイル書き込みを行います。
with open("test.txt", mode="w", encoding="utf-8") as f:
f.write("test=\n今日は晴れです")
(3) jsonファイルの読込/書込
import jsonを使用します。
①読込例
import json
filename = "test.json"
with open(filename, "r") as fp:
r = json.load(fp)
print("no=", r["no"])
print("code=", r["code"])
print("scr=", r["scr"])
②書込例
import json
# 辞書型のデータ(数値、タプル、文字列が使えます)
data = {
"no": 1,
"code": ("num", 1, 10),
"scr": "test,test......",
}
filename = "test.json"
#オブジェクトをJSON文字列に変換
with open(filename, "w") as fp:
json.dump(data, fp)
登録:
投稿 (Atom)
