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

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

数値のスペース埋め(入力でデータの数とスペースで何桁の数にするか指定する)

***数値のスペース埋め***(入力でデータの数とスペースで何桁の数にするか指定する)
のプログラミング課題を解きました。

“`Python3
#入力するデータ数とスペース埋めで何桁で出力するか入力する
data1 = input(“数値のデータの数とスペース埋めで何桁の数に指定するかスペース区切りで入力してください”)
array1 = data1.split(‘ ‘)
N = int(array1[0])
keta = int(array1[1])
for i in range(0,N):
num = input()
ans = “{: >{}}”.format(num,keta)
print(ans)
“`

元記事を表示

[Python][Julia]Project euler9 (プロジェクトオイラー9)

#### Project euler Ploblem 9 (プロジェクトオイラー9)
[Special Pythagorean Triplet](https://projecteuler.net/problem=9)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
ピタゴラスの三つ組数は 3つの自然数のセットであり、a

元記事を表示

Python3: SMTP over SSL でメールの送信

こちらのプログラムを改造しました。
[Python3: Starttls でメールの送信](https://qiita.com/ekzemplaro/items/c248b52a6f36947af080)

“`py:mail_send.py
#! /usr/bin/python
#
# mail_send.py
#
# Jan/08/2024
# ——————————————————————–
import os
import sys
import socket
from dotenv import load_dotenv
import email
from email.mime.text import MIMEText
from email.utils import formatdate
# ——————————————————————–
from send_smtp_ssl import

元記事を表示

異様な書き方でプログラミング

異様な書き方でコラッツの問題を解くプログラムを書いてみる。

– `式1 if 条件 else 式2` 構文を使う。
– `式1`,`式2`は複数の式から構成されてもよい。ただし,
– 全体を `( )` で囲む
– それぞれの式は `,` で区切る
– 関数の引用も式である
– 代入文の場合はいわゆるセイウチ演算子 `:=` を使う
– 実行される複数の式の結果をタプルとしてセイウチ演算子で捕捉しておくこともできる

“`python
n = 976
oddcount, evencount = 0, 0
while n != 1:
(junk1 := (print(‘n =’, n, ‘is even. =>’, n//2), n := n//2, evencount := evencount + 1)) if n % 2 == 0 else (junk2 := (print(‘n =’, n, ‘is odd. =>’, n*3 + 1), n := n*3 + 1, oddcount := oddcount + 1))
prin

元記事を表示

最もよく起こりうることを先に判定せよ

“`Python
if condition:
continue
else:
something()
“`

の意味と,「最もよく起こりうることを先に判定せよ」というのは違うのではないか。
確かに以下のような場合には  `i < 0.8` を先に判定するほうが良いが,それとこれとは違う。 ```python #--- import numpy as np from time import time n = 100000000 x = np.random.rand(n) s = time() s1, s2, s3 = 0, 0, 0 for i in x: if i < 0.8: s1 += 1 elif i < 0.9: s2 += 1 else: s3 += 1 print(s1, s2, s3, time() - s) ``` 79997428 9999472 10003100 10.772604942321777 ```python s = ti

元記事を表示

[Python][Julia]Project euler8 (プロジェクトオイラー8)

#### Project euler Ploblem 8 (プロジェクトオイラー8)
[Largest Product in a Series](https://projecteuler.net/problem=8)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
1000個の数値がある、4個の隣り合う数値で最大の積は9×9×8×9=5832
13個の隣り合う数値の最大の積は?

#### 原文
The four adjacent digits in the 1000-digit number that have the greatest product are 9×9×8×9=5832.
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
125406987471585238630507156932909632

元記事を表示

【macOS】asdf+PoetryでPythonの開発環境を構築した

## 背景
先日、Anaconda3を使いたくなくなって、アンインストールした。
後に、asdfとPoetryでPythonの開発環境を再構築したので、メモを残しておく。

https://qiita.com/TIshow/items/2dbabe857343a79cf3b0

## やること

asdfとPoetryでPythonの開発環境を構築する

## 手順
1. Poetryとは何か?

## Poetryとは何か?
Poetryは、Pythonのパッケージ管理ツールである。Pythonには、pip や pipenv など、さまざまなパッケージ管理ツールが存在するが、Poetryもその一つ。
Poetryの目的は、パッケージの依存関係を簡単かつ効率的に管理することにある。

### Poetryの主な機能
Poetryは以下のような強力な機能を提供している・

– パッケージの管理:
Pythonプロジェクトに必要なライブラリやツールのインストール、更新、削除を容易に行うことが可能。
– 依存関係の解決:
poetry.lock ファイルを通じて、プロジェクトの依存関係を一

元記事を表示

Python3のdequeの実装を調べる:

https://atcoder.jp/contests/abc335/tasks/abc335_c

この問題で、Pythonのdequeのindexed参照が$O(N)$なんだ!というポストをみかけました。Pythonのdequeの実装はどうなっているのでしょうか?以下はPython-3.8.10.tar.gzのコードから参照します。

# 冒頭のコメントを読む(日本語のみ)

– dequeの特徴はappendやpopにおいて操作するデータ以外の位置を移動させないことだ。加えて、(全体に対する)reallocを発生させない
– Pythonのdequeは固定ブロックサイズのダブルリンクドリストに格納される。これは一般のリンクドリストは1つの要素ごとにnxt/prvをもったりして非効率的だから。また、連続アクセスのキャッシュ局所性への対応も実現する。

# ダブルリンクドリストのイメージとdequeの構造体の実装
以下はイメージです。各要素は前後の要素へのポインタを持ちます。各要素は要素のデータを持ちます。
![image.png](https://qiita-image-store

元記事を表示

ラズパイで動体検知カメラを作った

## はじめに
python も ラズパイも全くの独学で、3年程経過しました。いろいろ作っているので紹介できればと思います。コーディングなどは他人に見せるには恥ずかしいレベルと思われますが、誰かの参考になればと。

## 目次
1. まずはWindows下で
1. ラズパイの準備
1. カメラの起動
1. LCD表示
1. 使用ハードウエアまとめ
1. おまけ

## まずはWindows下で
動体検知カメラと云うことで、Motionをラズパイにインストールしたが、動作が良く解らない。
解らないのでコマンドにてサービスを停止した。停止したはずなのに9KB程度のjpegを吐き出し続けているのを発見した。これは自分には対処不能と判断しアンインストール。
心機一転 全て自分で作ろう!
なるべく小さくまとめたかったのでヘッドレスラズパイ+ミニLCDという構成。
しかし、いきなりヘッドレスラズパイでのデバッグ作業は面倒だと思うので、まずは Windows の下でロジック確認。
ソースはこれ。
“`ruby:camchk.py
# -*- coding: utf-8 -*-
# パラメタ調整は差

元記事を表示

OpenCVを用いたエッジ検出

OpenCVを使用したエッジ検出は、画像のエッジや輪郭を識別するプロセスで、画像処理や画像認識の分野で広く利用されています。エッジ検出の一般的な手法には、Cannyエッジ検出、Sobelエッジ検出、Laplacianエッジ検出などがあります。本記事では、これらの方法を使った基本的なエッジ検出の例をいくつか紹介します。

必要なもの
Python: プログラミング言語として使用。
OpenCV: 画像処理を行うためのオープンソースライブラリ。
OpenCVをインストールしてください。
“`
pip install opencv-python
“`
## Cannyエッジ検出
Cannyエッジ検出は、画像のエッジを検出するための多段階アルゴリズムです。

“`
import cv2

# 画像を読み込む
img = cv2.imread(‘image.jpg’, 0)

# Cannyエッジ検出を適用
edges = cv2.Canny(img, 100, 200)

# 結果を表示
cv2.imshow(‘Canny Edge Detection’, edges)
cv2.wait

元記事を表示

スペース埋め

スペースで埋めて数字を3桁の文字列にするプログラムを実装しました

“`python3
# coding: utf-8
# 自分の得意な言語で
# Let’s チャレンジ!!
num = input()
# スペース埋め
ans = “{: >3}”.format(num)
print(ans)
“`

元記事を表示

Anaconda3をmacOSから完全にアンインストールした

## 背景

数年前までanacondaを使っていたが、新たにまたpythonを触る気になった。
そこで、Javascriptでは普段asdfを使っているので、asdf+Poetryでpython環境を0から作ってみようかなと思い、その際、これまで使っていたanacondaは綺麗に消そうと思った。

## やること
anacondaは正直Jupyter Notebookを使うために入れていたくらいの温度感なので、Anaconda3をホストマシンからアンインストールする。

## 手順
Step1: Anaconda3のホームディレクトリの確認
Step2: anaconda-cleanをインストール
Step3: anaconda-cleanをインストール
Step4: .anaconda_backupを削除
Step5: anacondaを削除!
Step6: パスとかの削除
Step7: ショートカットを削除する

## Anaconda3のホームディレクトリの確認
削除する前に、Anaconda3 がどこにインストールされているかを確認する。
独自にカスタマイズしていなければ、多

元記事を表示

realsense点群取得、カラーカメラの映像と合わせてリアルタイム描画

## 1: 必要な物
RealSenseデバイス: RealSenseデバイス(例えば、D415、D435など)が必要です。
RealSense SDK 2.0:動作確認用に [Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
“`
pip install pyrealsense2
“`
numpy: numpyインストールしてください。
“`
pip install numpy
“`
numpy: open3dインストールしてください。
“`
pip install open3d
“`
## 2: 点群取得のプログラムを作成
以下は、Pythonを使用してRealSenseから点群を取得し、カラーカメラの映像と合わせてリアルタイム描画するためのコードです。

元記事を表示

曜日の判定 Python3編

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__mod_step4

“`py
X = int(input())

if X % 7 == 1:
print(‘Sun’)
elif X % 7 == 2:
print(‘Mon’)
elif X % 7 == 3:
print(‘Tue’)
elif X % 7 == 4:
print(‘Wed’)
elif X % 7 == 5:
print(‘Thu’)
elif X % 7 == 6:
print(‘Fri’)
elif X % 7 == 0:
print(‘Sat’)

“`
たしか、もっと簡単にできたはず。。。
ヒントは配列

“`py

x = int(input())
week = [“Sat”, “Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”]

print(week[x % 7])
“`
きれいだなぁ。。。
はじめからやっておけば(汗)

元記事を表示

Misskeyで自分のノートをrenoteするbot

タイトルそのまま、備忘録。

# やること
– Misskey.ioでの自分の過去のノートを、同じアカウントでRenoteする

# 環境
– Python 3.12.1(新しもの好き)
– 使うライブラリの関係上、バージョンは3.7以上必須
– Ubuntu(バージョンは忘れた……けどそもそもOS環境依存で発生する問題はないはず)

# 準備するもの
– MisskeyのAPIアクセストークン
– [設定] > [API] > [アクセストークンの発行] から入手できます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/1eda274b-fa5c-02e7-3e43-1a86581fe9ea.png)

– 権限は「アカウントの情報を見る」と「ノートを作成・削除する」だけあれば十分です

# Pythonを書く
エッセンスとなる部分だけ紹介します。

## 使うライブラリ
Misskey.pyというめちゃくちゃ便利なライブラリがあります。

h

元記事を表示

四捨五入をする関数

## 四捨五入関数

以前に何処かに書いて,コメントももらっていたのが行方不明になっていました。

新たに頂いたコメントに基づいて,本文を追加・訂正します。
さらなるコメント,多言語による実装例等歓迎です。

### Python

“`Python
def shishagonyu(x, n=0):
return (-1 if x < 0 else 1 if x > 0 else 0)*int(abs(x) * 10**n + 0.5) / 10**n
“`

“`R
(shishagonyu(5.15, 1), shishagonyu(-5.15, 1), shishagonyu(0.5), shishagonyu(-0.5))
“`

(5.2, -5.2, 1.0, -1.0)

“`R
(shishagonyu(5.25, 1), shishagonyu(-5.25, 1), shishagonyu(1.5), shishagonyu(-1.5))
“`

(5.3, -5.3, 2.0, -2.0)

#### @

元記事を表示

抽選ツール③

***抽選結果***をエクセルに書き出し、自動でエクセルを開くように、**抽選ツール**を改良しました。

“`python3
####################################################
### お題抽選ツール
####################################################

#ランダムモジュールを呼び出す
import random
import openpyxl
import subprocess

#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#エクセルファイルのファイル名変数
out_file = “prezen1.xlsx”
wb = openpyxl.load_workbook(out_file)
#書き込むワークシートを定義する
ws = wb[‘select’]
#行数の定義
start_row = 3

#正の整数が入力されるまで繰り返す
while True:
try:
N = int(input(“登録人数を指定し

元記事を表示

AND+OR Python3編

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__bool_boss

空気を読まないで問題だけ見て考えた答案(汗)

“`py
X,Y,Z = map(int,input().split())
if Z >= 10:
print(‘YES’)
else:
if X >= 10 and Y >= 10:
print(‘YES’)
else:
print(‘NO’)

“`

いや実際問題見たらまず先にZが10以上かどうかを調べないといけないってことじゃんかって思うのだけど、
ORの役割をちょっと考えると
たとえば、AがTrueだったら、BがFalseでもTrueでもOrでつながると全体としてTrueになるんですよね。
さらにPythonだと、andのほうがorよりも優先される性質があるそうです。
だからこれを利用すると、3つ同時に書けちゃうという。もはや優先順位をつける括弧もいりません。
私もなるほどと思いました。

“`py

元記事を表示

抽選ツール開発②

***抽選ツール***を改良して、名前とお題を結びつけるようにしました。

“`python3
####################################################
### お題抽選ツール
####################################################

#ランダムモジュールを呼び出す
import random
#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#正の整数が入力されるまで繰り返す
while True:
try:
N = int(input(“登録人数を指定してください\n”))
if N <= 0: raise ValueError("error!") else: break except ValueError as e: print("文字列、小数、負の整数、0を入力しないでください") print("正の整数を入力してください") #配列に名前を登録する for

元記事を表示

【Python】math関数を使った切り上げ・切り捨て・偶数丸め(≒四捨五入)の除算

# 概要
Python3では、設計上、整数同士の除算でも結果が浮動小数点数として返されることになっています。本記事では`math`を使ったサンプルコード、実数除算と整数除算、情報落ちなどについて解説します。

# 除算では割り切れる場合でもfloat型になる

公式ドキュメントでも以下のように記載されています。

> 除算 (/) は常に浮動小数点数を返します。 // 演算子は 整数除算 を行い、整数値を返します; 剰余は、% で求めます。:
引用元:[3.1.1. 数¶](https://docs.python.org/ja/3/tutorial/introduction.html#numbers)

以下ではわかりやすい例もあります。

>3 / 3 のように割り切れる場合でも、答えは整数の 1 ではなく、小数点以下が `0`のfloat型になります。
1.0
引用元:[整数と実数: ゼロからのPython入門講座](https://www.python.jp/train/type_and_func/float.html)

Pythonでは(というか他の言語でも一緒と思われる?)

元記事を表示

OTHERカテゴリの最新記事