Python3関連のことを調べてみた2022年04月30日

Python3関連のことを調べてみた2022年04月30日

Python3エンジニア認定基礎試験の勉強でつまずいたところ【ユーザー定義関数編】

# はじめに
2022年4月15日、Python3エンジニア認定基礎試験に合格しました。
試験対策は各認定スクールさんが出している模擬試験で行っていました。
模擬試験を解いていて、プログラミング初学者の私がつまずいたところを備忘録としてまとめようと思います。
今後同じ箇所でつまずいた方の一助となれば幸いです。
*問題は一部改変しています。

# 模擬試験の問題
##### 問1.以下のプログラムを実行した際の出力結果を答えよ。
“`python:test.py
def dive_into_code(teacher, L = []):
L.append(teacher)
return L

print(dive_into_code(‘Noro’))
print(dive_into_code(‘Nakao’))
print(dive_into_code(‘Miyashita’))
“`
***正解***がこちら。
“`console:console
[‘Noro’]
[‘Noro’, ‘Nakao’]
[‘Noro’, ‘Nakao’, ‘Miyashita’]
“`

元記事を表示

【Django】インストール方法

## インストール方法

インストール方法は、ディストリビューション固有のパッケージをインストールするのか、 最新の公式リリースをダウンロードするのか、あるいは最新の開発版を取得するのかに よって、若干異なります。
以下はpipにてインストールする方法になります。

1. pip で公式リリースをインストールする。
これは Django をインストールするのにお勧めの方法です。
2. pip をインストールします。最も簡単なのは、スタンドアロンの pip インストーラを使うことです。ディストリビューションに既に pip がインストールされている場合、それが古ければ 更新する必要があるかもしれません。古い場合、インストールが失敗します。
3. 仮想環境の作成と起動が完了したら、コマンドを入力します。

“`
$ python -m pip install Django
Collecting Django
Downloading Django-4.0.4-py3-none-any.whl (8.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

元記事を表示

競馬予想AI 勉強メモ#1 pandas DataFrameの特定行の抽出方法

競馬予想AI作成中にpandasのDataFrameの特定行を抽出したくなった際のメモです。
(参照:https://www.yutaka-note.com/entry/pandas_access#DataFrame%E3%81%AE%E8%A1%8C%E5%88%97%E5%80%A4%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)

特定の行を指定|df.loc[インデックス名, : ] または df.loc[インデックス名]

以上。これだけ!!

元記事を表示

discord、どう動いてる?

# 動機
普段使用しているpycordはどのようにして動いているのか気になったので。

# 仕組み
ベース:
APIのバージョンは8以上が推奨されています。[参考](https://discord.com/developers/docs/reference#api-versioning)

**下準備**
“`python
from pprint import pprint

API_VERSION = 9
BASE_URL = “https://discord.com/api/v{}”.format(API_VERSION)

TOKEN = “YOUR_BOT_TOKEN”
HEADER = {“Authorization”: “Bot {}”.format(TOKEN)}

APP_ID = 000000000000000000 # BotのID
GUILD_ID = 111111111111111111 # 対象とするサーバーのID
CHANNEL_ID = 222222222222222222 # 対象とするチャンネルのID
“`

# [メッセージ送信](ht

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 4)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 3)](https://qiita.com/ekzemplaro/items/d0c6321080ee14e2de36)
>API に PUT を追加

## プログラム ##

フォルダー構造

“`text
$ tree
.
├── __init__.py
├── crud.py 変更
├── database.py
├── main.py 変更
├── models.py
└── schemas.py 変更
“`

“`py:crud.py
from sqlalchemy.orm import Session
import sys
from datetime import datetime

from . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.Ci

元記事を表示

Pythonで作るスネークゲーム

## はじめに
 今回はPythonで、ヘビ状のオブジェクトにエサを食べさせて成長させる「スネークゲーム」を作ってみたいと思います。前回の記事で取り上げたPing Pongゲームに引き続き、Python初心者向けのゲームの一つです。Youtubeなど、ネットに多く教材がありますので、ぜひ参考にしてみてください。
 今回はpygameという、Pythonでゲーム作成をするときに便利なライブラリを使用しています。
今回のソースはこちらの動画に基づいて作成しています。
[“How to build SNAKE in Python!”](https://www.youtube.com/watch?v=9bBgyOkoBQ0)

## ゲーム概要と必要なオブジェクト及び処理
 そもそもスネークゲームとはどのようなゲームでしょうか。こちらが今回作るスネークゲームの外観です。

![スクリーンショット 2022-04-28 8.33.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1676583/5d931adc

元記事を表示

asyncio、コルーチン、async/await

# asyncio

>async/await 構文を使い 並行処理の コードを書くためのライブラリです
https://docs.python.org/ja/3/library/asyncio.html

では、`async/await`とは?

# async/await

* 非同期で実装する際に使用する

“`sample.py
async def edit():
results = await get()
return results
“`

次の様にawaitを使わない場合、

“`sample.py
async def edit():
print(get())
# > RuntimeWarning: coroutine ‘SampleController.get’ was never awaited
“`

「コルーチンがawaitされていない」と。
**コルーチンを単に呼び出しただけでは実行出来ず、コルーチンオブジェクトが返るため**

コルーチンとは?

# コルーチン

async/await 構文で宣言された関数はコルーチンと呼ば

元記事を表示

JPXのデータを用いてデータ分析をしていく【データ読み込みからデータの中身理解】(Kaggleコンペ)

みなさんこんにちは。
現在、Pythonを勉強している社会人3年目の転職希望者です。
プログラミングスクールに通い、様々な分析手法を学びました。これからは、更に実践で活躍できるようになる為、自らデータを探し、データの分析のみならず基礎から学んでいこうと考えています。
このブログが様々な人の役に立てれば光栄に思います。

さて、本題ですが今回使用するデータセットは下記のとおりです
https://www.kaggle.com/competitions/jpx-tokyo-stock-exchange-prediction
JPXが主催のコンペディションになっています。

ここで、JPXとは何か簡単に説明していきます。

日本取引所グループ(JPX)は、世界最大級の証券取引所である東京証券取引所(TSE)と、デリバティブ取引所である大阪取引所(OSE)および東京商品取引所(TOCOM)を運営する持株会社です。

今回はこのコンペディションのデータを用いて、データの読み込みからデータ手法まで幅広く学んでいきたいと思います。

1.データの読み込み
与えられたデータがかなり多いですが、まずは一

元記事を表示

boto3を使って、さくらのオブジェクトストレージにファイルをアップしてみる

# はじめに
最近になって、さくらのクラウドを触り始めた初心者(筆者)が四苦八苦しながら
オブジェクトストレージにファイルをアップロードしてみたのが前回の内容。

https://qiita.com/nkmr_RL/items/9b15c2eaddb97a830887

上記のアップロードができるようになったら
**「なんかPythonから操作できる気がしてきたわ…」**
と思い立ったので、Pythonから操作してみるのが今回の内容。

あと、先に言っておきますが、**AWS公式ライブラリboto3を使った方法**になるので
**さくらインターネットの公式サポート対象外のやり方**です。(多分)

だから、1年後には使えなくなっているかもしれない。(バナージ…悲しいね)

# 予想される検索ワード
以下、この記事を求めているであろう方が入力しそうな
(というか実際に私が必死で検索した)検索ワードです。

さくらのクラウド, オブジェクトストレージ, アップロード方法, Python, boto3

# 実行環境
– ubuntu 18.04(Dockerで構築)
– Pytho

元記事を表示

データフレームのある列をインデックスに設定する df.set_index()

ある列をインデックスに設定したい!
そんな時に、用いるのが`set_index()`です
df = df.set_index(“インデックスに設定したいカラム名”)

例えば、3列目くらいに`age`というカラムがあったとします。
年齢ごとにデータをまとめたいとき、一番左の列(インデックス列)にあればとてもデータとして
見やすいですよね。
是非使ってみてください!

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 3)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う (その 2)](https://qiita.com/ekzemplaro/items/e4a89757858c4c85e271)
>データベースとテーブルを変更
>API に delete を追加

## プログラム ##
フォルダー構造は同じです。

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . import models, schemas
#
def get_city(db: Session, city_id: str):
return db.query(models.City).filter(models.City.id == city_id).first()
#
def get_cities(d

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う (その 2)

こちらのプログラムを改造しました。
[FastAPI: SQLAlchemy で MariaDB を使う](https://qiita.com/ekzemplaro/items/9f84596fba2c532d45a9)
変更点
 id を string に
 age を追加

## プログラム ##

フォルダー構造は同じです。

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . import models, schemas

def get_user(db: Session, user_id: str):
return db.query(models.User).filter(models.User.id == user_id).first()

def get_user_by_email(db: S

元記事を表示

超初心者が適当に選んだC問題を解きまくってみた【Python】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

116 Grand Garden

https://atcoder.jp/contests/abc116/tasks/abc116_c

“`python:practice.py
def judge(hlist):
if len(hlist)==0:
return 0
mini = min(hlist)
idx = hlist.index(mini)
hlist = [h-mini for h in hlist]
return mini + judge(hlist[:idx]) + judge(hlist[idx+1:])

n = int(input())
hlist = list(map(int, input().split()))
print(judge(hlist))
“`

この問題で必要な考え方は、最初に一番背の低い花の必要な数だけ全体に水を与えて

元記事を表示

【AtCoder参加記】PythonでABC249のA, B, C, Dを解く

自分がコンテストでやった考察と実装を書いてみます.

* [A問題 『Jogging』](https://qiita.com/yassu/items/95f53238774e0d34489b#a%E5%95%8F%E9%A1%8C-jogging)
* [B問題 『Perfect String』](https://qiita.com/yassu/items/95f53238774e0d34489b#b%E5%95%8F%E9%A1%8C-perfect-string)
* [C問題 『Just K』](https://qiita.com/yassu/items/95f53238774e0d34489b#c%E5%95%8F%E9%A1%8C-just-k)
* [D問題 『Index Trio』](https://qiita.com/yassu/items/95f53238774e0d34489b#d%E5%95%8F%E9%A1%8C-index-trio)

## A問題 『Jogging』

問題ページ: [A – Jogging](https://atcoder.jp/cont

元記事を表示

【AtCoder解説】PythonでABC249のA,B,C,D,E,F問題を制する!

**ABC249**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

Pillowで図形を描く

# インストール
“`
$ pip install Pillow
“`

# 使い方
## 1. インポート
“`python
from PIL import Image
“`

## 2. 画像ファイルを開く
### 画像ファイルを読み込み
“`python
im = Image.open(fp, mode=’r’, formats=None)
“`
* __fp__ – ファイルのパス

### 新しく生成
“`python
im = Image.new(mode, size, color=0)
“`
* __mode__ – モードを選択
* __size__ – タプル`(width, height)`をピクセルで指定
* __color__ – 画像の色 デフォルトでは`’black’`

## 3. 図形を描く
### インポートとdrawオブジェクトの生成
“`python
import ImageDraw
draw = ImageDraw.Draw(im, mode=None)
“`

### 直線,折れ線
“`python
draw.l

元記事を表示

FastAPI: SQLAlchemy で MariaDB を使う

次のページを参考にしました。
[SQL (Relational) Databases](https://fastapi.tiangolo.com/ja/tutorial/sql-databases/)

Ubuntu でのライブラリーのインストール

“`bash
sudo apt install libmysqlclient-dev
sudo pip3 install mysqlclient
“`

MariaDB に次のデータベースを作成します。

“`text
host =’localhost’
data_base = ‘db_test’
user =’scott’
password = ‘tiger123’
“`

## プログラム ##

“`text
$ tree
.
├── __init__.py
├── crud.py
├── database.py
├── main.py
├── models.py
└── schemas.py
“`

“`py:crud.py
from sqlalchemy.orm import Session

from . im

元記事を表示

【Python + OpenCV】簡易寸法測定(画像に寸法描写)

## はじめに
画像を用いた寸法測定ツール作成は、カメラからの遠近によるサイズミスマッチや精度の問題があって敬遠しておりました。

https://qiita.com/okm_6880/items/0f964484d570208d715d

しかし先日、面白そうな記事を見つけました。

https://protopedia.net/prototype/2928

https://github.com/esc122/opencv_draw_binarize

## ちょっとした改良
2か月前に 1 commitされているのみで、開発が進んでいるのか止まっているのかわかりません。ひとまずfork / git clone し自分でも使ってみて、必要に思った機能を追加しました。詳しい操作方法などはREADME.mdをご覧ください。二値化して面積求めたりする機能もあるようですが、私には必要なさそうなので説明を省略しています(元リポジトリには一切の説明がありません)。

https://github.com/youichi-io/opencv_draw_binarize

#### メイン画面
w

元記事を表示

【Python OpenCV】画像 から 横線 のみ検出する(おまけで縦線も)

## はじめに
OCRするうえで「枠線」は避けて通れません。文書のOCRを進めていると、表の枠線が検出の邪魔をすることがあります。一方で、OCRをする領域を絞り込むために枠線の位置情報を必要とすることもあります。今回は、そんな枠線の情報を取得することを目指します。

![out_64.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577794/789ea6a2-2b70-276a-bb37-85950aa019a7.jpeg)
![out_ver.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577794/ecbb6c87-5f9d-3f65-cd11-4696f6954a57.jpeg)

## 対象者
この記事は下記のような人を対象にしています。
– OCRのために枠線の情報を取得したい人

## 参考元
参考にしたサイト様を以下に示します。書かれている通り、微調整が重要でした。この記事ではその微調整した部分をまとめ

元記事を表示

にゃんこスイーパー

Python+Cursesで、にゃんこスイーパーを書いてみました。
Ubuntuのターミナルで動きます。
ファイルに、chmod +x nyankosweeper.pyとして、実行権を付けて動かして下さい。

$./nyankosweeper.py [number of cats]として、動かします。
[number of cats]は、省略できます。省略すると、猫の数は58個となります。

スペースキーで、開き、’z’キーで、マークを付けます。カーソルは矢印キーで動かします。
’q’キーで抜け出せられます。

pyinstallerで、コンパイルできます。コンパイルしなくとも、そもそも速度はあんまり問題ないですが。

“`nyankosweeper.py
#!/usr/bin/python3

import curses
import random
import locale
import select
import sys

xsize = 40
ysize = 23
vvram = [[0 for i in range(ysize)] for j in range(xsize

元記事を表示

OTHERカテゴリの最新記事