- 1. Python ライブラリとかimportの話 その2(自分用)
- 2. Python ライブラリとかimportの話 その1(自分用)
- 3. 【Python】ざっくり見てわかるデコレータの作り方と使い方
- 4. pythonでプロセス全体をpingでモニタリングするサンプル
- 5. Python文法~初級から中級~
- 6. 【ROS2 colcon buildトラブルシューティング】AttributeError: module ‘importlib_metadata’ has no attribute ‘EntryPoints’の対処方法
- 7. pythonでエクセル、パワポ、メモ
- 8. Python Djangoを使ってみる その3(自分用)
- 9. Fletアプリを実行しようとしたときにlibmpv.so.1が開けないと出た時の対処法
- 10. [Python] 選択ソートを理解しよう!
- 11. I tried RPAChallenge using selenium for python
- 12. Python Djangoを使ってみる その2(自分用)
- 13. 【Fastapi】エラー「No module named ‘httpx’ while import TestClient」の解決方法
- 14. Python Djangoを使ってみる(自分用)
- 15. python 3.13+pywin32でExcelを操作してみる
- 16. 【Python入門】変数のスコープについて
- 17. python try構文の話(自分用)
- 18. python classの理解を深めるための記事(自分用)
- 19. Pythonのファイルオープンでの”a+”
- 20. Windows 10 Pro + Python3 + xlrd を使ってみる
Python ライブラリとかimportの話 その2(自分用)
前回に続いて、importやライブラリについて応用編を書いてみる。
目次
1. fromとは
2. ライブラリ?関数?クラス?(ここが理解できたら面白くなる!)
3. まとめ1.fromとは
–
前回importについて記述したが、他にもfromという構文があり、最初は意味がわからなかった。
“`python:example.py
from datetime import date
“`
これを日本語で言うと、「datetimeというライブラリから、dateっていう機能だけを装備する」みたいな意味となる。2.ライブラリ?関数?クラス?
(ここが理解できたら面白くなる!)
–
2.1:構造を図示して確認する
“`
datetime ← from
|
├── class date ← import
├── class time
├── class tzinfo
“`
2.2:使い方をまとめてみる
“`python:クラスをインポート
from datetime import date
today = date.today() # date クラスを使用
print(
Python ライブラリとかimportの話 その1(自分用)
Python始めたての頃、ライブラリやimportの意味がよくわからなかったので、あの時の自分のために書き残しておく
1.importとは
–
スクリプトの冒頭によく出てくる呪文のことである
“`python:example.py
import numpy as np
“`
これはnumpyというライブラリをnpという名前で使いますみたいな意味である。2.まとめ
–
ライブラリ:便利機能集(numpyは計算に特化した便利機能集である)
import:ライブラリを装備するイメージ(使える状態にする)
as:当該スクリプト(example.py)の中においては、np = numpy と解釈してプログラムを進めて欲しいというお願いと合意の証次回はimportの応用編みたいなものを書くことにする。
【Python】ざっくり見てわかるデコレータの作り方と使い方
## デコレータとは(ざっくり)
これです
`@` がついている子のことをデコレータといいます
デコレーション(装飾)してくれる子です
別名ラッパーと言ったり言わなかったりします
(今回,呼び名自体はなんだっていいので真偽は割愛です)
“`Python
@handmade_decorator
def just_func(just_hensu):
print(just_hensu)
“`## 何ができるの?
関数の前後に他の処理を入れることができます![やりたいこと.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294646/0daa2436-c168-ea13-af47-b652ddeeceb4.png)
## どう嬉しいの?
共通の処理を簡潔に適用できます
例えばこんな感じです– どの関数も 5 回はリトライするようにしたい
– 関数実行後に共通したログを出力したい
– 関数実行前に共通のチェックを入れたいこのようなお悩みを,
関数定義の前に `@` を書いてあげるだけで
pythonでプロセス全体をpingでモニタリングするサンプル
# 特定のホストを再起動させ、プロセス全体をpingでモニタリングするサンプル
“`
import subprocess
import time
import threading
from datetime import datetimedef ping_host(host):
“””
指定されたホストに対して単一のpingを実行する。Args:
host (str): pingを実行するホストのアドレスReturns:
tuple: (bool, float) pingが成功したかどうかと応答時間
“””
try:
start_time = time.time()
result = subprocess.run([“ping”, “-c”, “1”, host],
stdout=subprocess.PIPE,
Python文法~初級から中級~
# 目次
[はじめに](#はじめに)
[コメント文](#コメント文)
[Pythonの型](#Pythonの型)
[数値計算](#数値計算)
[論理演算子](#論理演算子)
[比較演算子](#比較演算子)
[リスト](#リスト)
[タプル](#タプル)
[辞書](#辞書)
[集合](#集合)
[for文](#for文)
[if文](#if文)
[while文](#while文)
[enumerate関数](#enumerate関数)
[zip関数](#zip関数)
[関数](#関数)
[ジェネレーター](#ジェネレーター)
[内包表記](#内包表記)
[ラムダ](#ラムダ)
[クロージャー](#クロージャー)
[デコレーター](#デコレーター)
[例外処理](#例外処理)
[おわりに](#おわりに)# はじめに
ここでは、Pythonで使用される基本的なデータ構造や文法について説明します。ここでは実際にコードを入力した後の出力結果まで記載しますがもしご自身で結果を確認したい場合はGooogleCol
【ROS2 colcon buildトラブルシューティング】AttributeError: module ‘importlib_metadata’ has no attribute ‘EntryPoints’の対処方法
# はじめに
CIで実施していたROS2のcolcon buildにエラーが出るようになったため対策を紹介する。# 動作確認環境
* Ubuntu 20.04 x64
* ROS2 Foxy# エラー原因
importlib_metadataに“`EntryPoints“`が含まれていないのが原因。
“`bash
AttributeError: module ‘importlib_metadata’ has no attribute ‘EntryPoints’
“`setuptoolsのバージョンが上がったため、構成が変更されたため。詳細は下記参照。
https://github.com/pypa/setuptools/issues/4490
# 対策
エラーが発生しないsetuptoolsにダウングレードする。CIを利用している場合は、最初にダウングレードしておく。ver 68.2.2では問題なく動作したので以下のコマンドを実行してダウングレードする。
“`bash
pip install ‘setuptools<=68.2.2' ```
pythonでエクセル、パワポ、メモ
ChatGPTに聞きながらまた色々サンプル作成
●複数のcsvをxlsxにまとめるサンプル
●pptxを読み込んで適当にダンプ
●pptx作成サンプル●複数のcsvをxlsxにまとめるサンプル
“`python:test_openpyex_csv2xlsx.py
import glob
import csv
from openpyxl import Workbook
from openpyxl.styles import Border, Side
import math
# 新しいWorkbookを作成
wb = Workbook()# 罫線のスタイルを定義
thin_border = Border(left=Side(style=’thin’),
right=Side(style=’thin’),
top=Side(style=’thin’),
bottom=Side(style=’thin’))# CSVファイルのパスを取得
csv_file
Python Djangoを使ってみる その3(自分用)
今回はDjangoの modedls.py について考える
⇒ 前回の内容1.ディレクトリ構造を確認
–
myappディレクトリに存在する、現時点で使い方のよくわからないファイルである。
“`
myappディレクトリmyapp/
│
├── templates/
│ └── myapp/
│ └── index.html # HTMLファイル
└── migrate/
│ └── __init__.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py ← 今回のテーマ
├── tests.py
├── views.py
“`2.モデルとは(GPT調べ)
–
Djangoのモデルは、コンピュータにものの情報を覚えさせるための設計図みたいなもの。
例えば、おもちゃのリストを作りたいとする。
Fletアプリを実行しようとしたときにlibmpv.so.1が開けないと出た時の対処法
WSL2で
`flet run FILENAME.py`
を実行したときに以下のエラーが出た!`Error while loading shared libraries: libmpv.so.1: cannot open shared object file: No such file or directory`
このエラーに対しては以下を実行することで解決しました。
“`
sudo apt update
sudo apt install libmpv1
“`追記:
公式ドキュメントにLinuxでは追加の前提条件があったため乗せときます
https://flet.dev/docs/publish/linux#prerequisites
[Python] 選択ソートを理解しよう!
## 概要
多分他に記事は山程ありそうなので、自分自身の辞書代わり程度に記載します!競技プログラミングに興味が前からありますが、
最近Pythonに移行したので基礎からやってますー## 選択ソートとは?
要素を順番に確認し、最小値 or 最大値の要素を見つけたら
その要素を先頭から順に並び替えます。所謂ソートアルゴリズムってやつですな。
## 計算量
常にリスト全体の中から最小(または最大)の要素を探すため、
リストの長さが 「𝑛」の場合、比較の回数は 𝑂(𝑛2乗)になります。リストがほとんどソート済みでも時間計算量は変わりません。
## 特徴
:::note info
メリット
・実装が簡単(理解しやすい!)
・メモリ使用量少
::::::note warn
デメリット
・比較回数が多いため、効率が悪く、リストが大きいと処理が遅い
:::## 例
### 手順を簡単な例でイメージしてみよう!次のリスト [29, 10, 14, 37, 13] を昇順にソートしてみましょう!
### 1. 最小値を探そう
[29, 10, 14, 37, 13] か
I tried RPAChallenge using selenium for python
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1812041/a7949a6e-5049-66a4-7391-87a4d83efea1.png)
Hello! My name is Keita.
As a former QA engineer, I am interested in RPA technology.
Therefore, I tried RPAChallenge using selenium for python.# Technology
I used python on a site called RPAChallenge (https://rpachallenge.com/).Briefly summarized below.
### selenium
Selenium is automation tool for webapplication test. You can automation operate webblowser without opera
Python Djangoを使ってみる その2(自分用)
今回もDjangoについて、使いながら気付いたことを書き留めていく。
⇒ 前回までの内容1.ディレクトリ構造を確認
–
メインディレクトリを含めた現在のディレクトリ構造を見てみる。
前回触ったファイルの位置関係だけを確認しておく。urls.py: メインディレクトリ、追加したアプリのどちらにも存在
settings.py: メインディレクトリにだけ存在
views.py: 追加したアプリにだけ存在
“`
myprojectのディレクトリmyproject/
│
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
├── wsgi.py
myapp/
├──
└── migrate/
│ └── __init__.py
├── __init__.py
├── ad
【Fastapi】エラー「No module named ‘httpx’ while import TestClient」の解決方法
# 概要
fastapiのバージョンをアップグレード後、テストを行ったら以下のエラーになりました。> ModuleNotFoundError: No module named ‘httpx’ while import TestClient
こちらの原因と解決方法を紹介します。
# 前提
`TestClient`とは、FastAPIのエンドポイントをテストすることができるツールです。今まで`httpx`というモジュールをインポートせずとも利用できていました。
しかし、`0.73.0`から`0.112.1`にバージョンアップを行なった際に上述のエラーが出ました。# 原因
原因は、`0.87.0`から`TestClient`は`HTTPX`をベースにするように変更があったため、でした。
以下の通り、従来は`requests`をインポートしていればよかったのが`httpx`をインポートする必要が生じるようになりました。> Now the TestClient is based on HTTPX instead of Requests.
引用元:https://github.
Python Djangoを使ってみる(自分用)
現時点で明確に作りたいwebアプリがあるわけではないが、フレームワークを使い方がわからないと何が作れるかもよくわからない。
とりあえず使い方を理解しながら、概念的なものをインプットし、簡単なアウトプットをしていきたい。目次
1.フレームワークとは
2.なぜ使うのか
3.よく使われるWebフレームワーク(GPT調べ)
4.Djangoを使ってみる
5.ディレクトリ構造
6.アプリケーション作成
7.開発用サーバーの起動1.フレームワークとは
–
Web開発におけるフレームワークとは、ウェブサイトやウェブアプリケーションを効率的に開発するために、事前に用意されたコードやツール。
とりあえず「設計図」と「部品」が揃った便利なものと理解しておく。フレームワークの役割
Webサイトやアプリをゼロから作るのはとても大変です。HTML, CSS, JavaScriptの他にも、データベースとの連携やユーザー管理など、必要なことがたくさんあります。これらをすべて一から自分で作るのは、まるで木材を切り出して釘やハンマーも自作して家を建てるようなもの。
フレームワークを使えば、
python 3.13+pywin32でExcelを操作してみる
# 目的
python 3.13,0 がリリースされて動作確認ということで
[pywin32でExcelを操作してみる](https://qiita.com/tabizou/items/8e8b03e9b5415e3319c9)
を実行してみたらサンプルコードの xlc.xlLeft が参照不可をいうエラーメッセージが発生
これを解決するためには、パッケージの追加後の処理の項目にあるように
以下を実行する必要があるPS C:\> python Python313\Lib\site-packages\win32com\client\makepy.py既存のメモを修正するか迷ったのだけど、修正版を書くことにする
pywin32+Excelの調べものついでに少しだけ触って気がついたことをメモっておく## 気が付いたこと
軽く検索したときに
“`python
import win32com.client
xl = win32com.client.Dispatch(“Excel.Application”)
“`
を見て以下を連想したんだけど
“`vb
Di
【Python入門】変数のスコープについて
# Pythonの変数スコープの概念について
Pythonの変数のついてはLEGBルールという概念に基づきます。
LEGBはローカル、エンクロージング、グローバル、組み込み関数をスコープとして、スコープの検索順序を表します。各スコープについて説明します# LEGBについて
変数を参照するとき、Pythonは以下の順序でスコープを検索します。
1. ローカル
1. エンクロージング
1. グローバル
1. 組み込み関数各スコープについて解説をしてきたいと思います。
## ローカルスコープについて
関数内部で定義された変数は、ローカルスコープとなります。
関数内のみで有効となるため、関数外からのアクセスはエラーとなります。“` python
def local_scope_function():
#ローカルスコープ
local_var = “ローカル変数”
print(local_var)def test_module():
local_scope_function()
# print(x) # NameError: name
python try構文の話(自分用)
エラーハンドリング(例外処理)について記述する。
1.エラーハンドリングとは(例外処理)
–
pythonには様々なエラーが存在し、適切な処理をしない場合、そこで処理が中断される。
そのため予め発生しそうなエラーを予測し、対処法を定めておくことがエラーハンドリングである。(そもそもエラーが発生しないように作れないか考えることが重要)“`
SyntaxError: # 原因 ⇒ 文法ミス(コロンやカッコの不足等)
if True print(“Hello”) # コロンが必要IndentationError: #原因 ⇒ インデントが正しくない場合に発生
def foo():
print(“Hello”) # インデントが必要NameError: #原因 ⇒ 存在しない変数や関数を参照しようとすると発生
print(undeclared_variable) # 変数が未定義TypeError: #原因 ⇒ 不正な型を持つオブジェクトに対して操作を行った場合に発生
print(1 + “2”) # 整数と文字列を足すことはできないValueError: #原
python classの理解を深めるための記事(自分用)
とにかくclassがいまいち理解できていないので、ここに記述しながら理解を深める
1.classとは
–
classとはオブジェクト指向における中核的をなす概念・・・いや、わからんわ:angel:
そのため、自分なりに色々と調べて自分なりに理解できるように纏めてみる。
classに関連するものとしてinstanceやinitについても記述する。2.classの構造
–
クラスの構造は以下のとおりであり、処理の意味を記述しておく。クラス = 設計図
インスタンス = 設計図に基づいて作ったもの(オブジェクト)“`
# Dogクラスという設計図
class Dog:
def __init__(self , name , breed):
self.name = name
self.name = breeddef bark(self):
print(f”{self.name} is barking”)# my_dogとしてインスタンス化す
Pythonのファイルオープンでの”a+”
# “a+”でファイルの中身を読めなかったけど、やっと使い方を理解したのでメモ
“`python
titles = [ “title1”, “title2”, “title3” ]
with open(“file1.txt”, “a+”) as fd:
fd.seek(0)
lines = fd.read().splitlines()
for title in titles:
if title in lines:
print(f”{title} already exist”)
else:
fd.write(f”{title}\n”)
print(f”{title} added”)
“`
Windows 10 Pro + Python3 + xlrd を使ってみる
# 目的
Python3 + xlrd で ワークシート上のデータを取り込む
このコードをなぜ書いたのか覚えていないのだけど
python 3.13 にアップしたのでついでに試してみた
※パッケージのメンテはされていないようなので
※積極的に使う理由は無い気がする
ここで作成したファイルを取り込んでいる
[Windows 10 Pro + Python3 + OpenPyXL で CSVファイルを書き込んでみる](https://qiita.com/tabizou/items/3bc827eda11f58db42e6)## パッケージの追加
PS C:\> pip install xlrd==1.2.0## サンプルコード
“`python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8# pip install xlrd
# xlrd-2.0.1 を install する -> 動作不可
# https://xlrd.readthedo