- 1. Pythonでサーバーから返されたGMT(UTC)時間を日本時間に変換する
- 2. PythonAnyWhereでデプロイしようとしたらシークレットキーがないと言われた
- 3. Flet触ってみた
- 4. Pycharmのターミナル起動時出力される「このシステムではスクリプトの実行が無効になっている~」ログの解決法
- 5. Discord のリアクションに反応し通知する Bot
- 6. Flaskのlogに付加情報を出力する
- 7. ModuleNotFoundError: No module named ‘_ctypes’
- 8. PySimpleGUIでのイベント設定方法
- 9. 【AtCoder】ABC194E Mex Min Python解説
- 10. Pythonチートシート – 正規表現の使い方一覧
- 11. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
- 12. アルファベットからなる連続IDを生成するPythonコード
- 13. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
- 14. Webスクレイパーを作ろう #1
- 15. class-based viewとfunction-based viewの違い
- 16. SKJvillageのスクリーンショット内の顔認識
- 17. Python学習、ボール取り出しゲームの作成
- 18. 【AtCoder】ABC289 のA,B,C,D における Python解説
- 19. C言語でpythonのモジュールを作る
- 20. selenium4 で スクレイピング
Pythonでサーバーから返されたGMT(UTC)時間を日本時間に変換する
# はじめに
以前投稿した記事[「Twitterでの情報収集を RSS へ(一部)移行」](https://qiita.com/penguinprogrammer/items/ef7b9d8455d3bce5c0ed)のプログラムを改良してたのだが、RSSフィードのなかの日時の変換ではまった。
インターネットにもいろいろな情報があるにはあるのだが、Pythonのバージョンだったり、使うライブラリだったり、OS等によっていろいろあるらしく混乱した。自分の頭の整理のためにもまとめた。
# 環境
+ NanoPi NEO2[^NanoPiNEO2とは]
+ Armbian 22.11.4 (debian 11 (bullseye) ベース)
+ Python V3.9.2
+ dateutil v2.8.1
+ pytz 2022.7.1[^NanoPiNEO2とは]: 中国FriendlyELEC社のARM搭載SBC(シングルボードコンピュータ)。分かりやすく書けば「ラズパイ(Raspberry Pi)みたいなもの」
# やりたかったこと
やりたいことは単純で、サーバーから取得
PythonAnyWhereでデプロイしようとしたらシークレットキーがないと言われた
# PythonAnyWhereでデプロイしよう
PythonAnyWhereは無料でデプロイできます。(制限はあります)簡単に言うと、自分の作ったアプリを公開できるということです。## デプロイ方法
デプロイ方法は先駆者がいるのでそれを参考にしてください。
– [先駆者様リンク](https://qiita.com/t-shirayama/items/a8dc8c7946fdea00d8fa)ちなみに、私は先駆者通りにやったら
> $ pa_autoconfigure_django.py –python=3.9 https://github.com// .git この部分でエラーが出ました。
そんな「コマンド無いよ」ってエラーだったので、[この方](https://qiita.com/taungyeon/items/9398b4740842dcef821c)を参考にしたら通りました。## エラー確認
### 確認方法
先駆者を参考にしてもエラーが出る人もいると思います。私もそうでした。
Flet触ってみた
# Fletとは
https://flet.dev/GoogleのFlutterをベースにしたPython のフレームワークで、
公式のイントロダクションに書かれていますが、フロントエンドの開発経験が無くてもイケてるUIを作ることが簡単にでき、作成したアプリがクールかつプロフェッショナルに見えることを助けてくれるそうです。# 公式Docsは英語
TutorialsのToDoApp をなぞる形で実施していきます。
尚、公式のDocsは全て英語のため、私はChromeの拡張機能である「ほんやくコンニャク([DeepL翻訳](https://chrome.google.com/webstore/detail/deepl-translate-reading-w/cofdbpoegempjloogbagkncekinflcnj?hl=ja))」を使用しています。#### 環境
MacOS Big Sur 11.3.1
Python 3.10.2
flet 0.4.0まずはFletのインポート
“`
pip install flet
“`
ハローワールド
“`main.py
Pycharmのターミナル起動時出力される「このシステムではスクリプトの実行が無効になっている~」ログの解決法
# 環境条件
Windows 11 Home
pycharm# 状況
学習を進めていく途中でpycharmを知り、毎回Terminalを開くと出てくる
怪しげなログが気になったので調査してみた。
そこまで深く追及する気はなし。
治ったのなら、ひとまずOKの精神。
ちなみに出力されているのはこんなログ。
~~~
Import-Module : このシステムではスクリプトの実行が無効になっているため、ファイル~
~~~# 原因
PowerShellの “Excution Policy” の値が “Restricted”となっているためらしい。# 解決策
その “Excution Policy”の値を” RemoteSigned” に変更すればよいらしい。# 過程
①確認コマンド`Get-ExecutionPolicy`を実行。
~~~
PS C:\WINDOWS\system32> Get-ExecutionPolicy
Restricted
~~~②設定コマンド`set-executionpolicy remotesigned`を実行
~~~
PS
Discord のリアクションに反応し通知する Bot
## はじめに
Discord の返信や応答などに使われるリアクションに気づかないことがあり不便なため、リアクションに反応して通知してくれる Bot を作りました。ユーザがリアクションすると Bot がメッセージ主にメンションする流れになっています。なお、NITRO に入ることで使えるようになる他サーバのカスタム絵文字には対応していません。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1115291/fe8a42d0-05d7-07c4-02af-b917d8a3a328.png)## 環境
* Raspberry Pi 4 Model B
* CentOS Stream 8
* Python 3.11.0
* discord.py 2.1.0
* Repl.it
* Ubuntu 20.04.2 LTS
* Python 3.8.12
Flaskのlogに付加情報を出力する
## まえがき
趣味の小物アプリでflaskを使った際に調べたこと。
nginxのログと照らし合わせるため、flaskのログにIPアドレスを出したいと思った。
(本当はrequest_id的なもので透過的に見れるといいんですが…)pythonのloggerではフォーマット指定の際、extraフィールドに任意の識別子を含めることが出来る。
extraパラメータは実際のログ出力時に毎回指定する事も出来るが、filtersを使ってミドルウェア的に挟むことが出来る。## 環境
> Python 3.10.10
> Flask==2.2.2## ソース抜粋
“`python: common/logger.py
from logging import Filter
from logging.config import dictConfig
from flask import requestclass ExtraFilter(Filter):
def filter(self, record):
# flaskからremote_addrを取得しclienti
ModuleNotFoundError: No module named ‘_ctypes’
### pyenvのインストールで、ModuleNotFoundError: No module named ‘_ctypes’が出た時。
“`
pyenv install 3.7.4
Downloading Python-3.7.4.tar.xz…
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4…BUILD FAILED (Ubuntu 18.04 using python-build 2.3.12-16-gc8daaa39)
Inspect or clean up the working tree at /tmp/python-build.20230214083324.13541
Results logged to /tmp/python-build.20230214083324.13541.logLast 10 log lines:
File “/tmp/tmplfm0akzd/pip-19.0.3-py2.py3-none-an
PySimpleGUIでのイベント設定方法
# はじめに
今回はPySimpleGUIでイベントを設定する方法についての記事になります。イベントのイメージとしては
「GUI上でボタンが押されたときにXXXXする。」みたいな動作があるとすると、
「ボタンが押される」っていうところがイベントです。PySimpleGUIでは、デフォルトでイベント設定されているものと、されていないものがあるので
その点はリファレンスなど参照の上、注意して実装していく必要があります。
(PySimpleGUIのドキュメント:https://www.pysimplegui.org/en/latest/)# デフォルトでイベント設定されているwidgetを使ったイベント設定
ここでは、文章を入力しボタンを押すと、文章の前後に***が装飾された文章がポップアップされるコードを紹介します。
*2つのウィジェットにkeyという引数で、識別子を与える
*ボタンはデフォルトでイベント設定されているので、ボタンが押されたときにeventに識別子が格納される
*入力系のwidgetに与えた値は values[設定した識別子] で確認できる
*ボタンは入力系のw
【AtCoder】ABC194E Mex Min Python解説
# はじめに
ABC 194 E 問題 Mex Min を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。
# E.Mex Min
[問題ページ](https://atcoder.jp/contests/abc194/tasks/abc194_e)
難易度 : 緑色 1088# 考察
## データ構造の選択
$mex$ : 区間に含まれない & 最小値
⇔ **$1 , 2 , …. , N$ の集合から区間に含まれる要素を削除して残った最小の値** と解釈できます。
区間はスライドするため、この区間に含まれない要素の集合を管理するためには**任意の要素の削除 および 追加** を高速で行えるデータ構造が必要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3012066/f2370664-bdeb-3c4e-1303-8969f5bed2a0.png)
また、*
Pythonチートシート – 正規表現の使い方一覧
これまで、独習Pythonの内容を参考にチートシートを作成してきました。
今回の正規表現に関するチートシートで一区切りとし、次回からは「Pythonではじめるアルゴリズム入門」、”ML for beginners”の内容の学習記録を再利用性・汎用性の高い情報として纏めてみたいと思います。学習予定・記事を執筆予定の書籍・学習コースは以下の通りです。https://www.amazon.com/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%85%A5%E9%96%80-%E4%BC%9D%E7%B5%B1%E7%9A%84%E3%81%AA%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
**このページは以下の続きです**
https://qiita.com/yuuauuy1/items/6d399f6903d9cf068169
今回は、
選択したレシピの材料を自分が作りたい人数分の量に変換
⇩
同じ材料があれば足し算
⇩
お買い物リストとして表示という部分を作っていきます。
**イメージはこちら**
選択したレシピの詳細を表示され、ユーザーが何人分の材料にするか入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/dde0dd6e-4201-6387-6177-dddec12ddb23.png)材料がユーザーが入力した人数分に変換されて、表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/da3514b2-7fc0-62dc-191f-056ec7447614.png)**買い物リスト作成アプリの概要はこちら*
アルファベットからなる連続IDを生成するPythonコード
### 概要
SpreadSheetのカラム名のように、A, B, C, …., Z, AA, AB, AC, ADと連続するIDを生成するコードを作成した### コード
なお今回は、Aを自然数における0と同じ様に扱うように設定した。つまり以下となる。
– 正) Y → Z → BA → BB
– 誤) Y → Z → AA → ABこれは、8 → 9 → 00ではなく、8 → 9 → 10であることに等しい
“`python
import stringZERO_CHAR = ‘A’
ONE_CHAR = ‘B’
LAST_CHAR = ‘Z’
CHAR_SERIES = string.ascii_uppercasedef reverse(_list):
return list(reversed(_list))def succ(char):
alphabet_to_num = dict(zip(CHAR_SERIES, [i for i in range(1, len(CHAR_SERIES) + 1)]))
num_to_alp
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
**この記事は以下の続きです**
https://qiita.com/yuuauuy1/items/3448c41c0b684db76edb
今回は、楽天レシピカテゴリ一覧API と 楽天レシピカテゴリ別ランキングAPIを使って
集めたレシピから検索 ➡ 買い物リストに入れたいレシピを選択する
という機能を作っていきます!**イメージは以下の通り**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/3a576d55-d8ac-d00b-65ff-53c031feda60.png)このように、検索ワードを入力したら、以下の検索結果が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/0b5369d7-c86f-0732-9556-853cb5b1d4d7.png)
この中から、以下の様に indexを選択します。
![image.png](
Webスクレイパーを作ろう #1
# Pythonを使ってWebスクレイパーを作る
この記事では,Pythonを使ってWebスクレイパーを作ることを目的としています.
今回は,ココオルのつぶやきを集めるというスクレイパーを作成していきます.
2回に分けて解説していきます.# 環境準備
インストールするもの
– requests : Webページの情報を取得するのに使用
– BeautifulSoup : WebページのHTMLから必要な情報を抽出するのに使用“`
pip install beautiflsoup4
pip install requests
pip install html5lib
“`ライブラリのインポート
“`.py
from bs4 import BeautifulSoup
import requests
import html5lib
import time #収集の際に時間間隔をあけるために使用
“`# Webページの構造の確認
https://cocooru.com/mutters?page=1
を開き,アクセス後F12キーを押し,左上の矢印をクリック後,カーソル
class-based viewとfunction-based viewの違い
# class-based viewとfunction-based viewの違い
本稿ではDjangoの実装でよく用いられるけど、似ているからごっちゃになる2つについて説明します。## イメージでとらえる
具体的な説明に入る前に、まずはイメージで捉えていきたいと思います。
– class-based view:お惣菜
– function-based view:料理
です。お惣菜は、便利です。料理をしたくないときに買ってきたら、すぐ食べることができるし、一定のおいしさは担保されています。しかし、「もうちょっと味濃かったらな」とか「具材の組み合わせがなんか違う」といったような融通の利かなさが出てくるかもしれません。
一方で料理はめんどくさいです。献立を決めて、食材を選び、調理をしなくては食べれません。おいしさだって「砂糖と塩を間違える」といったべたなミスや、「焼きすぎ、煮込みすぎ」などの調理ミスで左右されます。しかし、自分の思うように作ることができます。味も食材も自分の自由です。class-based viewとfunction-based viewも同じ関係です
SKJvillageのスクリーンショット内の顔認識
# 1.あらすじ
今回は導入として、pythonとOpenCVを用いて、ゲーム実況系Youtubeグループ[SKJvillage](https://www.youtube.com/@SKJVillage)のスクリーンショットからメンバー3人(その他の人物も含む)の顔認識を試みました!# 2.顔認識とは
顔認識とは、データの中で顔を検出することです。方式は人によって様々ですが、今回は下の画像のように顔認識を行うと顔の部分に赤枠が生成されます。
![arigatou-detect2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128356/68b27fd9-749f-0f32-3d18-fdfe3bcb608b.png)# 3.実験方法
今回は、OpenCVに存在する分類器を用いてpythonで実行し、スクリーンショットに対する顔認識を行います。実行にはGoogle Colaboratoryを用います。プログラムを以下に示し、プログラムの後に詳細を説明します。
※Googleアカウントを持
Python学習、ボール取り出しゲームの作成
こんちわ、kmdです。
学習3週間目です。
今回はこのような問題を解いていきました。
↓ 参考サイト
https://joytas.net/programming/python/python%E6%BC%94%E7%BF%92%E5%95%8F%E9%A1%8C%E5%88%9D%E7%B4%9A“`
1~99の番号のついたボールが計99個入っている袋
その中から2人が交互にボールを取り出し大きい数を引いた方が勝ちとなる。
ゲームは5回戦で競う。
なお、取り出したボールは袋に戻さないものとする(同じボールを二度ひくことはない)
“`“`ballgame.py
import randomdef game():
balls=list(range(1,100))
random.shuffle(balls)
playerwin = 0
comwin = 0
for i in range(5):
player = 0
com = 0
player = balls[i] #プレイヤーにリ
【AtCoder】ABC289 のA,B,C,D における Python解説
ABC 289のA,B,C,D 問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。
この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。
また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。
質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)作者プロフィール
Atcoder :[緑 886](https://atcoder.jp/users/tsuru1471)
230211 現在# 目次
[はじめに](#はじめに)
[A.flip](#aflip)
[B.レ/V](#bレv)
[C.Coverage](#ccoverage)
[D.Step Up Robot](#dstep-up-robot)
C言語でpythonのモジュールを作る
C言語でpythonのモジュールを作ってみる。
# 環境
Ubuntu22.04LTS
python3.10
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
kernel 5.15.0-60-generic今回は、/dev/randomから真性乱数を取得するCのソースを使って、それでモジュールを作ってみます。
Ubuntu22.04LTSは、カーネルが5.15.0なので、エントロピープールが空のとき、/dev/randomから値を得るとブロックされる問題がなくなっています。モジュール名、frandom
# ソース
“`frandommodule.c
#include
#include
#includestatic FILE *fp=NULL;
static int count=0;
#define RANDOMMAX (0x0000ffffffffffff)// サブ関数
// 48bit符号なし整数の乱数を乱数デバイスから得る
//
stati
selenium4 で スクレイピング
とりあえず、動くコード
ヤフーのソースを表示するだけ。
“`
yum -y install libX11 GConf2 fontconfig
yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
fc-cache -fv
yum -y install google-chrome-stable libOSMesa
python3 -m pip install selenium
python3 -m pip install webdriver-manager
“`今回はwebdriver-managerを使用するので、わざわざドライバをダウンロードする必要がない。
# chrome
“`hoge.py
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWai