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

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

paizaラーニング「任意の数で何回割れる? Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__div_m
私の回答
“`Python
N,M = map(int,input().split())

div_count = 0
while True:
if N % M == 0:
N //= M
div_count += 1
else:
break

print(div_count)
“`
模範解答
“`Python
N, M = map(int, input().split())

div_count = 0
while True:
if N % M == 0:
N //= M
div_count += 1
else:
break

print(div_count)
“`
2で何回割れるの模範解答を基に、今回の回答を作ったので、ほぼ同じ回答になりました。

元記事を表示

paizaラーニング「2 で何回割れる? Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__div_two
私の回答
“`Python
n = int(input())
ans = 0
while n % 2 == 0:
n = n / 2
ans += 1
print(ans)
“`
模範解答
“`Python
N = int(input())

div_count = 0
while True:
if N % 2 == 0:
N //= 2
div_count += 1
else:
break

print(div_count)
“`
模範解答はwhileの中でTrueとかbreakを使っていました。

元記事を表示

paizaラーニング「カウント変数を使った計算 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__index_multi
私の回答
“`Python
n = int(input())
number = [int(x) for x in input().split()]
for i in range(n):
print(number[i] * (i + 1))
“`
模範解答
“`
N = int(input())
M = list(map(int, input().split()))

for i in range(N):
print(M[i] * (i + 1))
“`
割と近い回答でした。

元記事を表示

paizaラーニング「各桁の和 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__digit_sum
私の回答
“`Python
n = input()
ans = 0
for i in range(len(n)):
ans += int(n[i])
print(ans)
“`
模範解答
“`Python
N = int(input())

digit_sum = 0
while N > 0:
digit_sum += N % 10
N //= 10

print(digit_sum)
“`
全く違う書き方でした。

元記事を表示

[Django]データ作成・保存時に処理させるSignalを使う[django.dispatch.receiver]

# django.dispatch.receiver()の使い方
特定のテーブルのデータが変更されたらログ出したい時とかありますね。
簡単な例としては、商品情報を変更した場合のみログを出したいとか。
そんな時に使えるのがsignal!

https://docs.djangoproject.com/en/4.1/_modules/django/dispatch/dispatcher/

>Django includes a “signal dispatcher” which helps decoupled applications get notified when actions occur elsewhere in the framework. In a nutshell, signals allow certain senders to notify a set of receivers that some action has taken place. They’re especially useful when many pieces of code may be inter

元記事を表示

VSCodeからPythonソースを対話的に実行

Jupyter Notebookでも利用しているiPythonを用いて、生のPythonソース上でも対話的に実行する機能が提供されています。

# 準備
– VScodeに拡張機能「Python」をインストール

# 実行
Pythonのサンプルソース
“`python
#%%
# セル1
print(“output 1”)

#%%
# セル2
print(“output 2”)
“`

上記ソースでは、2つのprint文それぞれの直上で、「#%%」を記述しています。
Python Interactiveでは、「#%%」の間が、Jupyter notebookでのセルにあたります。
このソースをVSCode上に入力しているとき、次のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586693/97239999-edd6-dd84-5875-5a113d31796e.png)

「#%%」の上に「セルの実行」「以下を実行」「[デバッグ]セルに移動」「[1]に移動

元記事を表示

PythonでC言語の解析

# 概要
C言語をコンパイルするとき、人が記述したCソースは抽象構文木と呼ばれる中間的な表現に変換され、バイナリ形式になります。
今回は、そのC言語ソースを抽象構文木として解析できるPythonプログラムを使って遊んでみました。

# 準備
## LLVMのインストール
https://github.com/llvm/llvm-project/releases

この中の最新のバージョンを選択しましょう。
Windows版はAssetsの中に一見ないかもしれないですが、「LLVM 15.0.5」(執筆時点)でをクリックすれば、windows版のインストーラもダウンロードできます。
インストールするときに環境変数の設定をインストーラの方でやってくれるオプションを選択すれば楽です。

## Python用のパッケージをインストール
パッケージをインストールしたい環境を開き、以下コマンドを実行します。
“`
pip install libclang
“`
libclangの詳しい情報は[こちら](https://pypi.org/project/libclang/)

# Python

元記事を表示

M5stackでランダムに画像を表示させてみた。

M5stack core2のディスプレイに複数の画像をランダムに表示させてみました。

## 環境
OS: windows 10.0
M5stack core2

## 方法
M5stack core2のSDカードに保存している画像の枚数を取得します。そこからランダム関数を使って出てきた値から画像を選択し、一定時間間隔で読み出します。画像の切り替えは、RTCの秒数を使い、一定時間経過後、画像の変更を行うようにします。

## 画像のリサイズ
M5stackのディスプレイは、320✖️240なのでそこに収まるように画像をリサイズします。画像のリサイズには、pythonを用いました。pythonを実行するファイルのディレクトリに加工したい画像データをinputファイル内に入れ、リサイズした結果は、outputに入れるようにしました。

“`test.py
from PIL import Image
import os

def resize(img_file):
img = Image.open(img_file)
img_x = img.width
img_y

元記事を表示

定義メソッドのヒントを記述

#
VSCodeでPythonコードを書くとき、使ったことのなく機能がわからないクラスやメソッドにカーソルを当てると、ざっくりとして説明が出てウェブ上のドキュメントを見に行く必要がないですよね。
自作クラスのメソッドでも、そういったヒント的な表示を出すように記述することができます。
記法は基本的にMarkdownと同じです。

## サンプルコード
“`python
class Class1:
“””
# 見出し1
## 見出し2
### 見出し3

# 箇条書き
– リスト1
– 子リスト1
– 孫リスト1
+ リスト2
* リスト3

# 水平線

# code記法
`コード記法はこんな感じ`

# リンク
[python documentation](https://docs.pyth

元記事を表示

40代おっさん面会予約アプリを作ってみる⑤

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回の記事




## 面会室予約画面の予約一覧表示

“`python
import streamlit as st
import datetime # 時刻を扱うため
import requests
import json
import pandas as pd

# サイドバーを作って各ページを用意
page = st.sidebar.selec

元記事を表示

アルファベット+数字+記号をsha3-512でハッシュ化してみた

## はじめに
CTFでsha3のハッシュ値を求める問題がありハッシュ値を探していましたが、Webツールで1文字ずつハッシュ化していくのも面倒だったので、リファレンスとして自分で作成することにしました。

## ハッシュ値
| 値 |    ハッシュ値                                                                                   

元記事を表示

複数 List 作成時 for 一回 append より、内包表記で複数 for のほうが速いんだ

# はじめに

ちわ

久々に Python を触って、ほえ~そっちが早いんだ、となったので久々に記事に

# 環境

[Paiza.io](https://paiza.io/ja/projects/new) の Python3 で確認

# やりたいこと

以下のクラスのリストがあったとして、インスタンス変数ごと(a, b) ごとのリストを作成したい
クラスの数はとりあえず 1 万で

“`python
from random import random

class Klass:
def __init__(self):
self.a = random()
self.b = random()

klasses = [Klass() for _ in range(10_000)]

# a_list => [klasses[0].a, klasses[1].a, klasses[2].a, …]
# b_list => [klasses[0].b, klasses[1].b, klasses[2].b, …]

元記事を表示

paizaラーニング 例外処理のタブーサーチ 【備忘録】

自分用メモです。
問題:例外処理のタブーサーチ (paizaランク B 相当)
https://paiza.jp/works/mondai/steinsgate/restore_command_boss

最初に書いたコード
“`python:firsttry.py
n, m, l = map(int, input().split())
d = [[int(x) for x in input().split()] for y in range(n)]
p = [[int(x) for x in input().split()] for y in range(l)]

dif = []
for i in range(l-1):
difl = []
for j in range(m):
difl.append(p[i+1][j]-p[i][j])
dif.append(difl)

for difi in dif:
for i, di in enumerate(d):
if difi == di:

元記事を表示

【Python】Pythonの主な組み込み関数31個について、全て例を交えて解説する

# 始めに

[こちら](https://www.amazon.co.jp/Python%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80-%EF%BD%9E%E3%83%8E%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%AE%9F%E5%8B%99%E5%8A%B9%E7%8E%87%E5%8C%96%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E9%AB%98%E6%A9%8B-%E5%AE%A3%E6%88%90-ebook/dp/B09B6YFVZ4)の参考書でPythonを勉強しています。
Chapter6第2部に組み込み関数が大量に紹介されていたので、触ってみるついでに紹介していきます!

# 紹介!

ではどうぞ!
マイルールで見出しレベル

元記事を表示

MetPyの単位変換 その2

# はじめに
[前回](https://qiita.com/kasugab3621/items/69c66fae3623d7f081ba),MetPyでは計算中の単位変換を”よろしく”やってくれる,と説明したが,正しくは,
「足し算」はよろしくやってくれるみたいだが
「掛け算」は注意が必要
なようなので,簡単にまとめる

# metpy.constants
気体定数をデモ的に利用する.ありがたいことに,MetPyには気象にまつわる定数が用意されている.

“`python3
from metpy.units import units
import metpy.constants as mC # mCは個人的なネーミングです

Rd = mC.dry_air_gas_constant # 乾燥空気の気体定数
Rv = mC.water_gas_constant # 水蒸気の気体定数
“`

Rd,Rvどちらも同じ単位と思いきや,
“`python3
Rd
287.04749097718457

Rv
0

元記事を表示

AtCoder Beginner Contest(ABC) 276 – Pythonでのバーチャル参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 276
– 開催日時
– 2022/11/5(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/7(月)

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|11:05|25ms|
|B問題|TLE|-|2208ms|
|C問題|未提出|-|-|

# 4. 解説

## 4-1. A問題

### 4-1-1. 問題文
> 英小文字からなる文字列 S が与えられます。
S に a が現れる

元記事を表示

Pythonで引数と戻り値の型を明示する

# 前提
そもそもPythonでは引数や戻り値等の型を宣言する必要はない。
変数について型を宣言しないことで、柔軟かつ簡単にプログラムを記述できるというメリットがある。
一方、可読性の面では、場面ごとに各変数がどの型であるかを把握しづらくなるデメリットがあるといえる。

# Pythonで型を明示する意義
引数や戻り値として想定される型を明示することで、コードの可読性と保守性を高める。
(あとで読んだときに理解しやすい)
※型を明示するが、処理として型安全性を保証するものではない。つまり、明示した型以外の値が変数に代入されても通常通り処理される。

# アノテーション記法
Pythonでは、変数の型についての注釈(アノテーション)を記述するための記法としてアノテーション記法が用意されている。
次のように記述することで変数の型を明示することができる。
“`Python
a: int = 10
b: bool = True
c: str = ‘Hello’
“`
これを用いて、次のように関数の引数も型を明示できる。
“`Python
def func(a:int, b:bool, c

元記事を表示

40代おっさん面会予約アプリを作ってみる④

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回の記事



## ユーザー登録画面の作成

`app.py`を作る

“`python
import streamlit as st
import random # ランダム値がほしいので
import datetime # 時刻を扱うため
import requests
import json

# サイドバーを作って各ページを用意
page = st.sidebar.selectbox(‘ページを選択してください’, [‘ユーザー登録’, ‘面会室登

元記事を表示

40代おっさん面会予約アプリを作ってみる③

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回の記事


## メインファイルの作成

`sql_app`フォルダーなのかに
`main.py`を作る

“`python
from typing import List
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session

from . import crud, models, schemas
from .database import SessionLocal, engine

# データベースエンジンを元にデータベースを作成
models.Base.metadat

元記事を表示

[Python]timeitで処理時間を計測してみた

# はじめに
– 今回はPython標準ライブラリのtimeitモジュールを使って、プログラムの処理時間を計測してみたいと思います。
– 動作環境
– Python 3.11.0
– macOS Ventura

# timeitとは
timeitはPython標準ライブラリのモジュールで、小さなコードの計測に便利です。

timeitモジュールは、コードの一部を指定した回数だけ実行することで、その処理速度を計測して、平均処理時間を計測できます。また、デフォルトでは計測中、一時的にガベージコレクションを無効にすることで、個々の計測結果がより比較しやすくなります。

timeitを使って以下の3つのやり方で処理時間を計測してみます。
– pyファイル内で計測
– コマンドラインで計測
– 対話モードで計測

※処理時間は実行するマシンの性能によって異なる場合があります。

# pyファイル内で計測
## timeit.timeit()
“`python
import timeit

timeit.timeit(stmt=’pass’, setup=’pass’, tim

元記事を表示

OTHERカテゴリの最新記事