- 1. [pyinstaller] or [py2exe] でpyファイルをEXE化 (2022-01-22)
- 2. kivyMDチュートリアル其の肆什伍 Behaviors – Hover篇
- 3. Python リストを連番で辞書に格納する
- 4. Python3をWindows10[64bit]へインストール [2022/01/22]
- 5. 週末研究ノート ー (Easy!) Monty Hall Problem Simulation
- 6. 3重対角行列の固有値を二分法で求めよう
- 7. Python3でpip install uuidしてはいけない件
- 8. pythonで処理時間を計測する。
- 9. AOJトライに関する知識知見の記録共有:Volume0-0064
- 10. Python3: Paramiko の使い方 (ssh 接続)
- 11. Pythonで対話式CLIツールを作る
- 12. Pandasのgroupbyで日付の順序がおかしくなる問題を解決する。
- 13. pipとは〜スクレイピングでライブラリインストール際に登場し疑問だったので調べてみました〜
- 14. 【Python3】abcモジュールで抽象クラスを実装する
- 15. 社内Windows環境で VS CODEのPythonが実行できなくて困った話。
- 16. MacでTkinterを使ったGUI作成時の注意事項
- 17. Pythonで日本の新型コロナ患者情報取得
- 18. VSCodeでコードユニペット(Python)を登録する – 備忘録
- 19. asyncio アプリ内から Slack にメッセージを投稿しよう
- 20. 【Python、Ruby】約数と総和
[pyinstaller] or [py2exe] でpyファイルをEXE化 (2022-01-22)
前回、Windows10環境に、Python3をインストールしたので、今回は、exe化をやってみました。
前回の記事:
https://qiita.com/fix/items/cc31deda5daf0309d9f4
# pyinstaller をインストール
![イメージ7598.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/56646e80-1117-ef57-5c0a-dc363a90de47.jpeg)
# exe化テスト
シンプルにprint文のみでとりあえずやってみます。
“`python:Hello-Python.py
# -*- coding: utf-8 -*-
import sys
print(“Hello,Python!”)
“`一応、実行確認
![イメージ7600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/771448b7-e974
kivyMDチュートリアル其の肆什伍 Behaviors – Hover篇
ハロー、Qiita!いかがお過ごしでしょうか。
はい、というわけで間もなく1月も終わりに近づいていますが、お元気に過ごして
いますでしょうか。何よりこの季節は寒いでございますね。外に出るのが億劫に
なるくらいで。まぁ緊急事態宣言も出そうな雰囲気で、出なくともステイホーム
が余儀なくされそうです。さて、本題に移りますが今日からはKivyMDのBehaviors章に戻っていきます。
以前どこまでやったっけなという思いに駆られていますが、確認してみると以前
はFocus篇をやっていました。ということで、今日はタイトルの通りで続きのHo-
ver篇となります。それではさっそくやっていくこととします。あ、それでは、レッツラゴ。(わざわざ言うまでもない)
## Hover
冒頭には比較的大文字で説明が書かれています。
> Changing when the mouse is on the widget and the widget is visible.
読んで字の通りということになるでしょうか。と言っても良くみるとChangeig-
when the mouseあたりなんかは一
Python リストを連番で辞書に格納する
“`:python
values = [‘itou’,
‘kuroda’,
‘yamagata’,
‘matukata’,
‘ito’,
‘matukata’,
‘ito’,
‘ohkuma’,
‘yamagata’]dic = {}
dic.update(enumerate(values))
“`
“`
{0: ‘itou’,
1: ‘kuroda’,
2: ‘yamagata’,
3: ‘matukata’,
4: ‘ito’,
5: ‘matukata’,
6: ‘ito’,
7: ‘ohkuma’,
8: ‘yamagata’}
“`
Python3をWindows10[64bit]へインストール [2022/01/22]
Windows10環境に、Pythonをインストールしてなかったのでメモも兼ねて記事にしてみます。
過去ログで、同様の記事がありますが、古くなってるので2022年度版ということでやってみます。
https://qiita.com/ssbb/items/b55ca899e0d5ce6ce963
#環境
・Windows10[64bit] 21H2
・Python 3.10.2
#Python 3.10.2 インストール
以前は、32bit版を入れないと動かなかった記憶があるのですが、現在は、64bitでも動くようです。
以下のリンクからダウンロードすると、自動的に64bit版が入るようです。
![イメージ75851.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/5a01a358-a8bb-f29b-10f1-f9b13263c593.jpeg)
[add Python 3.10 to Path] にチェックを入れて、[install NOW]
![イメージ75
週末研究ノート ー (Easy!) Monty Hall Problem Simulation
# はじめに ー 週末研究ノートとは?
個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。(有識者の方のアドバイスも、ちょっとというかかなり期待してます!笑)
どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。
# 今回のサマリ (TL; DR)
今回は、閑話休題?!
ひさしぶりに「[モンティ・ホール問題](https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%BB%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C#%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB)」に出会ったので、選択肢を変えた場合の確率をシミュレーションしてみました
3重対角行列の固有値を二分法で求めよう
二分法で遊んでいると、二分法で3重行列の固有値が計算できると知り、これは面白いと思いまとめてみました。この方法はランチョス法と組み合わせて、大規模疎行列の固有値問題を解くときに使うようです。
初投稿なので、至らない箇所があるかと思いますが、ご指摘いただけると幸いです。#3重対角行列
3重対角行列行列というのは以下のように対角成分とその両脇のみ非ゼロの値を持つ行列のことです。“`math
M = \begin{pmatrix}
a_1 & b_1 & 0 & \cdots & 0 \\
b_1 & a_2 & b_2 & \cdots & 0 \\
0 & b_2 & a_3 & \cdots & 0\\
\vdots & \vdots & & \ddots & \vdots \\
0 & \cdots & b_{n-2} & a_{n-1} & b_{n-1}\\
0 & \cdots & 0 & b_{n-1} & a_{n}
\end{pmatrix}
“`
一般に3重対角行列の非対角成分は必ずしも対称とは限りませんが、ここでは対称な場合に限って扱います。
すると
Python3でpip install uuidしてはいけない件
表題の件、正確に言えばPython2.5以降からですが、
uuidは標準ライブラリとしてバンドルされています。なのでpip install uuidしてしまうと、
“`
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/pip/_internal/req/req_install.py”, line 9, in
import uuid
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/uuid.py”, line 138
if not 0 <= time_low < 1<<32L: ``` このようなエラーになります。 どうやらこれは2.5以降に標準ライブラリに含まれているモジュールのバックポートのようです。 ##もしインストールしてしまった場合 ``` $ pip uninstall uuid ``` するか、 もしできなければ、ここでいうsite-package
pythonで処理時間を計測する。
実行時間についていつか使いそうなので、メモとして残しておきます。
https://www.delftstack.com/ja/howto/python/python-elapsed-time/
https://hibiki-press.tech/python/time-perf-counter/4595
#code
perf_counterを使うのがよさそう。真面目に必要になったときに検討します。“`meas.py
import timedef start_time ():
start = time.perf_counter()
return startdef end_time (start):
end = time.perf_counter()
result = end – start
print (‘test time:’,'{:.3f}’.format(result))turn_on_time = start_time()
#プログラム処理中
end_time(turn_on_time)“`
AOJトライに関する知識知見の記録共有:Volume0-0064
# タスク概要
Secret Number
https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0064
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
“`Python
import pprint, sys, time, redef core(arg, adv=True):
if adv:
s = “”
for ch in arg:
if ch.isdigit():
s = s + ch
else:
s = s + ” ”
else:
s = re.sub(r'[^0-9]’, ‘ ‘, arg)l = [int(v) for v in s.split(” “) if v != “”]
return [sum(l), l]def app(*args):
ret = []
Python3: Paramiko の使い方 (ssh 接続)
Python で ssh 接続をする方法です。
“`py:ssh_exec.py
#! /usr/bin/python
#
# ssh_exec.py
#
# Jan/20/2022
# ——————————————————————
import os
import sys
import paramiko
from dotenv import load_dotenv
# ——————————————————————
dotenv_path = ‘.env’
load_dotenv(dotenv_path)
HOST = os.environ.get(“HOST”)
USER = os.environ.get(“USER”)
COMMAND = os.environ.get(“COMMAND”)
#
sys.stderr.write(“*** start ***\n”)
client = paramik
Pythonで対話式CLIツールを作る
PythonでこんなCLIツールが実装できる
![questionary.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154711/039f6dc1-7099-86a4-9c01-5ccf14af764b.gif)上記のスクリプトはこちら
(`questionary==1.10.0`を使用)“`python
import questionaryname = questionary.text(‘Name?’).ask()
age = int(questionary.text(‘Age?’).ask())
sex = questionary.select(
‘Sex?’,
choices=[“Male”, “Female”]
).ask()
if sex == “Male”:
print(f”Hello {name}! {age} years old gentleman!”)
else:
print(f”Hello {name}! {age} years ol
Pandasのgroupbyで日付の順序がおかしくなる問題を解決する。
#結論
作成したDataFrameの日付のフォーマットや型に問題がある!
**→ 日付のフォーマットは、1/1は01/01の様に記述するなど統一されているか?**
**→ 日付のデータの型は、to_datetime関数を使うなどして日付の型になっているか?**#DataFrameを作成し、groupbyのsumで日付別の合計値を求める。(ダメな例)
下記の様な日付ごとに果物をいくつ買ったかというDataFrameがあるとする。
“`python:
import pandas as pddf = pd.DataFrame({‘Date’: [‘2022/9/1’, ‘2022/9/1’, ‘2022/9/12’, ‘2022/9/12′,’2022/10/20’, ‘2022/10/20’, ‘2022/11/27’, ‘2022/12/31’],
‘Fruit’: [‘Apple’, ‘Banana’, ‘Apple’, ‘Orange’, ‘Grape’, ‘Apple’, ‘Grape’, ‘Orange’],
pipとは〜スクレイピングでライブラリインストール際に登場し疑問だったので調べてみました〜
# はじめに
昨年の年度末ごろからpythonの学習を始め、
その中スクレイピングで使用する際や仮想環境構築する際に出てきた「pip」忘れないようにメモベースでまとめています。
詳細は参考URLを見てください!参考URL
https://prograshi.com/language/python/python-pip/
#pipとは
>URLより引用
>pipとはpython公式のパッケージ管理システムです。
インストールしたpythonの中に入っています。
Pip Installs Packages(またはPython)の略です。ピップと読みます。
pythonに公式に登録されたパッケージのインストールやアンインストールが出来ます。
<補足>
pythonのパッケージはPyPIで管理されています。
└ Python Package Indexの略
└ 呼び名:パイパイ
└ 公式ページ:https://pypi.org/
コマンドでPyPIにアクセスし、ファイルをインストールしたりするのがpipです。イメージとしてはLinuxでいうrpmコマンドみたいな感じ
【Python3】abcモジュールで抽象クラスを実装する
## はじめに
Pythonの標準モジュールである“`abc“`(abstract base class)を使うと抽象クラスを利用することができます。
## 環境
– Ubuntu20.04
– Python3.8.10## 使い方
### 抽象クラスを定義
“`python:animal.py
# 1. モジュールをインポート
from abc import ABC, abstractmethod# 2. ABCクラスを継承
class Animal(ABC):# 3. デコレータで抽象メソッドであることを宣言
@abstractmethod
def cry(self):
pass
“`まずは冒頭でabcモジュールからABCクラス・abstractmethodデコレータをインポートします。
クラスの定義時にABCクラスを継承することで抽象クラスとして定義できます。
“`
class Animal(ABC):
“`以下のような書き方も可能です。
“`
class Animal(metac
社内Windows環境で VS CODEのPythonが実行できなくて困った話。
# 社内環境のWindows版 VS CODEでPythonが実行できない
そういう時には以下を実行してみると幸せになれるかもしれません。
## 問題となる症状
対象となるエラーメッセージはこれ↓
:::note alert
ターミナル プロセスが起動に失敗しました: A native exception occurred during launch (Cannot launch conpty)
:::## 解決策
1. ファイル」の「ユーザー設定」の「設定」を開いてください。
2. 上の検索部分に[conpty]と入力して検索の実行
3. 表示されている `Terminal > Integrated: Windows Enable Conpty` のチェックボックスをオフしてください。## 解説
社内Windows環境では、時にWindowsのバージョンを固定していることがあります。
上記の設定は、疑似コンソールにConptyと使用するか、Winpty(conptyの旧バージョンだと思えば、当たらずとも遠からず)を使用するかの選択をする設定部分です。もし
MacでTkinterを使ったGUI作成時の注意事項
#環境
– MacOS 12.1
– Python 3.10.0#TkinterでGUI作るぞ!!!
エラーは出ないのにGUIの画面真っ黒やん。
ボタンも文字も何も出てこない。。。あかん。 何やっても解決しないぞ、これ
と思って、別のライブラリを使って動かしたところ>You are running a VERY old version of tkinter 8.5.9.
>You cannot use PNG formatted images for example. Please upgrade to 8.6.xえ? バージョン古いの??
#実は気づくタイミングがありました。
直そうとしていた時に
Pythonの対話モードでバージョン確認したんですよ。~~~
>>> tkinter.Tcl().eval(‘info patchlevel’)
‘8.5.9’
~~~
完全に見落としました。 Tcl/tkが入ってて満足してました。
MacOSでTkinter8.5系は表示バグの致命的欠陥があります。#よし!! アップデートするか!!
ターミナルに
Pythonで日本の新型コロナ患者情報取得
#環境
`Win10`
`Python 3.8.10`
・`requests==2.25.1`
・`pandas==1.3.1`#実装
“`py
import requests as rq
import pandas as pdurl = ‘https://covid19-japan-web-api.vercel.app/api/v1/positives?prefecture={0}’
prefectures = [‘北海道’,’青森県’,’岩手県’,’宮城県’,’秋田県’,’山形県’,’福島県’,’茨城県’,’栃木県’,’群馬県’,’埼玉県’,’千葉県’,’東京都’,’神奈川県’,’新潟県’,’富山県’,’石川県’,’福井県’,’山梨県’,’長野県’,’岐阜県’,’静岡県’,’愛知県’,’三重県’,’滋賀県’,’京都府’,’大阪府’,’兵庫県’,’奈良県’,’和歌山県’,’鳥取県’,’島根県’,’岡山県’,’広島県’,’山口県’,’徳島県’,’香川県’,’愛媛県’,’高知県’,’福岡県’,’佐賀県’,’長崎県’,’熊本県’,’大分県’,’宮崎県’,’鹿児島県’,’沖縄県’
VSCodeでコードユニペット(Python)を登録する – 備忘録
#目的
Pythonのプログラムを書く際にお約束の文言を毎回入力するの面倒なので,コードユニペットに登録してしまおうというヤツ
##こんな感じに
『shebang』って打とうとすると...
![スクリーンショット 2022-01-18 16.17.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2430126/c15745e2-306b-91cd-f91e-7105064c9492.png)
予測候補が表示されて
![スクリーンショット 2022-01-18 16.18.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2430126/41be681c-9fa1-ed4e-483e-8a2b358f5d81.png)
シバンが入力される
同様に『main』って打とうとすると...
![スクリーンショット 2022-01-18 16.20.05.png](https://qiita-image-store.s3.ap
asyncio アプリ内から Slack にメッセージを投稿しよう
「[Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)」シリーズの記事です。公式 SDK についての概要、他にも記事がリンクされていますので、[こちらのエントリーページ](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)にもアクセスしてみてください。
## Slack 公式 SDK の asyncio サポート
このページに辿り着いたということは [asyncio](https://docs.python.org/3/library/asyncio.html) を活用してアプリケーション開発をされていますか?
Slack 公式 SDK である [slack-sdk](https://pypi.org/project/slack-sdk/) は [AIOHTTP](https://docs.aiohttp.org/en/stable/c
【Python、Ruby】約数と総和
#はじめに
元々Rubyを中心に、学んでいましたが、Rubyで書く内容を他の言語であればどのように書くのか?とふと思い、Pythonに興味があったため、勉強をしてみようと思いました。
そんな中で、
##### AIZU ONLINE JUDGE
というサイトを知り、ちょうど良いトレーニングになりそうだと思ったので、少しずつ挑戦してみることにしました。
本当は、アプリ等をどんどん作成したほうがトレーニングになるのかなと思いつつ、基礎の部分として損はないだろうと思い、やり始めています。##3-D 約数の数
######3つの整数 a、b、cを読み込み、aからbまでの整数の中に、 cの約数がいくつあるかを求めるプログラムを作成してください。
######Input
a、b、cが1つの空白区切りで1行に与えられます。######Output
約数の数を1行に出力してください。######例
a=1 , b=10 ,c=30のとき、
約数の数は6つ####解答
“`ruby:3-D.rb
# 回数を調べる
a,b,c = gets.split(” “).map(&:to_