- 1. 【Python】findメソッドのいろいろな使い方をサンプルコードで解説(引数があるとき、rfindやindexとの違い)
- 2. Numpyが18年ぶりのメジャーアップデート! 改善点、変更点まとめ
- 3. WSL2 による Python3 の環境構築
- 4. 【Python】ljustとrjustの使い方や注意点をサンプルコードで解説
- 5. 【python3】指定された日付から昨日までを配列に格納し、表示するプログラム(テスト版)
- 6. S3に格納されているファイルの中身をPythonで取得したい
- 7. さくらのレンタルサーバでPython3(PY_UNSUPPORTED_OPENSSL_BUILD=static)
- 8. ロボットの暴走
- 9. Lambdaを使ってs3のzipファイルを解凍してみた話(更新中)
- 10. スーパースーパースーパーカー
- 11. Wikipedia/WiktionaryのページIDでの記述の必要性について&Python 3を利用したページIDのクリップボード経由で取得
- 12. 【Python】defaultdictの使い方とは?サンプルコードで解説
- 13. pybulletの公式サンプル129個を全部解説する
- 14. apache-beamで使ったpython標準メソッドまとめ
- 15. GoogleFormsの回答結果をPythonでhtml化する
- 16. コードとか書けないけどとりあえず機械学習がやりたい
- 17. 【Python】リストの中に特定の要素があるか判定する処理はsetを使え
- 18. Python3エンジニア認定基礎試験:勉強方法とおすすめ教材
- 19. 格闘ゲーム
- 20. RPG
【Python】findメソッドのいろいろな使い方をサンプルコードで解説(引数があるとき、rfindやindexとの違い)
# 概要
Pythonの`find()`メソッドは、指定した部分文字列が文字列内で最初に見つかる位置のインデックスを返すメソッドです。
サンプルコードで色々やってみたので使い方を紹介します。## `find()`メソッドのサンプルコード
“`py
# 元の文字列
string = “Hello, world! My world is beautiful.”# 部分文字列
substring1 = “Hello”
substring2 = “world”# 部分文字列が文字列の先頭にあるかどうか判定する
if string.find(substring1) == 0:
print(f”‘{substring1}’ は文字列の先頭にあります。”)# 出力結果:’Hello’ は文字列の先頭にあります。
# 部分文字列が文字列の先頭にないか、または全く見つからないかどうかを判定する
if string.find(substring2) != 0:
print(f”‘{substring2}’は文字列の先頭にないか、または全く見つかりません。”)
else
Numpyが18年ぶりのメジャーアップデート! 改善点、変更点まとめ
![numpy_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3743979/4ed7ccbd-2272-e939-a7cc-11f82825d31b.png)
——————————————————————-
# NumPy 2.0.0の主要な変更点皆さんもお世話になっているであろう科学計算ライブラリNumPyが、2006年以降初めてのメジャーアップデートを発表しました。そこで、変更点をざっくりとまとめてみました。以下は変更点の一部であり、それ以外については実際のドキュメントを参照してください。
> 免責事項:この記事は、NumPy 2.0.0の変更点について個人的な見解を述べたものであり、NumPyの開発チームや関係者の公式な見解を代表するものではありません。変更点の影響や対応方法については、必ず公式のリリースノートと移行ガイドを参照してください。また、この記事には不正確な情報が含まれている可能性
WSL2 による Python3 の環境構築
# 概要
WSL2 を使って,Python3 の実行環境を整備する方法をまとめました.
本記事では pip を用いた仮想環境を構築していきます.– 利用可能になるまでの所要時間
– Python3:0分 ($\because$ インストール済み)
– pip3:10分
– 実行環境:Windows 11
WSL2 のインストール方法については以下の記事をご覧ください.
https://qiita.com/zakoken/items/61141df6aeae9e3f8e36
# 目次
1. [WSL2 上での Python3 の利用](#1-wsl2-上での-python3-の利用)
1. [pip3 によるライブラリ管理のための準備](#2-pip3-によるライブラリ管理のための準備)
1. [仮想環境の構築](#3-仮想環境の構築)
1. [仮想環境下での pip3 を用いたライブラリ管理](#4-仮想環境下での-pip3-を用いたライブラリ管理)# 1. WSL2 上での Python3 の利用
WSL2 では
【Python】ljustとrjustの使い方や注意点をサンプルコードで解説
# 概要
Pythonの`ljust`と`rjust`を使ってみたので、サンプルコードと一緒に紹介します。
これらは、指定した幅になるように文字列の右や左側を特定の文字で埋めることができます。
注意点もあることがわかったので記載します。# サンプルコード
### `ljust`を使用して左側を`’0’`で埋める“`py
string = ‘123’# ljustを使用して左側を`’0’`で埋める
result = string.ljust(5, ‘0’)print(result)
# 12300
“`出力結果の通り、文字列の長さが`5`になるように左側が`’0’`で埋められました。
### `rjust`を使用して右側を`’ ‘`で埋める
“`py
string = ‘123’# rjustを使用して右側を`’ ‘`で埋める
result = string.rjust(5, ‘ ‘)print(result)
# 123
“`文字列の長さが`5`になるように右側が`’ ‘`で埋められていることがわかります。
## 注意点
以下の3つがある
【python3】指定された日付から昨日までを配列に格納し、表示するプログラム(テスト版)
## はじめに
指定された日付(過去日付)から昨日までの日付データを1日ずつ配列に入れて、日付で突き合わせてデータを取りたいなあと思ったのがきっかけで開発しました。## 目的
指定された日付から昨日までのデータを何らかの形(CSV、JSON、XML etc)で取得して、指定された日付から昨日までの差分データを取得するためのテストとして、指定されたデータから昨日までの日付を配列に格納し、配列の要素を標準出力に出力するテストプログラムを実装しました。なおコーディングルールには従ってない点、ご了承ください。## ソースコード
“`python
from datetime import datetime
from datetime import timedeltadata1 = input(“日付を西暦4桁、月2桁、日付2桁で入力してください。例) 2024年3月9日の場合は「20240309」と入力してください”)
if len(data1) == 8:
print(“OK”)
else:
print(“NG”)year = data1[:4]
prin
S3に格納されているファイルの中身をPythonで取得したい
# はじめに
S3に保存したファイル(csvなど)のファイル名一覧ではなく、**中身の情報**を取得する方法を紹介します。# 取得方法
以下のポリシーを割り当ててコードを実行します。
【必要なポリシー】
・s3:GetObject
・s3:ListBucketプレフィックス名は「prefix/prefix」ではなく、「prefix/prefix/」とスラッシュまでを付ける必要がある点でエラーが出やすいので、気をつけてください。
~~~Python:sample.py
import boto3s3_client = boto3.client(‘s3′)
response = s3_client.list_objects(Bucket='{バケット名}’,Prefix='{プレフィックス名}’)for content in response[‘Contents’]:
get_object_response = s3_client.get_object(Bucket='{バケット名}’,Key=content[‘Key’])
file_content = g
さくらのレンタルサーバでPython3(PY_UNSUPPORTED_OPENSSL_BUILD=static)
## はじめに
– さくらのレンタルサーバはPython3が入ってないか or 入っているのは3.8
– OpenSSLも古い
– 3.9までは古いOpenSSLでもOK
– CGIとして動かしたい
– Python実行後にOpenSSLのパスを指定できない(と思う)Python3の初期のモノをさくらにインストールする記事はいくつか見かけたが、3.10以降は?なので、3.12でCGIを動かすまでを試してみる。
## さくらのレンタルサーバ状況
https://help.sakura.ad.jp/rs/2251/?article_page=2#heading-1
> 3.8.x
> ※旧仕様の一部サーバは、2.7.xです。新仕様のサーバは3.8.xが入っている様だが、今現在の私のサーバは2.7.xのままでOpenSSLは1.0.2oである。ここに無理やり3.12.xを入れてみる。
## OpenSSLのビルド
さくらのFreeBSD11ではOpenSSLが1.0.xと古く、Python3.9までならOpenSSLを別途用意しなくてもビルド可能だが、Pyth
ロボットの暴走
https://paiza.jp/works/mondai/class_primer/class_primer__robot_move
なかなか難しいですね。。。
一応ここまではやってみました。
ですがなかなか思ったとおりにはならず、
予定の時間切れだったので、解答みました。“`py
class Robot():
def __init__(self,x,y,level):
self.x = int(x)
self.y = int(y)
self.level = int(level)def levelup(self):
if self.level < 4: self.level += 1 def self_level(self): return self.level def self_x(self): return self.x def self_y(self):
Lambdaを使ってs3のzipファイルを解凍してみた話(更新中)
サーバー上のアクセルログを毎日zip化してs3に投げてます。(アクセスログ以外、いくつ他のファイルも同じzipファイルに保存されます。)
普段このアクセルログを使わないので、それでも問題ないですが、3月一度このアクセルログに対して履歴分析を行います。
zip化されたので、直接分析できないです。毎回s3からzipファイルをs3からダウンロードして、ローカルで解凍して、必要なファイルだけを洗い出し、またs3にアップロードします。結構時間かかりますね…なので、今回Lambdaを使ってzipファイルの一括処理を行いました。
# アクセル権限
Lambda関数を作成時、実行ロールが聞かされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617964/cb1188c2-7b1f-a13d-a56e-82ebb25cc384.png)プロジェクトに既に適切なロールがありますので、それを使いました。
もし、まだ使えるロールがない場合、「AWS ポリシーテンプレートから新しいロールを作成」
スーパースーパースーパーカー
https://paiza.jp/works/mondai/class_primer/class_primer__super_super_supercar
ここはまあ難しいことはなかったです。
ただし、flyメソッドの仕様が車によって異なるところがミスしやすいですね。
しかも一番性能がいい車でteleportできないときに、super()ではなく、selfを選ばないと間違ってしまう点がミスしやすいなと感じました。
コマンドリストを使わない方法は以前の記事でコメントを下さった方のを参考にしました。“`py
class Supercar():
def __init__(self,fuel,length):
# fuel =燃料, length=燃費, total =総移動距離
self.fuel = int(fuel)
self.length = int(length)
self.total = 0def run(self):
if self.fuel >= 1:
Wikipedia/WiktionaryのページIDでの記述の必要性について&Python 3を利用したページIDのクリップボード経由で取得
# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。# はじめに
このコードは**Python 3**と**Pythonista 3**に対応しています。ただし、別途“request“モジュールなどが必要です。# 本コードを実行するとどうなるか
本コードは
1. クリップボード内のWikipediaおよびWiktionaryのURLを検知
1. ページIDを取得
1. ページID参照がされたWikipediaおよびWiktionaryのURLを再コピーします。その際に、もしも下記の条件の場合、
1. 既にIDに変換されている場合 → 「既に変換済みです」を返します
1. 該当する記事がない場合 → 「変換不可能なリンクです」を返しますとなります。
また、おまけ機能として、**そもそもWikipediaおよびWiktionaryのURLではない場合**はANSI文字を**URLエンコード**します。
# ページIDの必要性 — このコードのraison dʼêtre
## Wikipedia/Wiktionaryの記事には、それぞれIDが
【Python】defaultdictの使い方とは?サンプルコードで解説
# 通常の`dict`との違いは?
Pythonの`defaultdict`を使ってみたので紹介します。普通の`dict`の場合は、存在しないキーはエラーになります。
しかし、`defaultdict`を使えば、存在チェックが不要になる、というのがメリットです。`defaultdict`は、`collections`モジュールのクラス。
引数に`list`や`int`などを指定することで、デフォルトの値を提供してくれます。ちなみに`lambda`関数や通常の関数を渡してあげることも可能です。公式ドキュメントはこちら。
https://docs.python.org/ja/3.6/library/collections.html#collections.defaultdict
# サンプルコード
“`py
from collections import defaultdict# リストをデフォルト値とする
d = defaultdict(list)# キー’fruits’に対して値を追加
d[‘fruits’].append(‘apple’)
d[‘frui
pybulletの公式サンプル129個を全部解説する
# はじめに
お疲れ様です。秋並です。pybulletはpythonで使用できる物理エンジンの一つで、ロボティクスや機械学習などの分野に使用されています。
pybulletでは、以下のリポジトリにて公式のサンプルが用意されています。
https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/examples
一方で、pybulletのサンプルコードは129個(pythonコード128個+inoコード1個)と大量に存在します。
また、サンプルコードについて解説しているようなサイトも見当たりませんでした。
そこで、せっかくなので私が**全ての公式サンプルを解説**
したいと思います。
pybulletの公式サンプルコードは学習に役立つものもたくさんあるため、この記事を読むことで、
::: note
pybulletで何ができるかを知ることができる
:::と思っているので、是非ご覧ください。
# pybulletの公式サンプル一覧
以下が公式サンプルの一覧に
apache-beamで使ったpython標準メソッドまとめ
# はじめに
– apache-beamを触ることになったがそもそもpythonを触ったことがあまりなかった。また似ている名前のメソッドもあり混同しそうだったため、備忘録としてまとめる。# pythonにおける変数のデータ型の確認`type`
“`python
str_data = ‘hoge’
#
print(type(str_data))bytes_data = b’hoge’
#
print(type(bytes_data))int_data = 123
#
print(type(int_data))float_data = 123.456
#
print(type(float_data))dict_data = { “human”: “hoge”, “age”: 23, “address”: “shinjuku” }
#
print(type(dict_data))
“`# 文字列とバイト
## str
GoogleFormsの回答結果をPythonでhtml化する
業務上GoogleFormsでのアンケートをよく取ります。
GoogleFormsは便利なのですが、フリーアンサーに個人がわかりそうで際どいものがあったり、なんだかんだ生データはそのまま出せなかったりします。そうなると結局編集とか別のツールでの集計などの手間がかかってついつい面倒になってしまうものです。
# 作ってみた
ということでアンケート回答結果を表形式と円グラフにしてくれるもの作りました。
最近エディタをVSCodeからcursorに移行したので生成AIとの二人三脚での作成です。# 使ってみる
こんな質問フォームをテストで用意
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294409/65dda123-60f8-da3d-0bd9-ba197ea6f5c9.png)以下のようなアンケート結果をGoogleFormのスプレッドシートから取得する
| 今日の昼食で食べたいものを次の中から選んでください |あなたの食についてのこだわりを教えてください |
| — |
コードとか書けないけどとりあえず機械学習がやりたい
ライトノベルみたいなタイトルになってしまいました。
教師あり学習の方法について知識がある方へ向けた、とりあえず機械学習を動かしてみよう、というプログラムです。
~~使いこなせる方はそもそも自身で機械学習の実装ができそうなので、需要は皆無な気がしています。~~ここでは、MNISTとCIFAR-10を用いた画像の分類を行います。
MNISTは手書きの数字を集めたデータセットです。
MNISTの例(Wikipediaより)
CIFAR-10は乗り物と動物を集めたデータセットです
CIFAR-10の例(https://www.cs.toronto.edu/~kriz/cifar.html より)
【Python】リストの中に特定の要素があるか判定する処理はsetを使え某競技プログラミングコンテストにて、要素群の中に特定の要素が入っているかを判定する処理を実装しなければならない問題がありました。
この問題では、なにも工夫せずリストで実装すると指定された実行時間以内にプログラムが終了しません。
#### リストを使う方法(イメージ)
“`
A=[1,2,3,4,5,6,7,8,9,10]
if 5 in A:
print(“YES”)
“`
このように実装して、要素が少ない時は問題にはならないですが、要素がとても多いときは実行時間が長くなり、競技プログラミングのコンテストではタイムオーバーになってしまう。では、どうしたら良いのか。
**リストを使うのではなく、set型を使えば高速化できる!**#### setを使う方法
“`
A={1,2,3,4,5,6,7,8,9,10}
if 5 in A:
print(“YES”)
“`
このようにするだけで劇的に速くなるそうです。setの使い方は以下のページ
https://docs.python.org/ja/3/library/stdtypes.html#set#
Python3エンジニア認定基礎試験:勉強方法とおすすめ教材
# はじめに
私はデータアナリストとして働いており、データ分析のスキルアップのためにPythonの学習を始めました。学習の一環として、Python3エンジニア認定基礎試験を受験した時の私の勉強方法とおすすめ教材をご紹介したいと思います。
# 試験概要
Python3エンジニア認定基礎試験は、Pythonの基礎知識を問う試験です。試験内容は、以下のようになっています。
問題数:40問
出題形式:選択式
試験方式:CBT方式(コンピューター上で実施)
試験時間:60分
合格基準:7割正解
受験料:一般価格 11,000円(税込) / 学割価格 5,500円(税込)参照:Python 3 エンジニア認定基礎試験
https://cbt.odyssey-com.co.jp/pythonic-exam/python3basic.html
# 勉強期間と勉強方法私の勉強期間は1週間でした。限られた時間の中で効率的に学習するために、以下の3つのステップに重点を置いて取り組みました。
### 1. Pythonの基礎を学ぶ
まずは、Pythonの基本文法を学習する必要があります
格闘ゲーム
https://paiza.jp/works/mondai/class_primer/class_primer__fighting_game
前回の経験から、まずは例を使って実際にやってみる
ということはわかったんで、とりあえずやってみました“`
プレーヤー1 (p1)
hp = 10
f1 = 1
a1 = 1
f2 = 2
a2 = 2
f3 = 3
a3 = 3プレーヤー2 (p2)
hp = 10
f1 = 0 #強化
a1 = 0
f2 = 6
a2 = 1
f3 = 7
a3 = 2プレーヤー3 (p3)
hp = 10
f1 = 0 #強化
a1 = 0
f2 = 7
a2 = 5
f3 = 8
a3 = 31回目: 1 1 2 2
プレーヤー1技1で攻撃(f=1,a=1)
プレーヤー2技2で攻撃 (f=6,a=1)
⇒P1.f1(1) < p2.f2(6) なので、プレイヤー2の hp が p1.f1(1) 減る プレーヤー1:10 プレーヤー2:9 プレーヤー3:10 2回目: 1 2 3 2 プレーヤー1技2で攻撃(f=2,
RPG
https://paiza.jp/works/mondai/class_primer/class_primer__heros
今までの問題の応用だったので
難しくはなかったですね。
時間はかかりますが。。。“`py
class Status():
#当初の勇者のステータス
def __init__(self,level,hp,attack,defense,speed,clever,fortune):
self.level = int(level)
self.hp = int(hp)
self.attack = int(attack)
self.defense = int(defense)
self.speed = int(speed)
self.clever = int(clever)
self.fortune = int(fortune)def levelup(self, add_hp, add_attack, add_defen