- 1. 結局クラスって何ですか?(Python)
- 2. 挿入ソート
- 3. [python] 縄跳びの回数を入力順に順位を出力する
- 4. ChatGPTでTextToSpeechの爆速コーディング
- 5. 【Python】`0001_output.log`から`1000_output.log`まで連番のファイルを瞬時に作成する方法
- 6. 乃木坂46でクラスのカプセル化を勉強する
- 7. ChatGPT API を使って Youtube live 配信コメントで反応するキャラクターBotを作ったらYoutube Data API v3が曲者だった件
- 8. それ,numpy で書かない?–7– いや,もうリストやめよぅ
- 9. Pythonの遅延セグメントツリーのチートシート【AtCoder】
- 10. Djangoでlorem ipsum? #ぼくの大発見日記
- 11. PythonのSliceの使い方
- 12. 【Python】CSVのデータや列名を、指定の値や言葉に一瞬で一括置換する方法
- 13. みかん仕分け
- 14. SeleniumでChrome driverを立ち上げた際にすぐにクラッシュしてしまった時の対処法
- 15. Cloud9でLambda(Python)を作り始めるメモ
- 16. Python初心者の備忘録 #10 ~DSに使われるライブラリ編05~
- 17. Python の defaultdict は参照するだけで副作用が発生するので注意
- 18. スクレイピングツールの開発
- 19. SymPy で算額の問題を解く
- 20. Pythonのコード書き方まとめ
結局クラスって何ですか?(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`クラスをインスタンス化
“`python
挿入ソート
ひとまず、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、
Python の defaultdict は参照するだけで副作用が発生するので注意
Python の defaultdict では初期化の処理を一部省略できます。例えば int を指定すれば、デフォルト値を 0 として計算を行ってくれます。
“`python
from collections import defaultdictdata = [
[‘chino’, 4],
[‘maya’, 8],
[‘megu’, 2],
[‘chino’, 1200],
[‘maya’, 800],
[‘megu’, 1100],
]d = defaultdict(int)
for k, v in data:
d[k] += vprint(d[‘chino’]) # => 1204
“`# `__getitem__` の副作用
ただ、defaultdict には `__getitem__` を呼び出すだけでキーが追加されるという副作用があるため注意してください。例えば、以下の例ではキーが 3個から 7個に増加してしまっています。
“`python
print(len(d)) # => 3probe = [‘cocoa’,
スクレイピングツールの開発
スクレイピングツールを実装しました。
以下の条件です。
>① 取得する企業は「オバケイドロ」でおなじみの株式会社フリースタイルさん
② 取得する情報は「お知らせ」
③ 最新ニュース12件を取得し、エクセルファイルに書き出す以上の処理に使うスクレイピングツールです。
“`python
####### Freestyle 企業HPから人事情報を取得する ###########
####### 新規作成 2024/2/11 ##########
####### Author 乃木坂好きのITエンジニア ############ 時間を計るライブラリをインポート
import datetime
import re
import os
# WebDriverライブラリをインポート
from selenium import webdriver
from selenium.webdriver.common.by import By
# Excelファイルへ書き込むライブラリをインポート
import openpyxl as op
import codecs
f
SymPy で算額の問題を解く
# **[算額とは?](https://ja.wikipedia.org/wiki/%E7%AE%97%E9%A1%8D)**
いろいろな算額を SymPy で解いています。
SymPy は Pyhon で使うのが一般的とは思いますが,Julia の Python で書いています。
Julia なので,Python の SymPy とはちょっと書き方にくせがありますが,かえって書きやすい面もあります。
ご意見,ご感想いただければうれしいです。
https://blog.goo.ne.jp/r-de-r/e/1b3e7a7043254fc1b5c573ba784967f8
よろしければ,「いいね!」してください。
神壁算法 關龍藤田貞資門人 龜井隠岐守家士 堀田人助泉尹 天明八年
藤田貞資(1789):神壁算法巻上
http://www.wasan.jp/jinpeki/jinpekisanpo1.pdf直径 97 寸 5 分の大円の中に累円と,大円と甲円と累円に挟まれる円がある。
末円の直径が 1 分のとき,初円から末円まで何個の挟円があるか(つまり,末円は初円から数
Pythonのコード書き方まとめ
仕事でpythonを書くことになったので、調べて分かった内容を下記に記載する。
ほぼ事前知識が無い状態から始めたので、おかしな記載がいくつかあるかもしれない。他に分かったことがあれば追記していこうと思う。
## とりあえず
– インデントを揃えないとコンパイルエラーになる
– pythonは動的型付け言語のため、型を指定しなくても値の取得などが可能。## 型の指定方法
`変数名: 型`
型ヒントとpythonでは呼ばれる。## uuid
import uuidでインポートする。https://docs.python.org/ja/3/library/uuid.html
https://dev.classmethod.jp/articles/how-generate-uuid-python-uuid4/
使える関数が複数あり、`uuid4()`がランダムに一意IDを作るものになる。
## import の仕方
基本は import パッケージ名 で取り込む。“`py
# uuidパッケージをインポートする
import uuid# uuidパッケージの