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

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

コーディングテストで便利だと思った機能 (Python)

# はじめに:point_up:
僕はエンジニアを目指している大学生です。
コーディングテストで使って便利だなと思ったPythonの機能を紹介しようと思います。

## 便利な機能たち
### リストをN個に分割
“`python
def split_list(l, n):
for i in range(0, len(l), n):
yield l[i:i + n]

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = list(split_list(l, 3))
print(result) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

“`
関数に `yield` を含めることで、ジェネレータになり反復可能になります。
また、ジェネレータを用いることで、都度必要な分だけ値を生成するので、メモリを効率的に使用できます。

### 累積和を生成
“`python
import itertools

l = [1, 2, 3, 4, 5, 6]

print(itertools.

元記事を表示

Windows(x64) の Python 3.10 で PyCrypto を pip install

注意
—-
pycrypto は古いので pycryptodome を使いましょう

きっかけ
——–
Windows(x64) の Python 3.10 で PyCrypto を pip install しようとすると

winrand.c のコンパイル中に inttypes.h で未定義エラーが出る

古い情報だと stdint.h を置き換えるとか inttypes.h を書き換えるとか出て来るが、もっと簡単に解決出来たのでメモ

結論
—-

これだけ
“`
set CL=-D”intmax_t=long long” -D”uintmax_t=unsigned long long” -DPY_SSIZE_T_CLEAN
pip install PyCrypto
“`

参照
—-
[python3.6でpycryptoをインストールする際にはまったのでメモ](
https://web-technical.hatenablog.com/entry/2018/08/16/165137 )
[Windows(x64)でPython3.6.0(x64)にP

元記事を表示

windows10のgoogle chrome 114でseleniumを使う準備

# 目的

今日は3連休最終日!
土日何もしなかったので、何かしたいと思いました…

webサイトのテストを自動化するとき、pythonのseleniumが使われるようなので、
それについて今日は実行できるように準備までします。

# 今回やること

今回の目標は以下の4つ。
* pythonのインストール
* VScodeのインストール
* seleniumのインストール
* テストコードの実行

# 環境
* windows 10
* Python 3.11.4
* google chrome 114.0.5735.199

# いざ出陣

### sleniumとは
Webアプリケーションをテストするためのフレームワーク

いろいろできると思って触ってみたかったが、調べて多く出てきた手順ではできなかったので主にそれの備忘録。

### pythonのインストール

以下のサイトからインストーラーをダウンロードして実行します。
今回はpython 3.11.4のインストーラーをダウンロードしました。

https://www.python.org/downloads/

元記事を表示

Python 仮想環境(venv)作成・削除

## 概要

Python 仮想環境(venv)の作成と削除方法を記載する。

## 前提

– Python がインストール済みとする。

## 動作確認済み OS、 Python バージョン

– Windows 10
– Python 3.8/3.9/3.10/3.11

## 作成

– Python コマンド

“`Python
python -m venv 仮想環境名
“`

– py コマンド

Python 3.8 の場合。

“`Python
py -3.8 -m venv 仮想環境名
“`

## 起動

“`
venv/Scripts/activate
“`

## 終了

deactivate だけでも可能である。

“`
venv/Scripts/deactivate
“`

## Python ライブラリのインストール

“`python
pip install numpy
“`

## Python ライブラリのアンインストール

“`python
pip uninstall numpy -y
“`

## インストー

元記事を表示

abc 310考察(A~C)

今回はバーチャル参加で回答を提出しました。

# A問題(Order Something Else)
[問題文](https://atcoder.jp/contests/abc310/tasks/abc310_a)
**提出したコード**
“`python:abc_310_A.py
N, P, Q = map(int, input().split())
D = list(map(int, input().split()))

payment = P

for i in range(N):
payment = min(payment, D[i]+Q)

print(payment)
“`
**振り返り**
今回の問題の標準出力は最小の支払金額である。
よって最小の支払金額を求めるコードをかけばよい。
以下二点に注目すれば上記のようなコードが書けると思う。

**1. 支払金額は具体的にどう表せるのか。**
  P(通常料金) か D[i]+Q(セット割引料金)で表せる。

**2. 支払金額のうち最小のものをどう求めるか。**
  今回の制約はゆるいのでループによ

元記事を表示

BERTScoreの基本的な使い方

## はじめに
本記事は私自身の活動記録、および備忘録を目的としているので、間違っている内容が含まれているかもしれません。もし誤解を招くような内容や、間違っている内容があった場合はコメントをいただけると幸いです。

## 動作環境
“`console
pip3: 23.1.2
python3: 3.9.6
numpy: 1.23.5
SentencePiece: 0.1.99
“`
BERTScoreのより詳しい情報は下記のリンク先などをご確認ください。
– https://www.nogawanogawa.com/entry/bertscore
– https://github.com/Tiiiger/bert_score

## 基本的なスコアの出し方
まずはインストールをする。SentencePieceについては、計算に用いるモデルによっては必要になる。
“`python
pip3 install bert_score
pip3 install SentencePiece
“`
次にスコアを計算する教師データと検査データを用意する。ここでは例として以下のデータを用意する。

元記事を表示

【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???〜疑問解決編その2〜

# きっかけ
前回の記事でもともと持っていた疑問点は解決したが,それを踏まえて新たにディレクトリを作ったところ`no module named ‘requests’`というエラーが出て動かなかった.そこでプログラミングが得意な弊研究室の後輩たちに相談したら30分ほどで解決したので記事にする.結局パスの問題だった.

# 前提
以下の2記事を見てきた人へ向けて
– [【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???](https://qiita.com/NAT/items/eeb40ac5fc59be86a468)
– [【推し活】推しから寝起きとか仕事終わりにLINEが来たら嬉しくないか???〜疑問解決編その1〜](https://qiita.com/NAT/items/56cded8bedf6f148b7b4)

# 今回やること
1. 環境確認パート
2. 解決パート
3. 意味のなかったこと
4. お知らせ

# 1.環境確認パート
“`
pip install requests
“`
の結果は要約するとpipの新しいバージョンが存在するってことと

元記事を表示

Locustをローカル環境で動かす

# この記事は何か
Locustという負荷検証ツールを、ローカル環境で動かしてみました。

# Locustとは
Python製の負荷検証ツールです。
Web UI付きで、手軽に操作することができます。
[ドキュメント](https://docs.locust.io/en/stable/)

# ローカル環境で動かしてみた
## 動作環境を用意
Docker環境を用意しました。

https://github.com/tatsukoni-pra/Locust-local

コードは↑を参照ください。ポイントは以下。

– WebUI用に、`8089`ポートを開けておく
– Python環境にて、`pip install locust`でLocustをインストールする(`build-essential`がないとインストールに失敗したので、入れておく)

“`shell-session
# python –version
Python 3.9.17

# locust –version
locust 2.15.1 from /usr/local/lib/python3.9/site-

元記事を表示

プログラム課題(paizaの森)

***paiza***様のpaizaの森のプログラム課題からこんな問題を解きました。

>1行目に入力する数を決める
>2行目以降に2つの数を入力し、2つの数が同じなら2つの数を掛け、2つの数が異なるなら2つの数>を足す。これを1行目に入力するデータの数だけ行い、計算結果を表示する。

プログラムで書きました

“`Python3
# coding: utf-8
# 自分の得意な言語で
# Let’s チャレンジ!!
num = int(input())
sum1 = 0
for i in range(num):
ans1 = 0
data = input()
array1 = data.split(‘ ‘)
A = int(array1[0])
B = int(array1[1])
if A == B:
ans1 = A * B
else:
ans1 = A + B
sum1 += ans1
print(sum1)
“`

元記事を表示

Python3で関数作成

***Python3***で関数を作成しました。

“`Python3
# 文字表示の練習
# Create 2023/7/16

#文字表示関数
def display(msg):
print(msg)

str1 = “test”
#文字の連結
str1 += “46”
display(str1)

str2 = “山下美月”
display(str2)

“`

元記事を表示

Matplotlib

## Matplotlibのインストール
“`python
import matplotlib.pyplot as plt
“`

##

元記事を表示

SwitchBot API v1.1を使って、スマートプラグ プラグミニの状態をZabbixでモニタリングできるようにした

# 背景、事の始まり
私はSwitchBotのスマートプラグミニを3カ月ほど使用してきましたが、せっかくなら電圧や消費電力といった情報を取得したいと考えました。そこで調べてみたところ、SwitchBotには開発者用APIがあり、私でも利用することが可能であることを知りました。実は私はAPIを使用したことがなかったのですが、この機会に挑戦してみることにしました。

また、Grafanaを使ってモニタリングしている方がいるというのもTwitterで知り、私もそれにならって試してみようと考えましたが、自宅には既にZabbixが導入されているため、折角ならZabbixを利用して管理することにしました。

## 調べ始め
### SwitchBotAPI v1.0でのモニタリング
どうやら同じことを考えた人は居たようです。
こちらの方は温湿度計をZabbixでモニタリングしているようですが、v1.0で利用しているみたいです。

https://satoweb.net/2021/09/switchbotonzabbix/

### SwitchBotAPI v1.1について
2022年9月にAPI

元記事を表示

ChatGPT Code Interpreterで、できること・できないこと

## 背景・目的

+ Code Interpreterで何ができるのか?を調べて活用方法について考察したい

## できること

+ ユーザー
+ 自然言語の入力
+ ファイルのアップロード
+ システム
+ Pythonの実行
+ 自然言語の解釈
+ Pythonの実行結果の解釈

## できないこと

+ インターネットアクセス
+ python以外の言語を使った処理(shellscriptとか)
+ 学習しないように設定して使う(2023/07/15時点で、chat history & trainingをOFFの状態で使えない)

## Pythonの実行環境について

+ CPUコア数: 16
+ `psutil.cpu_count()`
+ メモリ: 60GBぐらい
+ `psutil.virtual_memory().available`
+ ディスク: 130GBぐらい
+ `psutil.disk_usage(‘/’).total`

## プリインストールされているPythonライブラリ

“`p

元記事を表示

Selenium4.10.0でwebdriver.Chrome()でエラー

# 事象
pip install seleniumで、7月14日時点で最新バージョンの4.10.0をインストール。

webdriver.Chrome(WEB_DRIVER_EXE)で以下の警告が現れる。
「Expected type ‘Optional[Options]’, got ‘str’ instead 」

“`python
# Chromeドライバ
WEB_DRIVER_EXE = r’chromedriver.exe’

driver = webdriver.Chrome(WEB_DRIVER_EXE)

“`

実行すると、
AttributeError: ‘str’ object has no attribute ‘_ignore_local_proxy’
となってコケる。

なお、chromedriver.exeは.pyと同フォルダにもちろん配置済み。

# 対応

seleniumのバージョンを4.8.3にさげたら通った。

元記事を表示

G++ Python

import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
class G_n_plusplus:
def __init__(self, n_factor = 2) -> None:
“””
Augs
discount_factor_vec: 割引率のベクトル。スワップのCFに合う形を想定
“””
# ファクターの数を設定する。
self.n_factor = n_factor

# 初期値を設定する
self.variance_vec = np.array([1] * n_factor)
self.drift_vec = np.array([1] * n_factor)
self.a_vec = np.array([1] * n_factor)
self.correlati

元記事を表示

flaskで簡単にページネーションを作成した

# flask学習中
簡単にページネーション付けたいなー
![hirameki_man.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1228723/a8cc7fe8-bb38-ba42-e905-3e7505e549c2.png)

## 最終目標
一覧画面のリストにページネーションを付ける

## まずは設定
~~~md:python3
pip3 install Flask-Paginate
~~~

~~~md:cafe.py
from flask_paginate import Pagination, get_page_parameter
~~~
## 早速書いていきます
### パスを準備しておきます
~~~md:cafe.py
@app.route(‘/cafe/list’)
def list():
~~~

#### メソッド内です

~~~md:cafe.py
@app.route(‘/setting/cafe/menu/list’)
def list():
————ここ

元記事を表示

最も単純なデコレータ

#### 最も単純なデコレータ
“`py
def decorator(func):
return lambda *args: func(*args)

@decorator
def some_function(args):
pass
“`
デコレータは関数上の関数、つまり汎関数である。
今定義したデコレータ`decorator`はどんな処理もしない恒等写像である。

元記事を表示

Pythonでプログラミング! ~入門編 パート2~

# Python入門編 その2

今回扱うプログラムは[こちら](https://github.com/victor-von-pooh/Python_Learn/blob/main/Python%E5%85%A5%E9%96%80%E7%B7%A8/Python_1_2.ipynb)にあるので、是非ダウンロードしてみてください!
中身はここにあるものと一緒です。

## イントロダクション

こんにちは、東京理科大学所属の秋田と申します!
[前回](https://qiita.com/Hiroki_Akita/items/328698b7c40e8a040aed)は、Pythonに関する基本的な文法事項をメインに紹介しました。
今回はPythonのライブラリを使ってもっと便利なことをやってみましょう!

## Section 3. 「NumPyライブラリ」

キーワード :
* import
* エイリアス

NumPy([公式ドキュメント](https://numpy.org/))は、Pythonでの計算処理を高速化するためのライブラリです。
Pythonは「**インタプリタ

元記事を表示

【Python】マイクロ秒を含まない形式(2023-07-12 22:43:13)で現在の日時を取得する方法

# 概要
マイクロ秒を除外して現在の日時(秒までの情報)を取得するコードを3つ紹介します。
`2023-07-12 22:43:13`のような形式です。
標準ライブラリの`datetime`(日付と時間を操作するためのクラスや関数を提供するモジュール)を使用します。

# サンプルコード解説

“`py
from datetime import datetime

# 1
now = datetime.now().strftime(“%Y-%m-%d %H:%M:%S”)
print(now)

# 2
now = datetime.now().replace(microsecond=0)
print(now)

# 3
now = datetime.now().strftime(“%Y-%m-%d %H:%M:%S.%f”)[:-7]
print(now)

# 出力結果
# 2023-07-12 22:43:13
# 2023-07-12 22:43:13
# 2023-07-12 22:43:13
“`

上記、いずれの場合も同じように「`2023-07-12 22:43:

元記事を表示

【Web開発者必見】Flaskの便利ライブラリ10個まとめてみた

# はじめに
みなさん、Flask使っていますか?
小〜中規模のwebアプリ開発なら大抵のことはFlaskで実装可能です??‍?

今回の記事では、**Flaskの便利ライブラリ10個まとめました**?
サンプルコードも記載しているので、参考になれば幸いです。

また、Flaskのおすすめ技術書も載せているのでご興味あれば購入して読んでみてください!

## Flaskのおすすめ技術書
### [Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方](https://amzn.to/3O5mDCs)

[![画像タイトル](https://m.media-amazon.com/images/I/81pe2xY1XXL._AC_UL800_FMwebp_QL65_.jpg)](https://amzn.to/3O5mDCs)

**Webアプリの作り方からAPI化、デプロイメントまで
エンジニアとデータサイエンティストのためのFlask入門**

Pythonのフレームワーク「Flask」によるWebアプリ開発の入門書です。
まずは、最小のアプリの作

元記事を表示

OTHERカテゴリの最新記事