- 1. 【Progate】Python I を修了した人向け練習問題
- 2. removeメソッドとfor文を組み合わせるときに注意すること
- 3. Pythonの基本④【配列操作メソッド】
- 4. バブルソート
- 5. 【Python】ntplibとAPIからNICTの時刻を取得する
- 6. 文章を解析して#を付与して返却。
- 7. [PRMLまとめ]1.1多項式フィッティング
- 8. 長テーブルのうなぎ屋 Python3編 解答 paizaラーニング
- 9. 【python】乃木坂46でクラスの継承を勉強する
- 10. Pythonの基本③【特殊メソッド】
- 11. PythonをGPUでぶん回すための環境構築できちゃった。
- 12. pandasのデータ構造について
- 13. Pythonのクラスについての知識をまとめてみた
- 14. Pythonの基本②【クラスの継承】
- 15. 選択ソート
- 16. [python] 縄跳びの回数を入力順に順位を出力する②
- 17. Pythonの基本①【クラス定義と使用例】
- 18. 挿入ソート
- 19. [python] 縄跳びの回数を入力順に順位を出力する①
- 20. ChatGPTでTextToSpeechの爆速コーディング
【Progate】Python I を修了した人向け練習問題
# はじめに
Progateの Python Iを修了した方向けの練習問題集です
お好きなエディタで解いてみてください
おすすめは[Paiza.io](https://paiza.io/ja/projects/new)です各問題には入力済みのコードが付いていますので、それをコピーし足りない要素を埋めて解答を完成させてください
☆は難易度です
# 「Pythonの基礎を学ぼう」より
## 問題1-1 Print some values ☆
コメントの指示に従ってコードを完成させてください
“`python:task1-1.py
# 「Progate最高」と出力してください# 数値の334を出力してください
# 1000に111を足した値を出力してください
# 「1000 + 111」を文字列として出力してください
“`
### 出力例
“`
Progate最高
334
1111
1000 + 111
“`
### 解答例解答例
“`python:task1-1.py
# 「Progate最高」と出力してく
removeメソッドとfor文を組み合わせるときに注意すること
Pythonでリストの要素を操作する際には、特に`remove()`メソッドをforループと組み合わせる場合には注意が必要です。
## 問題点の説明
例えば以下のようなリストがあるとします。
“`python
fruits = [‘apple’, ‘apple’, ‘banana’, ‘orange’, ‘grape’]
“`このリストからすべての`’apple’`を削除したい場合、一見以下のようなコードで問題なさそうに思えます。
“`python
for fruit in fruits:
if fruit == ‘apple’:
fruits.remove(fruit)
“`
しかし、これは期待通りに動作しません。なぜならば、`remove()`メソッドによってリストの要素が変化し、forループがリスト全体を正しく処理できなくなるからです。
“`python
結果:[‘apple’, ‘banana’, ‘orange’, ‘grape’]
“`### 何が起きているのか
1.最初の’apple’が削除されると、リストの要素が1つ削除さ
Pythonの基本④【配列操作メソッド】
# Pythonでよく使う配列操作メソッドまとめ
この記事では、よく使われる配列操作メソッドについて備忘録的に紹介します。## 配列操作の必要性
配列操作は、データを整理し、処理するために不可欠です。配列操作を使用することで、データの検索、追加、削除、変更などが容易になります。しかし、**特定の操作をforループと組み合わせる際**には注意が必要です。例えば、`remove()`メソッドをforループ内で使用する場合、予期せぬ動作を起こす可能性があります。## よく使う配列操作と使用例
`append()`: 要素をリストの末尾に追加します。
“`python
numbers = [1, 2, 3]
numbers.append(4)
print(numbers) # Output: [1, 2, 3, 4]
“``extend()`: 他のリストを現在のリストに結合します。
“`python
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
numbers1.extend(numbers2)
print(numbers1) #
バブルソート
https://paiza.jp/works/mondai/sort_naive/sort_naive__bubble
“`py
def bubble_sort(A, n):
for i in range(0,n-1):
for j in range(n-1,i,-1):
if A[j-1] > A[j]:
A[j-1], A[j] = A[j], A[j-1]print(*A)
n = int(input())
A = list(map(int,input().split()))
bubble_sort(A,n)
“`
0)バブルソートは「左の要素と比較し、左の方が大きければ交換する」のが基本。
1)バブルソートは基本的に一番奥からなので、
1番目のループは左の要素と考えるので、0〜全要素-2までになる。
41352からはじめるとして、たとえばiが0なら、n-2番目は「5」になる。
2)2番目のループは右の要素で、n-1つまりこの場合は2か
【Python】ntplibとAPIからNICTの時刻を取得する
# やりたいこと
デバイスのシステム時間とNICTの時刻の誤差を求めたい日本の情報通信研究機構(NICT)には時刻取得のAPIが記載されていないため、ntplibライブラリを使用して求めたい
APIだけでも誤差を求めたい
# 環境
– Windows 11
– Python 3.11.5
– Anaconda 3
– VScode# 方法1: NICTのAPIを使用する
#### ステップ1: 必要なライブラリのインストール
APIを使用するには、`requests`ライブラリが必要です!
“`prompt:Anaconda prompt
pip install requests
“`#### ステップ2: APIを使って時刻を取得し、誤差を計算する
NICTからAPIを取得してきます。
`https://www.nict.go.jp/JST/JST5.html` のHTMLの中に、
`var ServerList`の項目があります。そこにはJSONのデータフォーマットが3つあるので、そのうちの一つを取ってきます。
(今回は`3fe5a5
文章を解析して#を付与して返却。
### 文章を解析して#を付与して返却。
SNSでの使用することを考えて作りました。文章を解析して名詞と形容詞の文字の先頭に#を付与して返却します😌。レンタルサーバーでは動きませんがawsやgcp,vpsなどでは動く作りになっています。
作った経緯はこういうサービスが無かったので作りました?。因みにexecの脆弱性が気になるところですので対応が必要かもです🙇。
※phpやPythonのインストールはご自身で行ってください。
“`
#前処理 mecab-python3バージョンは1.0.8です
sudo apt-get install mecab libmecab-dev mecab-ipadic-utf8
sudo pip install mecab-python3
pip install unidic-lite
“`
“`php:sharpPost.php
[PRMLまとめ]1.1多項式フィッティング
# はじめに
先日、機械学習界隈では有名なパターン認識と機械学習(通称: PRML)を購入した。https://amzn.asia/d/eNRFmiR
結構難解だという声も聞くが、機械学習をやる身としては理解しておいた方が良いので何とか読破しようと思う。ただ読むだけでは知識が定着しないので、読んだ内容をブログにまとめてアウトプットしていこうと思う。
また、PRMLの内容をまとめた資料として、松尾研の輪読資料もあるのでこちらも参考にしてもらいたい。
# 1.1 多項式曲線フィッティング
### 訓練集合
訓練集合として、N個の入力値$X≡(x_1, x_2,…,x_N)$と入力値に対応する観測値$t≡(t_1, t_2, …, t_N)$が与えられたとする### 目標
新たな入力$x$が与えられた時の観測値$t$を予測することを目標とする### 予測方法
以下のような多項式で予測することを考える$$
y(x, \mathbf{w}
長テーブルのうなぎ屋 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 Truen, m = map(int, input().split())
seats = [False] * nfor _ 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_namedef riding(self,set_name):
print(f”{set_name}は自転車を漕ぐ”)def breaki
Pythonの基本③【特殊メソッド】
## Pythonの特殊メソッドについて
Pythonでは、特殊メソッドと呼ばれる、ダブルアンダースコア(`__`)で囲まれたメソッドがあります。これらのメソッドは、通常のメソッドとは異なり、Pythonの言語機能をカスタマイズするために使用されます。特殊メソッドを適切に実装することで、オブジェクトの振る舞いや操作を定義することができます。## 特殊メソッドとは
特殊メソッドは、Pythonの組み込み型における演算や操作をカスタマイズするために使用されます。例えば、+ 演算子や * 演算子、インデックスやスライスの取得、オブジェクトの比較など、多くの組み込み演算は特殊メソッドによってサポートされています。特殊メソッドを定義することで、ユーザー定義のクラスを組み込み型のように振る舞わせることができます。これにより、クラスのインスタンスを自然な形で操作することが可能になります。
## よく使う特殊メソッド一覧
以下は、よく使われる特殊メソッドの一覧です。### インスタンスの生成と破壊に関するメソッド:
`__init__(self, …)`: インスタンスが初期化される
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 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を開きます。
私はいつも最初はどの**言語**で**