Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「EEK」を含む日記RSS

はてなキーワード:EEKとは

2025-12-04

anond:20251204182618

まあネギ一般の旬よな。ルーンファクトリーで学んだ。

dorawiiより

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20251204182806# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaTFUJwAKCRBwMdsubs4+SKPQAQC2AU2MPaCoOf+jQUmaFtv/0FtFUjW3nrCSY+AZJZqJjwD/XBIuj4YoDcoczyFwYmYMsmlG+2AA18reDkNIZx4WkA8==eeK+-----ENDPGP SIGNATURE-----

Permalink |記事への反応(0) | 18:28

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-16

anond:20250716182949

eel?eek

Permalink |記事への反応(0) | 18:31

このエントリーをはてなブックマークに追加ツイートシェア

2024-06-11

[Webクリップ]

eek(イーク)はeスポーツ専門の転職求人サイトです。コーチやチーム運営者などeスポーツに関わるアルバイトから正社員お仕事求人掲載していきますeスポーツ転職仕事探しeek(イーク)にお任せください。

Permalink |記事への反応(0) | 16:07

このエントリーをはてなブックマークに追加ツイートシェア

2023-12-17

プログラミング初心者です。以下のコードの誤りはなんですか

僕はプログラミング歴2週間の初心者です。キーと値を入力できるデータベースを作っています

以下のコードを実行してデータを追加し続けると、一定サイズを超えるとエラーが出てしまうみたいです。

理想は、データが追加された後にサイズが足りなくなったら動的に自動拡大されることです。

もし詳しい人がいたらご教示お願い致します。

import sysimportosimportmmapimport hashlibdef h(x):    return int(hashlib.sha512(x.encode()).hexdigest(), 16)def create_db(filename):    withopen(filename, 'wb')as f:        f.write(b'\0' * 1024 * 1024)  # 1MBの空ファイル作成defset_key(filename,key,value):    withopen(filename, 'r+b')as f:mm =mmap.mmap(f.fileno(), 0)pos = h(key) %mm.size()        whilemm[pos:pos+1] != b'\0':pos = (pos + 1) %mm.size()            ifpos == h(key) %mm.size():f.seek(0,os.SEEK_END)                f.write(b'\0' *mm.size())  #ファイルサイズを2倍にするmm =mmap.mmap(f.fileno(), f.tell())  #ファイルサイズを反映させるpos = h(key) %mm.size()  #ハッシュ値を再計算する        data =key + '\0' +value + '\0'        data = data.encode()mm[pos:pos+len(data)] = datamm.close()  #mmapオブジェクトを閉じるdefget_key(filename,key):    withopen(filename, 'r+b')as f:mm =mmap.mmap(f.fileno(), 0)pos = h(key) %mm.size()        whilemm[pos:pos+1] != b'\0':            end =mm.find(b'\0',pos,mm.size())  # 第2引数と第3引数指定する            if end == -1:                end =mm.size()            ifmm[pos:end].decode() ==key:pos = end + 1                end =mm.find(b'\0',pos,mm.size())  # 第2引数と第3引数指定する                if end == -1:                    end =mm.size()value =mm[pos:end].decode()mm.close()  #mmapオブジェクトを閉じる                returnvaluepos = (pos + 1) %mm.size()            ifpos == h(key) %mm.size():                breakmm.close()  #mmapオブジェクトを閉じる        return Nonedefmain():    cmd = sys.argv[1]    if cmd == 'create':        create_db(sys.argv[2])    elif cmd == 'set':set_key(sys.argv[2], sys.argv[3], sys.argv[4])    elif cmd == 'get':print(get_key(sys.argv[2], sys.argv[3]))if __name__ == '__main__':main()

Permalink |記事への反応(0) | 12:13

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp