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

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

ロボットの暴走

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 = 0

def 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 より)
スクリーンショット (889).pngf【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 = 3

1回目: 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

元記事を表示

【Python】辞書内包表記を使ってDBアクセス回数を減らす方法

# 概要
Pythonの辞書内包表記を使って、DBへの接続回数を減らす実装を行いました。
以下にサンプルコードを紹介します。

# 辞書内包表記を使う
例えば、以下のようなコードがあります(DjangoのORMを使用)。

“`py
for item in list_fruit_cd:
fruit_data = FruitCd.objects.filter(fruit_cd=item).first()
## 後続処理…
“`

上記だと`list_fruit_cd`の要素数が大量の場合に毎回DBアクセスすることとなり、パフォーマンスに影響が出る可能性もあります。そんな場合に、`for`文の外で一度だけDBアクセスさせ、その結果を辞書に格納し、その後のループで辞書から必要なオブジェクトを取得するようにするとパフォーマンスが向上すると思われます。

つまり、以下のようにします。

“`py
fruit_dict = {obj.fruit_cd: obj for obj in FruitCd.objects.filter(fruit_cd__in=list_frui

元記事を表示

python GUI入門 tcl/tk ウィジェット一覧とサンプル

# 実行サンプル
tcl/tkウィジェット一覧と動作例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/a5d4d6ab-9f2b-bc59-7cc8-b75fd0c73bae.png)

# 実行環境
windows10
python3.9.5

pythonモジュール tcl/tk

# 実行手順
ソースコードを作成する
windowsコマンドプロンプトでプログラム作成したフォルダに移動し、下記実行する
“`
python プログラム名.py
“`

# 参考 URL https://www.nakamuri.info/mw/index.php/%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E3%81%AA%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88

https://imagingsolution.net/program/python/tkinter/checkbut

元記事を表示

出口のない迷路

https://paiza.jp/works/mondai/class_primer/class_primer__closed_maze

ぶっちゃけ文章をよんで全然意味がわからなかったです。
とりあえず入力例を見てみます

“`
4 4 1
p 2 4
a 3 1
i 4 2
z 1 2
1
1
1
2
“`

・最初の行は地点の数 N と、移動の回数 K , 移動を開始する地点の番号 S
・脱出するには、迷路の地点を与えられた指示通りに移動し、移動で訪れた(移動の開始・終了地点を含む)地点に置かれたアルファベットをつなげた文字列を呪文として唱える必要があります。
・各頂点からは、他の頂点に向かって一方通行の 2 つの道が伸びています。
・続く N 行のうち i 行目(1 ≦ i ≦ N)では、番号 i 地点に置いてあるアルファベット a_i と
 1 つめの道のつながっている地点の番号 r1_i , 2 つめの道のつながっている地点の番号 r2_i  が与えられます。
・続く K 行のうち i 行目(1 ≦ i ≦ K)では、
 i 回目の移動で選んだ道の番号 M_i が与え

元記事を表示

スクレイピングして企業概要を取得する②

# はじめに
前回取得したタグファイルのデータをクレンジングし、企業概要をエクセルファイルに出力するモジュールを紹介します。

## 前回の記事
前回の記事のリンク先は下記になります。
[前回の記事](https://qiita.com/nogizakapython/items/0fa0a7b9034dc89a0657)

## ソースコード
“`python
# 会社概要をエクセルファイルに書き込む処理
# 新規作成 2024/3/3
# Create by 乃木坂好きのITエンジニア

# ライブラリのインポート
import re
import openpyxl as op
import shutil
import os
import sys

#項目を取得
pattern1 = ‘

#内容を取得
patturn2 = ‘


patturn3 = ‘


patturn4 = ‘

# pタグを取得
patturn5 = ‘

# データ切り替えレコード変数の定

元記事を表示

ZED SDK の設定可能な候補を見つける

ZED SDK はStereoLabsのカメラ zed2, zed-x, zed mini を使うためのライブラリである。
そのZED SDK を概観するために、各項目で設定できる項目には何があるのかを見つけるためのpythonスクリプトをメモする。

## 想定する読者
stereolabsのzed2, zed mini, zed z などのステレオカメラの利用者
いまどきのステレオカメラは何ができるのかを知りたい人
## 前提
ZED SDK 4.0

## 注意
無保証です。

## 実施方法
– 以下のスクリプトを実行する。

“`:.py
import inspect

import pyzed.sl as sl

def show_params(some_params):
print(f”{str(some_params)}”)
for k, v in inspect.getmembers(some_params):
if k.find(“__”) < 0: print(f"{type(some_params)}

元記事を表示

静的メンバ

https://paiza.jp/works/mondai/class_primer/class_primer__static_member

“`py
class Ghest():
def __init__(self):
#初期化
self.sum = 0

def take_food(self, price):
self.sum += int(price)
def take_softdrink(self, price):
self.sum += int(price)
#ここでデフォルト引数追加
def take_alcohol(self, price=500):
pass
def get_sum(self):
return self.sum

class Adult(Ghest):
def __init__(self):
super().__init__()
#初期化
self.al

元記事を表示

デフォルト引数

https://paiza.jp/works/mondai/class_primer/class_primer__set_default

すみません、デフォルト引数を使わないまま
解答しました。。。

“`py
class Ghest():
def __init__(self):
#初期化
self.sum = 0

def take_food(self, price):
self.sum += int(price)
def take_softdrink(self, price):
self.sum += int(price)

def take_alcohol(self, price):
pass
def get_sum(self):
return self.sum

class Adult(Ghest):
def __init__(self):
super().__init__()
#初期化

元記事を表示

OTHERカテゴリの最新記事