Python3関連のことを調べてみた2023年01月06日

Python3関連のことを調べてみた2023年01月06日

pythonのバージョンを切り替えたい(python3.9–>python3.10にしたいことがきっかけ)

pythonのバージョンを切り替えたい場合の備忘録です(python3.9–>python3.10にしたいことがきっかけ)

## Linux(ubuntu20.04)の場合

以下の方法を参照して`update-alternatives`を使う方法で`python3.10`を使えるように切り替えることができた

> [Ubuntu 20.04にPython3.xを複数インストールして切り替える方法(PPA・apt)](https://qiita.com/murakami77/items/b612734ff209cbb22afb)
>
>
> “`リポジトリ追加
> sudo apt install -y software-properties-common
> sudo add-apt-repository ppa:deadsnakes/ppa
> “`
>
> apt update
>
> “`
> sudo apt update
>“`
>
>Python 各バージョンインストール
>
>“`
>sudo apt install -y python3.10 pyt

元記事を表示

PHPerが学ぶPython② クラス

うっすっす。豚野郎です。
今回は前章の続きです。

https://qiita.com/pig_buhi555/items/301f7c8eabd1a5fd121f

変数・配列がわかれば、次はクラスかな?と思い書いていきます。

※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。

**バージョン:3.9.1**

# 1. クラス
“`class.py
class Sample:
class_test = ‘クラステスト’
# 第一引数は必須。慣習的にself
def test(self, test):
print(test)

# Sampleクラスのclass_testを使用
test = Sample.class_test

# インスタンス化
sample = Sample()

# テストメソッド呼び出し
sample.test(test)
“`
“`
$ python class.py
クラステスト

元記事を表示

PHPerが学ぶPython① 変数・配列・タプル

hi!豚野郎です。
明けましておめでとうございます。

Pythonの基礎の書物を1冊読んだので、解説していきます。
変数・配列・タプルの説明だけで記事1つ書けそうだったので、その説明からしていきます。

※ 注意:内容はPHPか何かの言語を書いたことがある方向けなので、
説明を割愛している箇所は多々ありますので、ご了承ください。

**バージョン:3.9.1**

# 1. 変数
※ 注意点は先頭1文字目に数字を使えないことです。
– NG
“`test.py
# コメント
1test = 1

print(1test)
“`
“`
$ python test.py
File “パス/test.py”, line 2
1test = 1
^
SyntaxError: invalid syntax
“`
数値の代入
“`test.py
# コメント
test = 1

print(test)
“`
“`
$ python test.py
1
“`
文字列の代入(シングルクォーテーションでも可)
“`t

元記事を表示

PythonZen & PEP 8 検定試験で学ぶ Pythonのするべきことではないこと

# はじめに
本記事は**PythonZen & PEP 8 検定試験**の勘所について記載しています。

Pythonに関する検定及び資格試験は、一般社団法人Pythonエンジニア育成推進協会によって運営されています。

本記事執筆時点では以下に示す4種類があります。

– [PythonZen & PEP 8 検定試験](https://pythonzen-pep8-exam.jp/)
– [Python 3 エンジニア認定基礎試験](https://www.pythonic-exam.com/exam/basic)
– [Python 3 エンジニア認定実践試験](https://www.pythonic-exam.com/exam/jissen)
– [データ分析試験](https://www.pythonic-exam.com/exam/analyist)

PythonZen & PEP 8 検定試験は、2022年3月1日より**無償**で提供されています。
本試験を受けることで、Pythonのするべきことではないことについて、学ぶことができます。

## Pythonの飛

元記事を表示

discord.py V2でButtonを使いたい!(on_button_click)

## はじめに
今回は、discord.py(V2)を普段から使用している人向けの記事となっております。
初学者の方は、
[discord.pyでスラッシュコマンドを使ってみる](https://qiita.com/Luapy/items/3abff9575e132e2955ec)
などを最初に見ておくといいかもしれません。

## discord.py、Buttonでつまずくくね?
最近、discord.pyを使用してBotを書いている知り合いからDMで連絡が来ました。
どうやら、Botを再起動したらButtonが反応しなくなるみたいです。

状況のスクリーンショット

通常↓

再起動後↓
![image.png](https://qiita-image-store.s

元記事を表示

json Lines形式への変換

# json Lines形式とは
複数のjson形式のオブジェクトを1行ずつ書き込んだ(フラット化)テキストファイルのフォーマット

– json Lines形式(フラット化)
“`
{“name”: “Sato”, “age”: 20, “city”: “New York”}
“`

– json 形式
“`
{
“name”: “Sato”,
“age”: 20,
“city”: “New York”
}
“`

## json Lines形式の調査をした理由

json形式のビックデータをAWS Glueデータカタログに取り込む際に、AWS Athenaでデータの読み込み時にエラーとなり、json形式からjson Lines形式へ変換しなければならない事象が発生したため、変換方法を調査した。
※Glueデータカタログについて、json形式で読み込めない場合、json Lines形式への変換を考えると良い

## 変換方法

– jqコマンドの場合、-cオプションを利用
“`
$ cat test1.json | jq
{
“name”: “Sato”

元記事を表示

Pythonの小技3

#### DateTimeの処理
“`Python
from datetime import datetime

datetime_1 = ‘20210321’
datetime_2 = ‘20210301’

# 文字列からフォーマットを指定してdatetime型へ変換
convert_datetime_1 = datetime.strptime(datetime_1, ‘%Y%m%d’)
convert_datetime_2 = datetime.strptime(datetime_2, ‘%Y%m%d’)
dt = convert_datetime_1 – convert_datetime_2
print(dt.days)
print(type(dt.days)) #int
“`

元記事を表示

【AtCoder】ABC242 のA,B,C,D における Python解説

ABC 242 のA,B,C,D 問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑色 882](https://atcoder.jp/users/tsuru1471)
20230103 現在

# 目次
[はじめに](#はじめに)
[A.T-shirt](#at-shirt)
[B.Minimize Ordering](#bminimize-ordering)
[C.1111gal password](#c

元記事を表示

FlaskでGETリクエストの二種類を駆使する

あけましておめでとうございます。
2023年は皆さまにとってよりよい年になりますように。
### 問題背景
さて、年の初めからPythonフレームワークのFlaskを触っていると、GETメソッドについて壁にぶつかりました。
フォームはPOSTの形式でデータを送信します。ただ、POSTでリクエストするまでもない場合があります。
そこでクライアントからinputされたデータを、GET方式で送り返そうと思ったのですが。。。
“`HTML:sample.html


入力したものを表示させる




{{ item }}




“`

元記事を表示

ObsPyで読み込んだ地震波形データをMatplotlibで描画してみよう

# 本稿の目標
以前の記事で、読み込んだ波形を描画するのは、単に

“`python
st[0].plot()
“`
とするだけでOKだとご紹介しました。これはこれで便利なのですが、matplotlibを使って、工夫を凝らした図を作りたいということもあるでしょう。そこで、matplotlibを使って簡単な図を作ります。単一の波形を描画した上で、目盛りの数値の書式の指定、軸ラベルやタイトル、その他任意の印字をします。なお、複数の波形を使った描画については、回を改めて紹介しようと思います。

# 波形の描画
波形データは、`st[0].data`に1次元の`numpy.ndarray`の形で入っています。例えば、以下のようにすれば、図が描けます:

“`python
import matplotlib.pyplot as plt
plt.plot(st[0].data)
plt.show()
“`
![matplotlib_plot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242916/4d8

元記事を表示

VSCode + DockerでAtCoderのテスト・提出ができる環境構築【Python,PyPy】

# はじめに
私は2022年9月からAtCoderを始めて、今までサイト内にあるコードテストを使ってPython・PyPy3で問題を解いていました。
しかし、サンプルのテスト・提出をするのに毎度コピー&ペーストするのが煩わしくコマンド一つで完結させたいのと、ローカル環境下に色々インストールすると今後依存関係等で大変になるかと思い、VSCode + Dockerを使って簡単にテスト・提出ができる環境構築を行いました。
環境はWindows10を使用しています。

# 準備
以下のものがインストールされていない場合は事前に準備をしておきます。
細かいインストール手順等は今回のメインではないため割愛させていただきます。

### VSCode
今回はエディターにVSCodeを使用するのでインストールをします。
VSCodeからDockerのコンテナ内に入って作業行うので、`拡張機能「Remote-Containers」`をインストールします。

### Docker
私はWindows10環境なのでDocker Desktop for Windowをインストールしました。

### git

元記事を表示

ラズパイで施錠通知を作ろう!(2023/1/4更新:画像は送れないです?)

## 突然何を思い立った!?
いや、自分旅行出かけるの好きなんですよ。別に長期連休でなくても小旅行したりと家を空ける時間が長い日があるわけです。ふと思うわけですよ、しかも出発して10分くらい後に。あれ、鍵かけたっけ??それはそれは不安に駆られるわけです。でも戻って確認したところで鍵かかってる訳ですよ。何が気になるって今鍵の状態どうなってるんだろ?が分からないから気になるんですよね。だったら自分だけに届く施錠通知があればいいんじゃね?なんなら高齢でちょっとオトボケ入った両親も使えたら便利じゃね?ってことで。

## 作りたいもの
・鍵を掛けたら鍵の状態を撮影、「鍵を掛けた!」とテキストでLineに通知を飛ばしたい

## 何で作りますか
取り敢えず家に転がっていた二つ
・ラズパイzero W
~~・ pi camera~~
・マグネットセンサ
これさえあればGPIOでマグネットセンサのON・OFFで鍵の状態を検知、~~鍵の状態が変化したらpi cameraで写真を撮る~~という作りたいものが達成できそう。
※Raspberry Pi Zero Wの性能が低すぎて画像を撮影して送るだけで大

元記事を表示

【体験記】非プログラマーがRaspberry piにウェブアプリを実装し、化学系企業の社内に導入した件

# この記事は?
化学系企業に勤める平社員が、独学で学んだpythonと少しのhtmlの知識でWebアプリを開発し、社内に導入するまでの物語である。

記事の目的は以下の通りです。
* 自分が実装したことや工夫した点を整理すること。
* pythonを学習したけど、どうやって共有しようかと困っている人にヒントを与えること。

# 目次
1. [背景](#-背景)
1. [開発したWebアプリ](#-開発したWebアプリ)
1. [構想](#-構想)
1. [実装](#-実装)
1. [反響](#-反響)
1. [所感](#-所感)
1. [今後の予定](#-今後の予定)

# 背景
元々pythonを業務効率化のために勉強し、自分一人のために活用していましたが、それでは勿体ないと考え、社内の人達に利用してもらおうと思ったのがきっかけです。
作成したスクリプトのうち、社内で共有しようと思ったのが**ベイズ最適化**でした。ベイズ最適化とは、ブラックボックス関数 (関数式が不明)の大域的最適解を求める手法です。実験によって得られた値からブラックボックス関数を予測し、良好な結果を与えるxを

元記事を表示

にゃんこスイーパー

Python+Cursesで、にゃんこスイーパーを書いてみました。
Ubuntuのターミナルで動きます。
ファイルに、chmod +x nyankosweeper.pyとして、実行権を付けて動かして下さい。

$./nyankosweeper.py [number of cats]として、動かします。
[number of cats]は、省略できます。省略すると、猫の数は58個となります。

スペースキーで、開き、’z’キーで、マークを付けます。カーソルは矢印キーで動かします。
’q’キーで抜け出せられます。

pyinstallerで、コンパイルできます。コンパイルしなくとも、そもそも速度はあんまり問題ないですが。

“`nyankosweeper.py
#!/usr/bin/python3

import curses
import random
import locale
import select
import sys

xsize = 40
ysize = 23
vvram = [[0 for i in range(ysize)] for j in range(xsiz

元記事を表示

マルコフ連鎖っぽいので発音から可愛い言葉を作る

## はじめに
なんとなく、音の感じが可愛いなと思う単語があると思います。
そのような意味のない単語を新しく生成(創造)することはできないかと模索した話です。

## 可愛い単語
可愛い言葉(=可愛い単語)を定義するのは難しいですが、ここでは発音した時の音の感じが可愛い時、可愛い単語だと定義します。

新しい言葉をどのようにして生成しようかと考えた時に、文章を生成することができるマルコフ連鎖から着想を得て、発音ベースでマルコフ連鎖をしてみたらどうだろうかと思いました。
そこで、ここでは発音をマルコフ連鎖して可愛い単語を生成してみたいと思います。

### マルコフ連鎖による文章の生成とは
マルコフ連鎖とは、現在の状態から確率を用いて次の状態を決定する連鎖のことです。
マルコフ連鎖では、文章の集合からある単語に対して各単語が来る確率をあらかじめ学習し、その確率を元に現在の単語から次の単語をもとめることによって文を生成します。
マルコフ連鎖自体に関する詳しい説明は[マルコフ連鎖(Wikipedia)](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%8

元記事を表示

HHKBプログラミングコンテスト2022Winter(AtCoder Beginner Contest 282) A~C問題(自己流解法)

この記事は2022年12月17日に行われたHHKBプログラミングコンテスト2022Winter(AtCoder Beginner Contest 282)のA,B,C問題の解法を自分なりに解説してみた記事になる。

## コンテスト:[HHKBプログラミングコンテスト2022Winter(AtCoder Beginner Contest 282)](https://atcoder.jp/contests/abc282)
### [A問題:Generalized ABC](https://atcoder.jp/contests/abc282/tasks/abc282_a)
– 問題文
整数 K が与えられます。
英大文字を A から昇順に K 個繋げて得られる文字列を答えてください。
“`
K = int(input())
ans = ”
# chr関数は65~90をA~Zに変換する
for x in range(65,65+K):
#文字列連結
ans += chr(x)
print(ans)
“`
Chr関数についてはこちら
https://www.tip

元記事を表示

pndas.DataFrame.queryを高速化したい

# 結論
関数を使用せず直接条件を記述したほうが、`query`を使用するよりも処理速度が速い
“`python
for i in range(0, 100):
df_iris[df_iris[“sepal length (cm)”] >= 5]
“`
# 背景
`query`を使用した処理を作っていたが、処理時間が長かったので短縮できないか検討してみた。

# 環境
| 項目 | 情報 |
| —- | —- |
| OS | Windows 10 |
| Python | 3.9.7 |
| pandas | 1.3.4 |
| sklearn | 1.1.3 |

# 速度比較
## 事前準備
“`python
import time
import pandas as pd
from sklearn.datasets import load_iris

# irisのデータセットを準備
data_iris = load_iris()
df_iris = pd.DataFrame(
data_iris.data,
columns=data_i

元記事を表示

Django REST FrameworkのBasic認証

# 概要
Django REST FrameworkでBasic認証を行う方法を紹介します。

## Basic認証とは?

ベーシック認証(Basic認証)とは、Webサイトの特定の領域、つまりページやファイルにアクセス制限をかけることができる認証方法の一つです。
ベーシック認証をかけると、認証をかけたWebサイトにアクセスしようとしたとき、認証ダイアログが立ち上がり、ユーザー名とパスワードの入力が求められます。

### DRFのBasic認証のドキュメント

https://www.django-rest-framework.org/api-guide/authentication/#basicauthentication

## GitHubリンク

サンプルのソースをGitHubで公開しています。

https://github.com/ryo-keima/drf-authentication-demo

# 環境

## 各種バージョン
– macOS Monterey 12.4
– Apple M1 Max
– Python v3.10.9
– Django v4.1

元記事を表示

Pythonの勉強

# 目的
Pythonの知識を習得するため、わかりにくい点やノウハウなどを蓄積していく。

# 内容
## 辞書型とリスト型の使い分け
辞書型では、キーで検索できるため、キーに対応した値を出力できる。
一方、リスト型では、キーで検索できない。
“` Python
#リスト型
l = [
[‘apple’, 100],
[‘banana’, 200],
[‘orange’, 300],
]
#辞書型
fruits = {
‘apple’: 100,
‘banana’: 200,
‘orange’: 300
}
print(fruits[‘apple’])
“`
“`
#出力結果
100
“`

## 関数のdefault引数の注意点
default引数でリストを呼び出す際、1回目の呼び出しで、空のリストが返され、値が入る。
ただし、2回目の呼び出しでは、空のリストではなく、値の入ったリストが呼ばれ、値が追加される。

2回目で空のリストが返されないのは、引数lにリストの先頭のアドレスが入っているためである。
1回目の呼び出しで、リス

元記事を表示

【AtCoder】ABC254 のA,B,C,D,E における Python解説

ABC 254 のA,B,C,D,E問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑色 882](https://atcoder.jp/users/tsuru1471)
20221231 現在

# 目次
[はじめに](#はじめに)
[A.Last Two Digits](#alast-two-digits)
[B.Practical Computing](#bpractical-computing)
[C

元記事を表示

OTHERカテゴリの最新記事