プログラムとか 思ったこととか 徒然ブログ 投稿一覧へ戻る

タグ "Python" が付いている投稿一覧

【Python 雑談・雑学 + coding challenge】Unicode の正規化処理 ( normalization ) を利用して、diacritical marks ( 発音区別符号 ) を取り除こう! テキスト解析の前処理としても重要です!

Tags: Python , miscellaneous , challenge , diacritical , unicode , normalization

Published 2020年9月24日21:35 by T.Tsuyoshi

問題 ( 制限時間: 45 分 ): 私の元にこんな内容のファイルが送られてきました (ファイル名は 'greek_str.txt' とします)。 δοκῶ μοι περὶ ὧν πυνθάνεσθε οὐκ ἀμελέτητος εἶναι. καὶ γὰρ …

【Python 雑談・雑学 + coding challenge】文字列中の数字を抜き出して桁区切りをつけよう! 正規表現 (regular expression ) を使うと「えっ!?」っていうくらい簡単ですょ。lookahead と negative lookahead を使います。

Tags: Python , miscellaneous , challenge , coding , regular expressions , lookahead , negative lookahead

Published 2020年9月19日21:33 by T.Tsuyoshi

問題 ( 制限時間: 40 分 ): s = 'The numbers are 1234567890 and 98' 上のような文字列があった場合、この中の数字に桁区切りをつけましょう。 この場合の出力結果は以下のようになります。 # The numbers are …

【 Python + Regular Expressions 】複数のマッチパターンを look ahead (先読み) シンタックスを利用して 1 つのマッチパターンにまとめて処理しよう! re.match() の呼び出しも 1 回で済んじゃいます!

Tags: Python , regular expressions , lookahead

Published 2020年9月11日20:20 by T.Tsuyoshi

時には、テキストが複数の条件に合致しているか、を調べる必要に迫られることもあります。 ユーザーが設定しようとしているパスワードが十分に「安全」かを確認したいような場合もそうですね。 ここでは「十分に安全」なパスワード ( strong passowrd ) の条件を以下のように定めるとします。。 1: 8 文字以上で、アルファベット、数字、句読文字 ( punctuation character ) のいずれもが使用されていること。 2: 少なくとも 1 文字以上のアルファベットの大文字を含むこと …

【Python 雑談・雑学 + coding challenge】Python の pprint 機能を自分で実装してみよう! 自分なりの Pretty Print できちゃいます!!

Tags: Python , miscellaneous , challenge , pprint , pretty print

Published 2020年8月19日8:17 by T.Tsuyoshi

Python では pprint モジュールが提供されていて、ネストしているデータ構造を階層的に出力してくれます。 from pprint import pprint a = [1, 2, 3, 4, 5] b = [1, [2, [5, …

【 Effective Python, 2nd Edition 】threading モジュールの Lock クラスを利用してマルチスレッド実行時のデータ競合 ( data races ) を予防しよう! GIL はデータ構造 ( data structure ) の安全性まで面倒を見てくれません

Tags: Python , Effective , muttual-exclusion lock , Lock , multi threading

Published 2020年8月17日15:59 by T.Tsuyoshi

こちらの記事 で、Python におけるマルチスレッド実行は GIL ( Global Interpreter Lock ) の制約を受けてある瞬間に動作している CPU コアは 1 つだけであり、シリアル実行とトータルな実行時間は変わらない、それは、予期しない割り込みによってインタプリタが保持しておくべき状態が影響を受けないようにするためだ、という話をしました。 であれば、プログラム側で相互排他ロック ( mutual-exclusion lock; mutex ) …