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

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

長テーブルのうなぎ屋 Python3編 解答 paizaラーニング

# 問題
長テーブルのうなぎ屋 (paizaランク B 相当)
https://paiza.jp/learning/long-table

# 解答
“`python:unagiya.py
def is_ocupied_seats(num, place):
for i in range(place, place+num):
if seats[i%n] == True:
return False
return True

n, m = map(int, input().split())
seats = [False] * n

for _ in range(m):
num, place = map(int, input().split())
place -= 1
if is_ocupied_seats(num, place):
seats[place:place+num] = [True]*num
# print(seats, is_ocupied_seats(num, place)

元記事を表示

【python】乃木坂46でクラスの継承を勉強する

# 乃木坂46でクラスの継承を勉強する

## はじめに
乃木坂46のメンバーで「自転車を運転する」、「自転車にブレーキをかける」というクラスを実装し、継承させて「電動自転車を運転する」というクラスを作ります。

## 自転車クラス
自転車クラスのソースコードです

“`python
class Bycycle:

# コンストラクタ
def __init__(self,name=”人”):

self.__name = name

# getter Div
# getter name
@property
def getName(self):
return self.__name

@getName.setter
def setName(self,set_name):
if len(set_name) > 0:
self.__name = set_name

def riding(self,set_name):
print(f”{set_name}は自転車を漕ぐ”)

def breaki

元記事を表示

Pythonの基本③【特殊メソッド】

## Pythonの特殊メソッドについて
Pythonでは、特殊メソッドと呼ばれる、ダブルアンダースコア(`__`)で囲まれたメソッドがあります。これらのメソッドは、通常のメソッドとは異なり、Pythonの言語機能をカスタマイズするために使用されます。特殊メソッドを適切に実装することで、オブジェクトの振る舞いや操作を定義することができます。

## 特殊メソッドとは
特殊メソッドは、Pythonの組み込み型における演算や操作をカスタマイズするために使用されます。例えば、+ 演算子や * 演算子、インデックスやスライスの取得、オブジェクトの比較など、多くの組み込み演算は特殊メソッドによってサポートされています。

特殊メソッドを定義することで、ユーザー定義のクラスを組み込み型のように振る舞わせることができます。これにより、クラスのインスタンスを自然な形で操作することが可能になります。

## よく使う特殊メソッド一覧
以下は、よく使われる特殊メソッドの一覧です。

### インスタンスの生成と破壊に関するメソッド:
`__init__(self, …)`: インスタンスが初期化される

元記事を表示

【Win11+4060Ti+Python】PythonをGPUでぶん回したい環境作っちゃえ。ってはなし。

## 1. はじめに
どうも、趣味でデータ分析している猫背な組み込みエンジニアです。

今回はGPUでPython環境を動かしたいと思って、1か月間試行錯誤して構築完了したので手順をまとめていきたいと思います。目標はVSCodeにも対応してて、PythonをGPUでぶん回せる環境構築です。
余談ですが、大学時代から全然触っておらず、最近知ったのですがtensorflow-gpuが廃止されて、tensorflow2が主流になっているんですね。

## 2. GPUとは?
GPU(Graphics Processing Unit)は、コンピュータのグラフィック処理を担当するプロセッサです。従来、GPUは主にゲームやビデオ再生などのグラフィック処理に使用されてきましたが、近年では演算にも利用されるようになっています。
GPUを利用するメリットとしては、高速な並列処理、浮動小数点演算性能の向上、大規模なデータ処理能力、エネルギー効率の向上があります。私もこの環境で大規模データ処理を計画していますので、ぜひとも構築したいと思っていました。

## 2. PC環境
別記事に投稿予定ですので、簡単に

元記事を表示

pandasのデータ構造について

# pandasのデータ構造について
### 慣れるべきふたつのデータ構造
シリーズ(Series)とデータフレーム(DataFrame)

## 1.Series
`obj = pd.Series([4,7,-5,3])`

“`
0 4
1 7
2 -5
3 3
dtype: int64
“`
値に関連づけられたインデックスというデータラベル配列が含まれる。
値にアクセスしたい場合は、values属性を使う。
`obj.values`

“`
array([4, 7, -5, 3])
“`
インデックス属性を使うと
`obj.index`

“`
RangeIndex(start=0, stop=4, step=1)
“`

のように返ってくる。そして、インデックスは指定できる。

“`
obj2 = pd.Series([4,7,-5,3], index=[‘d’, ‘b’, ‘a’, ‘c’])
“`

## 2.DataFrame
csvを読み込んだりするときに使う。

“`
data = {‘year’:[2010, 2011,

元記事を表示

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 flag1

def 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 os

output_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 time

def 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 が表示される
“`

# 使い方③ リストから先

元記事を表示

OTHERカテゴリの最新記事