Python3関連のことを調べてみた

Python3関連のことを調べてみた

【Python-unittest】テストコード書いてみた!!

# テストコードを書こう
今回の記事はPythonでテストコードを書いてみたのでそれを共有します。
Python言語標準のユニットテストフレームワークである`unittest`を使用します。

## テスト対象コード
今回のテスト対象コードは以下です。
“`python
def add(a, b):
if a == 1 and b == 3:
return 3
elif a == 3 and b == 3:
return 7
return a + b
“`

## テストコード(正常)

“`python
import unittest
from exsample import add

class AddTest(unittest.TestCase):
def test_get_sum_integers(self):
“””add関数のテストコード”””
actual = add(1, 2)

expected = 3
self.ass

元記事を表示

ABC347 with Python(A~E)

ABC347のA~E問題をpythonで解説していきます。個人的にはC問題が難しかったです。

# A – Divisible
## 問題

正整数 $N,K$ 及び長さ $N$ の数列 $A=(A_1,A_2,\ldots,A_N)$ が与えられます。

$A$ に含まれる要素のうち、$K$ の倍数であるもののみを全て取り出し、それらを $K$ で割って出力してください。

https://atcoder.jp/contests/abc347/tasks/abc347_a
## 考察
問題文の通り実装するだけ。

## コード
“`python:A.py
N, K = map(int, input().split())
A = list(map(int, input().split()))
ans = []
for a in A:
if a % K == 0:
ans.append(a // K)
print(*ans)
“`
# B – Substring
## 問題

英小文字からなる文字列 $S$ が与えられます。$S$

元記事を表示

DockerでJupyterHub環境を構築する。

# はじめに
開発メンバーが増えたので、jupyterhubを立ち上げてユーザーごとにjupyterlabできるようにしようかな、と。これは、作業の備忘録です。

# 参考
いつものとおり、Qiita先輩方の情報で本件対応させていただきます。参考サイトは次のとおりです。場合によってはこの記事を読むよりも、以下を直接読んだ方がいいかもしれません。しかし、情報が古く最新の環境にマッチするかどうか保証できません。

参考(1)

https://qiita.com/dyamaguc/items/db1da3084e36029f20cc

参考(2)

https://www.hinomaruc.com/install-jupyterhub-on-ubuntu22-10-using-docker/

参考(3)

https://qiita.com/noguhiro2002/items/99758ad66587f24c0ef2

## この記事では、2024年3月の jupyterhub/jupyterhub Doecker Hub の latestイメージをベースにして環境構築します。

元記事を表示

ChatGPTを使った献立アプリを作ってみた

# はじめに
前回まではChatGPTを使ったクイズアプリを作成しました。
今回はその応用として、キーワードを入力したらそれに基づく献立を提案してくれる献立アプリを作っていきたいと思います!

クイズアプリについては以下の記事でまとめています。
https://qiita.com/shake12/items/7a33cdc1bc105be16c3b

# 事前情報
– OpenAI / ChatGPT 初心者
– 献立アプリは React + Flask で作成

# 開発環境
– macOS Sonoma 14.4
– Visual Studio Code 1.87.2
– Python 3.10.6
– Flask 2.3.2

# プロンプト準備
– [前の記事](https://qiita.com/shake12/items/ac770569db6fcc7169ad)で紹介した以下の形式で準備していく
`model`:今回は **gpt-3.5-turbo** を使用
`messages`:ChatGPTに投げる質問を記載する
– `role`:どこ

元記事を表示

Djangoの概要を掴む

:::note
このブログの作者はフロントエンドにweightをかけ過ぎている者です(他の記事見ると察して頂けるかと)😇
温かい目で見守って頂けると助かります
:::

# 1. 背景
業務でDjangoを使っているもののさっぱりな為なんとかしたいと思った為です。
ということで軽く概要から入ります。

# 2. Djangoとは

https://www.djangoproject.com/start/overview/

Pythonのフレームワークです
## 歴史
当初、2003 年から 2005 年の間に、新聞のウェブサイトの作成とメンテナンスを担当するウェブチームによって開発されたそうです。
いくつかのサイトを作成した後、チームは多くの共通コードとデザインパターンを除外、再利用するようになりました。
この共通コードは、”Django” プロジェクトとして 2005 年 7 月にオープンソース化され、汎用のウェブ開発フレームワークに発展しました。

## Djangoの由来
ジプシー・スウィングのギタリストでのジャンゴ・ラインハルト (Django Reinhardt) からと

元記事を表示

M1 Macbook Airにてdockerで開発環境構築した際のメモ

### インストール方法
https://zenn.dev/imasaka0909/articles/e984e9e69c43cf

### ビルド
`docker pull` した際に、ログインを求められることを知らず。
“`bash
$ docker pull python3
Using default tag: latest
Error response from daemon: pull access denied for python3, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
“`

`docker login` を実行
“`bash
$ docker login
Authenticating with existing credentials…
Login Succeeded
“`

`docker compose up -d –build` を実行

元記事を表示

開発ツールで確認されるようなソースコードが、Pythonのrequests.get()で取得できないときの対処法

# はじめに
ブラウザの開発ツールから確認するかぎりでは、ソースコードが確認できるwebページ。
しかし、いざ`python`の`requests.get()`でページのソースコードを取得しようとしてもソースコードを得られない場合があります。
本記事では、このような場合の対処法のひとつを示します。

# 解決策
**`requests.get()`の引数`headers`にUser-Agentを指定する**
“`python
import requests
url = “” # webページのurl
response = requests.get(url, headers={“User-Agent”: “”})
“`
User-Agentの指定の仕方の一例は[こちら](https://yuki.world/python-requests-useragent/)。
自分の場合は、User-Agentに空文字列`””`を指定しても解決しました。

# User-Agentとは
webサイトを閲覧するためのブラウザ情報やOS情報。
これを指定することで、ブラウザの開発ツールで確認されるよ

元記事を表示

若手社員のAI部署での利用技術紹介

## はじめに
はじめまして、私は2022年に新卒としてBIPROGY株式会社に入社した高場です。
今回は若手社員の仕事紹介として記事をまとめます。

## 組織の紹介
私が所属している組織は AI 技術部と言い、主に AI を用いたサービスの検討等を行っています。
また、企業や研究機関と協力して共同研究を行うこともあります。
その中で私は主に自然言語処理や時系列データを扱う案件を主に担当しています。

## 案件紹介
### 全体概要
自然言語処理を取り扱っている案件としては、学校教育への支援システム(PoC)などがあり、時系列データの取り扱っている案件としては、 **国立研究開発法人科学技術振興機構(JST)** と協力して行っている **個人及びグループの属性に適応する群集制御**[^1]があります。

今回の記事では、時系列データを取り扱っている群集制御(群集マネジメント)に関する取り組みについて簡単紹介にします。

### 群集マネジメントとは
群集マネジメントとはざっくり言うと **集まった人々の安全・安心と快適な徒歩移動を支え、人々の満足度を高める予防安全活動​*

元記事を表示

歴史を作る時間 (paizaランク C 相当)

https://paiza.jp/works/mondai/query_primer/query_primer__history

タプルのやり方を完全に忘れてたので、調べつつ対応しました
まあ、中身としてはうーんnamesは必要ない気がします。。。
一応出したけど。
historiesは内包表記ができなさそうなので、普通に。タプル化して配列に入れてます。
タプル化したやつをどうやっていれるかってことでちょっと迷ったけども。

その後は、sortedしたやつをそのままプリントするだけですね。
クエリじゃない問題だと思ったのですが案の定でした。

“`py
N,K = map(int,input().split())
names = {input() for _ in range(N)}
histories = []
for i in range(K):
event,charge = input().split()
histories[i] = (int(event),charge)

for year, name in sorted(histories):
p

元記事を表示

話した言葉を文字起こしするアプリの作成

今回は、pythonで、話した言葉を文字起こしするアプリを作成しました。
これは、タイピングが苦手な人や、紙のメモをパソコンにそのまま入力したいときなどに役立ちます。

https://github.com/mt1-m/voice_memo

# 使用方法
zipファイルをダウンロードして解凍したら、voice_memoディレクトリで下記を実行して必要なライブラリをインポート、
“`
pip install -r requirements.txt
“`
できたら下記を実行します。
“`
python voice_memo.py
“`
## 実行結果
![実行結果1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3426433/f37203a1-ad41-3585-1a99-50f12abf4a89.png)
このように、話した言葉を文字起こししてくれます。頑張って発音すれば英語もいけます。終了するときは、’q’キーを押します。

# 実装方法
今回は、マイク入力と文字起こし共に、speech

元記事を表示

【Python】sorted関数を利用して同じ組み合わせのクエリ実行(DBアクセス)を減らす方法

# 概要
`sorted`関数を利用することで、 DBアクセスする回数を減らすことができましたので紹介します。

## サンプルコード1
`sorted`関数とは、イテラブル(リスト、タプル、辞書など)をソートした新しいリストを返す関数。
以下、シンプルなサンプルコードです。

“`py
def sort_and_tuple(input_list):
sorted_tuple = tuple(sorted(input_list))
return sorted_tuple

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = sort_and_tuple(my_list)
print(result) # (1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9)
“`

`sort_and_tuple`関数は、入力としてリストを受け取り、そのリストをソートした後、タプルに変換して返します。このように、`sorted`関数と`tuple`関数を組み合わせることで、リストの要素をソートし、その結果を変更不可

元記事を表示

STEP: 1 アイドルグループ

今週前半はAWSの試験があり、直前だったので一旦お休みしてました。

https://paiza.jp/works/mondai/query_primer/query_primer__idle_group

“`py
N,K = map(int,input().split())
A = {input() for i in range(N)}
for _ in range(K):
command = input().split()
if command[0] == ‘handshake’:
for name in sorted(A):
print(name)
elif command[0] == ‘leave’:
A.remove(command[1])
else:
A.add(command[1])

“`
久しぶりだったのでちょっとど忘れしたりして長引いてしまいました。

キー無しの辞書は{}でできて、
削除や追加はremove,addでできる。
順序はもちろんsortedで。

元記事を表示

ChatGPTを使ったクイズアプリを作ってみた

# はじめに
ChatGPTを使ったクイズアプリを作るにあたって、
前回まではChatGPT APIの呼び出し方について紹介したので今回は実際に完成したアプリを紹介していきたいと思います!

API呼び出し編については以下の記事でまとめています。
https://qiita.com/kitaji12/items/ac770569db6fcc7169ad

# 事前情報
– OpenAI / ChatGPT 初心者
– クイズアプリは React + Flask で作成

# 開発環境
– macOS Sonoma 14.4
– Visual Studio Code 1.87.2
– Python 3.10.6
– Flask 2.3.2

# プロンプト準備
– [前回の記事](https://qiita.com/kitaji12/items/ac770569db6fcc7169ad)で紹介した以下の形式で準備していく
`model`:今回は **gpt-3.5-turbo** を使用
`messages`:ChatGPTに投げる質問を記載する
– `rol

元記事を表示

友達のじゃんけんの勝敗判定のコードを効率化&わかりやすくしてみた

## 自己紹介

Python大好きwhile-true-ifです。

## 対象者

– Python好きな人
– Python初心者
– Pythonでじゃんけんのコンソールアプリを作りたい人

## この記事を読む前に

– この記事では効率化という言葉が使われます。ここでいう効率化とは、「コードを書く効率」です。処理時間ではありません。
– あくまでもこの記事は2人のじゃんけんに特化した勝敗判定となっています。3人以上は想定していません。
– この記事に出てくる「よりよいコード」とはだいたい同じくらいの処理時間(差が1000ms以内)であり、コードが短くなることを意味します。

## じゃんけんとは

**グーとチョキとパーがあります。**

下の表は左側のグー・チョキ・パーが自分の出した手で、上側のグー・チョキ・パーが相手の出した手です。

オシロスコープ上で動くゲームを作る方法

# 概要
オシロスコープを使って画像や動画を描いてみたい!
と思った方に向け、この記事を書いていきます。
最終的には以下の画像のように、絵をオシロスコープ上に描くことができます。

![RigolDS3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3756939/10efc3b0-a319-bd16-36f9-6e2a8af61a68.png)

# 方法
## 1 用意するもの
– オシロスコープ
– Pythonの開発環境
– National Instruments (NI USB-6212)
– コントローラ(JC-U3613M)

### 開発環境
– Python3.8.6
– ライブラリ
– nidaqmx
– numpy
– matplotlib
– pygame
– time
– Image
– 使用したソフト
– VScode editor

“`
import numpy as np
import matplotlib.p

Raspberry Piでスマートロック作ってみた

# はじめに
大学の授業の最終課題でRaspberry Pi3 modelAを使ったスマートロックを作ったのでまとめていきます。作った理由としては鞄からいちいち鍵を出すのが面倒というのと、家族友人が泊まりに来た際に鍵を共有したかったからです。
初学者のため拙い説明が多くなるかと思いますがご了承ください。
# 使ったもの
1. ハード
– Raspberry Pi3 modelA
– サーボモータ(SG92R)
– タミヤ ユニバーサルアームセット
– 結束バンド
– その他テープ等
1. ソフト
– Python3
– Bolt for Python
– iOS Shortcut
1. 外部サービス
– Slack
# Slack APIの設定
今回はSlackに入力された文章をトリガーにラズパイが鍵を操作するようにしています。そのため、まずはラズパイでSlackを監視できるようにSlackアプリを作ります。
[Bolt for Pythonの入門ガイド](https://slack.dev/bolt-python

【Python×Twitter】TwikitでらくらくSNS運用

TwitterをPythonで運用したい人向けの記事です。
Python初心者の方でもコードをコピペして実行できるような記事を心がけます。

:::note
この記事では、Python3.12.2での動作確認のみ行なっています。
Twikitのアップデートで動作しなくなる場合もありますのでご注意ください。
:::

# Twikitの導入
まず、今回メインで使用するTwikitについて説明します。
Twikitは、TwitterのAPIを簡単に操作できるようにするライブラリです。
Pythonで有名なtweepyと違うのは、APIキーなどの発行が不要なことです。
tweepyだと開発者ポータルから申請する必要がありますが、
twikitなら必要なのはユーザー名とパスワードだけです。

https://github.com/d60/twikit

twikitはpipを使ってインストールできます。
“`:Terminal
pip install twikit
“`

# Twikitの使い方
簡単な英語とPythonの文法が理解できればすぐに使えます。

## ログイン
Twik

色々な言語の Dictionary のキーの型の扱いについて調べてみた

Dictionary や object のキーに複数の型を指定した場合、どういった扱いになるのかが非常に気になったので、自分の知っている範囲の言語で試してみました!

# Python の場合

“`python:Python
a = {}
a[1] = “int”
a[1.0] = “float”
a[“1.0”] = “str”
# => {1: ‘float’, ‘1.0’: ‘str’}
“`

int と float は同一視されるようです。Python では `1 == 1.0` が成立するので、これは合理的な気もしますね。使う側は非常に安心できます。他にも、True, False, Fraction, Decimal なども同一視されるようです。

> Numeric values that compare equal have the same hash value (even if they are of different types, as is the case for 1 and 1.0).

https://docs.python.org/3.5/lib

ABC346 with Python(A~F)

今回は、初めてのQiita記事投稿がてら、ABC346のA-F問題までの解説をPythonで書いてみました。誰かのお役に立てれば幸いです。。。

# A – Adjacent Product
## 問題
$N$ 個の整数 $A=(A_1,A_2,\cdots,A_N)$が与えられます。
また、$B_i = A_i \times A_{i+1} (1 \leq i \leq N-1)$ と定めます。
$B_1,B_2,\cdots,B_{N-1}$ をこの順に空白区切りで出力してください。

https://atcoder.jp/contests/abc346/tasks/abc346_a

## 考察
隣り合っている要素同士の積を計算してリストに代入、それを答えとして表示する。

## コード
“`python:A.py
N = int(input())
A = list(map(int, input().split())
B = []
for i in range(N – 1):
B.append(A[i] * A[i + 1])
print(*B)
“`
#

【生成AIアプリ100チャレンジ】(1)自然言語生成AIアプリ

# 公開中サイト

https://ai.nuevo.jp/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# PYTHONとDjango環境

 生成APIが流行しているので、PYTHONとDjango環境でアプリを作成してみた。
最初のアプリなのでプロンプトを送ったら、プロンプトが戻ってくるだけのシンプルなものです。
基礎中の基礎ですけれども、プロンプトを送ってレスポンスをもらうだけですが、いろいろと大変だった。

https://docs.djangoproject.com/ja/5.0/

 それと、PHPエンジニアでPYTHONはまだまだ経験不足

グー チョキ パー