- 1. Pythonのクラスについての知識をまとめてみた
- 2. Pythonの基本②【クラスの継承】
- 3. 選択ソート
- 4. [python] 縄跳びの回数を入力順に順位を出力する②
- 5. Pythonの基本①【クラス定義と使用例】
- 6. 挿入ソート
- 7. [python] 縄跳びの回数を入力順に順位を出力する①
- 8. ChatGPTでTextToSpeechの爆速コーディング
- 9. 【Python】`0001_output.log`から`1000_output.log`まで連番のファイルを瞬時に作成する方法
- 10. 乃木坂46でクラスのカプセル化を勉強する
- 11. ChatGPT API を使って Youtube live 配信コメントで反応するキャラクターBotを作ったらYoutube Data API v3が曲者だった件
- 12. それ,numpy で書かない?–7– いや,もうリストやめよぅ
- 13. Pythonの遅延セグメントツリーのチートシート【AtCoder】
- 14. Djangoでlorem ipsum? #ぼくの大発見日記
- 15. PythonのSliceの使い方
- 16. 【Python】CSVのデータや列名を、指定の値や言葉に一瞬で一括置換する方法
- 17. みかん仕分け
- 18. SeleniumでChrome driverを立ち上げた際にすぐにクラッシュしてしまった時の対処法
- 19. Cloud9でLambda(Python)を作り始めるメモ
- 20. Python初心者の備忘録 #10 ~DSに使われるライブラリ編05~
Pythonのクラスについての知識をまとめてみた
Pythonのクラスについての理解が浅いため、業務で活用できるよう勉強した。勉強資料としては主にYouTubeと公式ドキュメントを使用した。([参照](#参照))
# 目次
[(1)クラスとは](#1-クラスとは)
[(2)クラスの表現](#2-クラスの表現)
[(3)Constructorの実装](#3-Constructorの実装)
[(4)Finalizerの実装](#4-Finalizerの実装)
[(5)継承](#5-継承)
[(6)クラスメソッド](#6-クラスメソッド)
[(7)スタティックメソッド](#7-スタティックメソッド)## 1. クラスとは
クラスとは、概念として存在するオブジェクトをインスタンスとして実際に作成するための仕組みである。
クラスの説明をするときは、よく鯛焼き機が例に出される。クラスの概念を鯛焼き機の例に当てはめると以下のようになる。
||例|
|:-:|:-:|
|オブジェクト|鯛焼きという概念|
|クラス|鯛焼き機|
|インスタンス|鯛焼き|とにかく、クラスという設計図を作成することで、その設計図のルールに則ったインスタンスという実
Pythonの基本②【クラスの継承】
クラスの基本は
https://qiita.com/jay_42tokyo/items/f853049dcee5e4f0d732
# クラスの継承とは
### 一言で表すと
あるクラスをベースとして、**追加したいメンバ変数や関数だけを追加**し、新しいクラスを定義すること。### 用語の整理
継承された元のクラスのことを**スーパークラス**、継承して新しく作ったクラスを**サブクラス**といいます。### 使用例
実際にコードを見た方が早いと思うので、使用例を確認してみましょう!
以下の例では、動物についてのクラス`animal`をベースに、`Cat`クラスを作成しています。
“`python:
# スーパークラス
class Animal():
def __init__(self, type: str = None):
self.type = type# 鳴くメソッド(デフォルトは”にゃー”)
def cry(self, sound: str = ‘にゃー’):
print(sound)# サブクラス
class Cat(Animal):
選択ソート
“`py
def selection_sort(A, n):
for i in range(0,n-1):
# 最小値を探す
for j in range(i+1,n):
if A[j] < A[min_index] : min_index = j # A[i] と A[min_index]を交換 A[i], A[min_index] = A[min_index],A[i] # A[0] ~ A[i] が整列済みになった print(*A) n = int(input()) A = list(map(int,input().split())) selection_sort(A,n) ``` 1)最初のループでrangeがn-1,つまりn-2までになっているのは、最初の2個を比較するため。 2)1番目の数になっているiの要素と、それ以降、つまりi+1〜n-1(nからiをひいたもの)の中
[python] 縄跳びの回数を入力順に順位を出力する②
# 1分間の縄跳びの回数を入力順に並び替える処理
## はじめに
前回の記事は、実装の早さを競う大会に提出したソースコードをそのまま投稿したため、分かりにくく、メンテナンスしにくいため、メンテナンスしやすいソースコードを投稿いたします。
https://qiita.com/nogizakapython/items/7d4e6a39218bff6f0a23.md
## ソースコード
“`python
#################################
#### 並び替え処理
################################## 入力データリストの定義
jumper_data = []# 縄跳びに参加する人数を入力、及び入力データのチェック関数
def input_jumper_count():
print(“人数を0より大きい整数で入力してください”)
while True:
try:
num = int(input())
if num > 0:
return num
Pythonの基本①【クラス定義と使用例】
## 一言で表すと
メンバ変数(変数)とメソッド(関数)をまとめて管理できるオブジェクト。
言わば、「設計図」みたいなものです。## 使い方
### 定義の例
以下の例では、動物を表す`Animal`クラスを定義しています。`Animal`クラスのインスタンスのメンバ変数として、`名前`と`種類`を定義し、それぞれ`None`で初期化しています。
また、メンバ関数(メソッド)として、`cry`を定義しています。
最初の引数名を`self`にするのはお約束。
“`python:
class Animal():
def __init__(self, name: str = None, type: str = None):
self.name = name
self.type = type# 鳴くメソッド(デフォルトは”にゃー”)
def cry(self, sound: str = ‘にゃー’):
print(sound)
“`
### インスタンス化
`Animal`クラスをインスタンス化
“`pyth
挿入ソート
ひとまず、Cランクの問題を全部解き終えたので、
Pythonのスキルチェックを受けてきたら普通にできた。
(もともとPHPでCランクはとっていたけど)というわけでいまからBランクを目指す。
Bランクへの道というのがあるらしくてhttps://paiza.jp/pages/works/stories/brank/
これを読むとどうやら配列の次にソートアルゴリズムを学ぶ必要がある。
問題集を見るとクラスもあるはずなのだが、まあそれもやるってことで。
ひとまずソートアルゴリズムシリーズを解いていくことにする。https://paiza.jp/works/mondai/sort_naive/sort_naive__insertion
“`py
def insert_sort(n,A):
for i in range(1,n):
#A[i] を、整列済みの A[0] ~ A[i-1] の適切な位置に挿入する
# 実装の都合上、A[i] の値が上書きされてしまうことがあるので、予め A[i] の値をコピーしておく
[python] 縄跳びの回数を入力順に順位を出力する①
# 1分間の縄跳びの回数を入力順に並び替える処理
## はじめに
標準入力で入力したデータを順位付けするプログラムをPythonで実装しました。## ソースコード
実装したソースコードを表示します。“`python
#################################
#### 並び替え処理
#################################def errormsg1():
print(“0より大きい整数を入力してください”)def setValue(num):
flag1 = 0
if num > 0:
return flag1
else:
flag1 += 1
return flag1def main():
print(“データ数を0より大きい整数で入力してください”)
while True:
try:
num = int(input())
result1 = setValue(num)
if result1
ChatGPTでTextToSpeechの爆速コーディング
## はじめに
これも今更ネタですが必要にかられて作ってみたら思いのほか本当に爆速で用意できたのでこの体験を共有したくて書きました。
私はChatGPT初心者でpython中級くらいです。
Copilotがあるじゃんとかそういうのはわかってます。私の場合面倒くさいソリューションやエディタなんかも起動せず思いのままに、それこそ片手間に作りたいものを作る。
そのためにChatGPTをどう使うかっていう話です。## 誰向け?
ChatGPT無料を多少触っている
pythonは少しわかる
pip installてうったことはある
くらいかそれ以上の人## 環境
windows11Pro 22H2
python3.12.1
※pythonだけは先にインストールしてパスを通している前提です
GPTのCustom instructionsに気持ちだけお勧め汎用プロンプトを適用
※そんなに影響ないと思います## 目指すもの
テキストを適宜入力してリアルタイムに音声再生するスクリプトを作る
作成まで5分を目指す## 開始
早速GPTを開きます。
私はいつも最初はどの**言語**で**
【Python】`0001_output.log`から`1000_output.log`まで連番のファイルを瞬時に作成する方法
# 概要
空のファイル`0001_output.log`から`1000_output.log`を連番で作成する必要性が生じたので、Pythonプログラムで実装しました。今回は、ENVファイルのようなもので作成回数や作成ファイル名を制御できるようにしたかったので、コードの中にそれらを埋め込まないように工夫しました。サンプルコードを紹介します。
# サンプルコード
“`py
import osoutput_logs_dir = ‘output_logs’
number_of_file = 1000
log_name = ‘_output.log’# outputファイルをnumber_of_file個作成する
for i in range(1, number_of_file + 1):
filename = os.path.join(output_logs_dir, f”{i:0{len(str(number_of_file))}}{log_name}”)
open(filename, ‘a’).close()
“`上記コードを実行すれば、空のファイ
乃木坂46でクラスのカプセル化を勉強する
乃木坂46でクラスのカプセル化を勉強します。
まずソースコードを例示します。“`python
class Nogizaka46:# コンストラクタ
def __init__(self,name,div=”3期生です”):
self.name = name
# アクセス制限を指定
self.__div = div# getter Div
# メンバーの期別をgetter(getDiv関数)で返す。
@property
def getDiv(self):
return self.__div
# getter name# メンバーの名前をgetter(getName関数)で返す。
@property
def getName(self):
return self.name#期別判定のsetter関数(setDiv関数)で設定し、期別で判定する
@getDiv.setter
def setDiv(self,div1):
if div1 >= 3 and div
ChatGPT API を使って Youtube live 配信コメントで反応するキャラクターBotを作ったらYoutube Data API v3が曲者だった件
# 作ることになった経緯
知り合いのコンサルから、Youtube liveで流行りのAIが動画で反応する配信はあるけど、Youtube live で使えるコメントBotないよね?って聞かれたのが始まり。
調べてみると確かにないなと言うことで作りました。# そもそも規約的には大丈夫なの?
### 問い合わせました
>YouTube ではポリシーに違反している可能性のあるコメントや不適切なコメントをコメント プレビューから削除するためにレビューする場合がございます。
>また、もしお客様の作成したキャラクターボットが当社のポリシーのいずれかに違反するコメントをした場合は、 第三者のユーザーから 「ポリシーと施行」 ページにアクセスして報告される場合がございます。この場合は、ボットを使用しているかどうかに関わらず、お客様がチャンネルに対する責任を負うことになると思われます。
>キャラクターボットをご利用いただくこと自体に、YouTubeでは制限はないと認識しておりますので、ご安心ください。自己責任の範囲でOKっぽい。
何かあってもチャンネルで責任とってねって感じだった。# 使い方
それ,numpy で書かない?–7– いや,もうリストやめよぅ
「エラトステネスの篩」の記事は,ここでも,もう数十回あるんじゃないだろうか。車輪の再発明もいいとこだ。
そして,リストを使わないほうが良いよというのも,何回か書いた。それ,numpy で書かない?–3–
https://qiita.com/WolfMoon/items/0483ac130684a10cf25eまた,出たが,繰り返し述べる。
**リスト,および,リスト内包表記を使うのは,もう,やめよう。**
**numpy は,遥かに速く,書きやすい。**
“`python
import timedef sieve_of_eratosthenes(n):
primes = [True] * (n + 1) #リストの生成、全てTrue
primes[0] = primes[1] = False #0と1は素数ではないので除外 FALSE
for i in range(2, int(n**0.5) + 1):#2以上、2から初めてnの平方根まで計算する
if primes[i]:
for j in ra
Pythonの遅延セグメントツリーのチートシート【AtCoder】
# はじめに
2023年8月にあった大幅なAtCoderの言語アップデートで、PythonにもACLとよばれる競プロライブラリが追加されました。https://github.com/not522/ac-library-python/
この記事では、その中の遅延セグメントツリーについてチートシートをまとめます。
組み合わせはすべてで $6$ 通りつくります。– 区間演算クエリ
1. 加算: $A_i \leftarrow A_i + v \enspace (i=l,l+1,\cdots , r-1)$
1. 更新: $A_i \leftarrow v \enspace (i=l,l+1,\cdots , r-1)$– 区間取得クエリ
1. 最小値: $\min$
1. 最大値: $\max$
1. 総和: $\text{sum}$# コンテスト中の人へ
次から自力で通せるように、あとでこの記事よんでね。https://qiita.com/hyouchun/items/1748bd320d2188a999f2
# 目次
Djangoでlorem ipsum? #ぼくの大発見日記
# はじめに
ナイトウ([@engineer_naito](https://twitter.com/engineer_naito))と申します。
とあるDjangoの記事を書いています。
その記事を書くためにいろいろ調べものをしていたときに `{% lorem %}` テンプレートタグを見つけました。
この機能についてこの記事では深掘りしていきます。# lorem ipsum とは
https://en.wikipedia.org/wiki/Lorem_ipsum
> In publishing and graphic design, Lorem ipsum (/ˌlɔː.rəm ˈɪp.səm/) is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content.
文章などの表示の確認のために用いられるプレースホルダー(ダミーテキスト)のことです。
_lorem ipsum
PythonのSliceの使い方
仕事でよくPythonを使うので、最近改めてPythonを勉強し直しています。
PythonのSliceが便利だったので備忘録としてまとめます。また、この記事ではリストについて書いていますが、タプルでも同様に扱えます。
# 使い方① リストから任意の範囲の要素をすべて取得
以下のように書くことで、Sliceを使うことでリストから任意の範囲の要素を取得することができます。
“`py
list1 = [“a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”]list2 = list1[2:7]
print(list2) # c d e f gが表示される
“`# 使い方② リストから任意の範囲の要素を任意の間隔で取得
以下のように書くことで、リストの任意の範囲の要素を任意の間隔で取得することもできます“`py
list1 = [“a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”]list2 = list1[2:7:2]
print(list2) # c e g が表示される
“`# 使い方③ リストから先
【Python】CSVのデータや列名を、指定の値や言葉に一瞬で一括置換する方法
# 概要
CSVファイルの特定の列のデータを置換&列名を変更して書き出すという処理が必要になったので、Pythonで実装しました。少しならエクセルとかでパパッと置換作業してしまえば良いですが、たくさんあったり何回も実施する必要があるときは面倒ですよね。ということで以下のPythonコードで、指定のディレクトリにある指定のCSVファイルのデータを置換することができたので紹介します。
### BEFORE
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/06a6943d-edf5-5632-a571-70f22d9c6c33.png)### AFTER
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/c3bb036e-20e3-8d60-263c-c41be8b7e033.png)# サンプルコード
“`py
import pandas as p
みかん仕分け
https://paiza.jp/works/mondai/c_rank_skillcheck_archive/mikan
うーん、これで、一部はうまくいったんですが
2つのテストケースでだめでした。“`py
N,M = map(int,input().split())
for _ in range(M):
w = int(input())
if 0 < w < N: print(N) continue if w % N >= round(N/2,0):
print((w//N+1) * N)
else:
print((w//N) * N)
“`“`py
#1つ目入力
13 4
244
686
344
685#出力(間違い)
247
689
351
689#2つ目入力
1 2
665
429#出力(間違い)
666
430
“`2つ目の入力は1の倍数なんですよね。。。。
四捨五入したらどうなるのか?
のは
1時間経ってしまったので強制ギブで。
ansが最初
SeleniumでChrome driverを立ち上げた際にすぐにクラッシュしてしまった時の対処法
# はじめに
こんばんは、ダンです。
以前乃木坂46のライブを自動で応募するシステムを作ったのですが、
記事URL:https://qiita.com/dandan5656/items/d1fe82d2d7594ebb5fa1
その際にSeleniumでChrome driverを立ち上げた際にすぐにクラッシュしてしまい、3-4時間ほど躓いてしまったので、対処法を共有したいと思います。# 状況
スクレイピングに必要なSeleniumとブラウザを立ち上げるためにChrome driverをインストールし、
“`python
pip3 install selenium
brew install chromedriver
“`
ブラウザを立ち上げました。
“`python
from selenium import webdriver
browser = webdriver.Chrome()
“`
その際にターミナルにエラー分は表示されないのですが、Chromeがすぐに閉じてしまったり、クラッシュしたりしてしまいました。# 解決法
Chrome Driverを通すためのパスが正
Cloud9でLambda(Python)を作り始めるメモ
AWS Cloud9でLambda開発の環境構築に多少作業が必要だったのでまとめておきます。
既にあちこちでまとめられているけど自分用に。AWS初心者です。## 前提
– OS:Amazon Linux 2023
– インスタンスタイプ:t2.micro(無料枠)
– 接続:AWS Systems Manager(SSM)## 導入作業
### pyenvの追加とPythonバージョン変更
まずはPythonバージョンを確認。
“`bash
$ python –version
Python 3.9.16
“`
サポート期限まで約1年半(2024/2時点)か~~~となったのでバージョン変更できるようにしておきます。まずはpyenvの導入から。
個人的な好みとしては.bash_profileではなく.bashrcに書き込めばよかった…と反省。
“`bash
$ sudo yum -y update
$ sudo yum -y install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sql
Python初心者の備忘録 #10 ~DSに使われるライブラリ編05~
# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #09 ~DSに使われるライブラリ編04~](https://qiita.com/Yushin-Tati/items/e5beea548d3c8a4851f3)
次の記事:まだ今回は**OpenCV、glob、 os、 pathlib、