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

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

AmazonLinux2にPython3.13.0rc1をインストールしてThreadの性能を比較してみた

8月1日にPython3.13.0rc1がダウンロード可能になりましたので、AmazonLinux2に入れ簡易スクリプト使ってThreadingの性能を3.9.19と比較してみました。リリース内容は以下のページから確認できます。

https://pythoninsider.blogspot.com/2024/08/python-3130-release-candidate-1-released.html

# 前提
OS:Linux amazonlinux2 4.14.348-265.565

# 1. 必要packageのインストール
ビルドに必要となるpackageを入れておきます。
“`bash
yum install -y bzip2 bzip2-devel gcc git libffi-devel openssl11 openssl11-devel readline readline-devel sqlite sqlite-devel zlib-devel libdb-devel gdbm-devel xz-devel tk-devel uuid-devel
“`

元記事を表示

夏休みの宿題①

paizaの問題キャンペーンが始まっているので夏休みの宿題がてらに解いてみました✨
まずはウォーミングアップとpaizaの使い方になれるため、まずはこちらの問題を解いてみました🎵

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7

# 結果
入力の仕組みに戸惑いましたが、無事100点取ることができました!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273072/efe28e9e-4e59-4e24-3f26-7cd81f80797d.png)

解き方は、Pythonのcombinationsライブラリを活用して、配列の中にある数字3組で組み合わせを作成し、後は配列ごとに加算して7で割れるかどうか判定するだけです。

うーん…もっと最適化できる気がする…

元記事を表示

WindowsでのPythonスクリプト実行時のUTF-8問題と解決策

## 問題の根本

WindowsでのPythonスクリプト実行時、システムのデフォルトエンコーディング(多くの場合Shift-JIS)とUTF-8で書かれたスクリプトとの間で不一致が発生し、文字化けや実行エラーを引き起こします。

## 解決策:UTF-8 Mode (PEP 540)

Python 3.7で導入されたUTF-8 Modeは、この問題に対する主要な解決策です。

### 主な特徴

1. Pythonのデフォルトエンコーディングをシステム設定に関わらずUTF-8に設定
2. ファイルシステムエンコーディングは変更されない
3. 新しく開かれるファイルのデフォルトエンコーディングがUTF-8になる

### 有効化方法

– 環境変数 `PYTHONUTF8=1` を設定
– コマンドライン引数 `-X utf8` を使用

## 影響

1. Pythonスクリプトファイル(.py): すべてUTF-8として読み込まれる
2. コンパイル済みライブラリ(.pyc, .pyd, .so): UTF-8 Modeの影響を受けない
3. 外部ファイルの読み書き: 明示的な

元記事を表示

二次元〜多次元正規分布データの生成

昔,以下のような関数を作りました。
2次元正規分布から,k次元正規分布までに対応しています。
指定した相関係数の通りのデータを作ります。

## 指定された相関係数行列を持つ変数の生成

特定の相関係数行列を持つ多変量データを生成する。

“`python
import numpy as np
from scipy.linalg import eigvals, inv, svd, cholesky
from scipy.stats import zscore

def gendat(n, r):
#
#
def trimat(x):
l = len(x)
n = int((np.sqrt(1 + 8 * l) + 1) / 2)
if l != n * (n – 1) / 2:
raise Exception(“length of vector is not just required”)
r = np.tri(n, n, -1)
r[r ==

元記事を表示

【クソ問題】みなさんはこんな問題が出たらどうしますか?

## この記事で紹介するオリジナル問題

### 問題文
0以上100000以下の**有理数**、`a`、`b`、`c`が与えられます。`a+b=c`になる場合は`Yes`を、そうでなかったら`No`を出力しなさい。

### 入力
“`
a b c
“`

## WAのコード

“`python
a, b, c = map(float, input().split()) # a,b,cという変数に半角区切りで入力をfloat型で受け取る
if a + b == c:
print(“Yes”) # もしa+b=cだったらYesと出力
else:
print(“No”) # もしそうでなかったらNoと出力
“`

一見あってそうに見えますよね。何が違うのでしょうか?

## 解説と理由

### WAになるサンプルケース

次のような入力を考えてみましょう。

“`
0.1 0.2 0.3
“`

この入力で先ほどのコードを実行してみてください。すると、不思議なことに、

“`
No
“`

と返ってきますよね?

ここで「まさか」と思う人も多いはずです

元記事を表示

Visual Studio Code 覚えてほしいショートカット

# はじめに
こちらは初心者向けです。
一気に全部覚えようとするのではなく、3個ずつ意識していくことが覚えるコツです!

# 1. 覚えておきたいショートカット一覧
#### 必須(全員覚えるべき)
| 名称 | ショートカット | 説明 |
|:—|:—|:—|
| コメントの切り替え | “`Ctrl + /“` | コメントアウトの切り替えが可能 |
| デバッグの実行 | “`F5“` | プログラムの実行・デバッグ |
| ターミナルを表示(非表示) | “`Ctrl + @“` | ターミナルの表示・非表示を切り替えが可能 |
| 新しいターミナル | “`Ctrl + Shift + @“` | 新しいターミナルを開く |
| ドキュメントのフォーマット | “`Alt + Shift + F“` | コードのインデント(段落)をきれいに整えてくれます。
※ HTML/CSS 〇 Python ×(フォーマッタの追加が必要) |

#### 推奨(エンジニアになる人は覚えるべき)
| 名称 | ショートカット | 説明 |
|:–

元記事を表示

(Pythonista対応)Pythonでクリップボード内の文字を箇条書きに変換する

# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。

# はじめに
このコードは**Python3**に対応したクリップボード内の文字を

1. 箇条書きに変換する
1. 箇条書きが数字のものを特定の頭文字に変換する
1. 箇条書きそのものを削除する

といったことをするためのものです。

# このコードの目的
こういう操作は基本的にはエディターでできる機能ではありますが、クリップボード内を自動検知して再出力できたら、エディターを使用中に新規ウィンドウを開いたりといった一手間が減らせれば良いと思い作成しました。

# 本コードを実行するとどうなるか
本コードを実行すると、変数「mode」の内容が

“`zsh:mode = ‘NUM’の場合:
箇条書き
  ↓
1. 箇条書き
“`

“`zsh:mode = ‘DEL’の場合:
1. 箇条書き
  ↓
・箇条書き
“`

“`zsh:mode = ‘NONE’の場合:
1. 箇条書き
  ↓
箇条書き
“`
といった出力をします。

# 注意点
1. このコード冒頭に書かれている変数で機能を切り

元記事を表示

Poetry executableってどこ?~PycharmにおけるPoetryの導入について~

# 背景
Pycharmにおいてパッケージの管理を行うのはデフォルトでpipである。
ところが調べたところによるとpoetryだとパッケージ間の依存関係の問題を解決しやすいため、poetryを導入することを決意した。

# 動作環境
動作環境は下記のとおりである。
OS:windows10
Pycharm Community Edition 2022.3.2

# 課題
[Pycharm公式ドキュメント](https://pleiades.io/help/pycharm/poetry.html)に従ってpoetryを導入した。
途中まで順調だったが”Poetry環境を作成する”の
>Python インタープリターの追加ダイアログの左側のペインで Poetry 環境を選択します。

で躓いてしまった。
具体的には、リンク先の画像を見てもらうと分かるだろうが、Poetry executableにどこのPathを指定するのかがわからなかった。

# 解決方法
[Pycharm公式コミュニティの掲示板](https://intellij-support.jetbrains.com/hc/en-

元記事を表示

Ansible 2.17.2→2.16.3にダウングレードする方法

# 1. 結論
“`shell_session
$ pipx uninstall ansible
$ pipx uninstall ansible-core
$ pipx install “ansible-core=2.16.3”
$ pipx install ansible
“`

# 2. 前提条件
* pipxを導入済みであること

(参考:[pipx install pipx](https://zenn.dev/speg03/articles/ba73af845e029a))

# 3. 背景
`ansible.builtin.dnf` を実行すると以下エラーが発生した。

“`
The full traceback is:
Traceback (most recent call last):
File ““, line 12, in
File ““, line 971, in _find_and_load
File “

元記事を表示

MaxScriptからPythonを呼び出す

自分へのメモも兼ねて、Qitaに記事を投稿します。

今回は、MaxScriptからPytyonを呼び出す方法にはまったので記事を書いてきます。

# 検証環境

3DS Max 2024

# MaxScriptとは

MAXScript は、3ds Max のビルトイン スクリプト言語です。
詳しくは[こちら](https://help.autodesk.com/view/3DSMAX/2025/JPN/?guid=GUID-FE40F021-5444-4709-BF08-DF1F1F0960C3)をご参照ください

# やりたかった事

やりたかった事としては、MaxScriptからPythonを呼び出すという事になります。
順を追って説明して行きます。

1. **『MaxScript』スクリプトと『Python』スクリプトは独立しており、それぞれ違う目的で作られたものである**
1. **『MaxScript』スクリプトは、機能が固まったツールとなっている**
1. **『Python』スクリプトは、追加で付ける機能が別途Pythonで作成されてしまった形となっている**

元記事を表示

ImportError: cannot import name ‘ops’ from ‘keras’の原因を予想しながら解決した話

# はじめに
Tensorflowを用いて機械学習環境を構築していた際、下記エラーに遭遇しました。
“`
ImportError: cannot import name ‘ops’ from ‘keras’ (/usr/local/lib/python3.10/dist-packages/keras/__init__.py)
“`

Stackoverflowではkerasのバージョンを上げれば解決するとありましたが、kerasとtensorflowのバージョンを上げたくなく対応策を模索しました。
https://stackoverflow.com/questions/78010704/cannot-import-name-ops-from-keras

エラーから原因を予想しつつ、色々と対応考えることで何とか解決できたので、参考になればと思い、記事にしました。

# 環境
エラーが出た環境は以下の通り
* Windows 11 Pro
* Docker Engine v20.10.21
* Python 3.10.12
* tensorflow 2.14.1
* keras 2.

元記事を表示

十億連勝 (paizaランク S 相当)を考察する

# 十億連勝 (paizaランク S 相当)を考察する

**paiza×Qiitaコラボキャンペーン** ということで
[**十億連勝 (paizaランク S 相当)**](https://paiza.jp/works/mondai/real_event/continuous_winning)
を題材に、アルゴリズムの改善について考察してみたいと思います。

## まずは問題文通りに実装する

この問題のように組み合わせに対する処理を行う場合は、大きく2通りあるかと思います。

1. 再帰処理を行う
再帰処理を行う場合一般的には深さ優先探索となります。

2. ループで行う
一般的には幅優先探索となります。

説明だけだとわかりづらいので、まずは問題文通りのアルゴリズムをそれぞれの方法でC言語で実装してみます。

既に動くものからチューニングを行っていくと、正解がわかっている状態でチューニングができるのでデグレードを起こしにくくなります。デバッグも入れて処理の流れも見られるようにしておきます。

(ただし入力が大きいデータの場合、このバージョンでは動作しないの

元記事を表示

【Python】クラスのイニシャライザとメソッドの定義順について

# 概要
– Pythonのクラスにおいて、イニシャライザ(`__init__`)とメソッド定義の順番はどうであるか
# 結論
– メソッド定義が**先**、イニシャライザが**後**
# テスト環境
– Python 3.10.12
– Ubuntu 22.04.4 LTS (WSL2)
# テストコード
“`python
class TestClass():
def __init__(self, arg_func):
self.func = arg_func // self.funcに引数を代入
def __call__(self):
self.func()
def func(self): // メソッドを定義
print(“method func called”)

def f():
print(“arg func called”)

test = TestClass(f)
test()

/*
— 実行結果 —
arg func called
*/
“`

元記事を表示

ImportError: libGL.so.1: cannot open shared object file: No such file or directoryへの対処法

# 環境
ubuntu 22.04
jupyter notebookで実行

# やったこと

~~~
!apt update
!apt install libgl1-mesa-glx
~~~

# 結果

libGL.so.1 がインストールされ、エラーが解消された。

元記事を表示

paizaのスキルチェック見本問題を解いてみた

# はじめに
paizaのスキルチェック見本問題を解きました

## 問題
>野球の各打者はストライクが 3 つたまるとアウトとなり、ボールが 4 つたまるとフォアボールとなります。
アウトあるいはフォアボールになると、この打者の番は終了します。
>
>あなたはストライクとボールを判定してコールする審判です。
その場の状況に合わせて適切なコールを出しましょう。
>
>【コール一覧】
ストライクが 1 〜 2 つたまったとき → “strike!”
ストライクが 3 つたまったとき → “out!”
ボールが 1 〜 3 つたまったとき → “ball!”
ボールが 4 つたまったとき → “fourball!”
>

>ある打者の番における投球の結果 (ストライクまたはボール) が与えられるので、各投球に対してどのようなコールをすればよいかを出力してください。
>なお、実際の野球にあっても上記にないルール (ヒット、ファウルなど) については考慮する必要はありません。

>1 球目: ボール → “ball!”
>2 球目: ストライク → “strike!”
>3 球目: ボール

元記事を表示

【Python】超個人的Pythonことはじめ

実務経験あったものの、基礎がゆるゆるだったため、Python学習始めました。
学習のメモをつらつらと。

# 文法系

## 型ヒント

### 引数、戻り値の型を指定する場合
“`ruby
# 引数と戻り値にstr型を指定
def func(title: str) -> str:
return title

# 戻り値がない場合
def func(title: str) -> None:
print(f”このタイトルは、{title}です”)

“`

### 特定の「値」のみを許可する場合
“`ruby
from typing import Literal
TYPE = Literal[‘txt’, ‘html’]
“`

なお、型ヒントはあくまでヒントのため、異なる型を代入してもエラーにはならない。

## リスト内包表記

基本構文: `変数を使った処理 for 変数 in イテラブルオブジェクト`

if文を含む構文: `変数を使った処理 for 変数 in イテラブルオブジェクト if 条件式`

“`ruby: test.py
# 基本形
nu

元記事を表示

yfinanceでエラー発生

株価の取得を毎週行っていたところエラーが発生。
バージョンは「0.2.41」。
どうやら色々バグがある模様だったのでgoogle colabにて直前バージョンの「0.2.40」を指定してインストールしたところ従前どおりの動作が確認できました。
pandas_datareaderと相性が悪い?

元記事を表示

Workato:Pythonコネクタで任意のモジュールをインストールして利用する

# はじめに

WorkatoのPythonコネクタは、基本的には用意されたモジュールのみの利用が可能ですが、自分が使いたいモジュールが用意されていない場合もあると思います。そのような場合は、pipモジュールを利用することで、任意のモジュールをインストールして利用することが可能です。

なお、Pythonコネクタは /tmp 以下のみ書き込み可能なため、モジュールのインストール先も /tmp とする必要があります。また、モジュールのインストールはコード上で行い、インストールしたモジュールをコード上で動的にインポートして利用する形となります。

# コード

以下は、boto3(AWS SDK for Python)モジュールをインストールする例になります。boto3をインストールすることで、Pythonコネクタ上から簡単にAWSのリソースがAPI操作できるようになります。

なお、Workatoのレシピの作成手順および設定方法については、ここでは割愛します。
(Pythonコネクタについてある程度習熟していることを前提とします)

“`python
import pip
import

元記事を表示

Workato:Pythonコネクタで /tmp を活用してみる

# はじめに

WorkatoのPythonコネクタでは一時ディレクトリ(/tmp)が利用できないと思っていましたが、検証を進めたところ利用できることがわかりました。

Workatoのコネクタのアクションはそれぞれが独立したコンテナであり、かつエフェメラルなコンテナ(実行後に削除される、揮発性のコンテナ)で実行されるため、アクションを跨いで /tmp の保存内容を共有することはできないのと、実行時間の制限(30秒)に注意する必要はありますが、ちょっとした処理で便利に活用することはできるかと思います。

# 利用例
## 容量の大きなファイルや複数のファイルを処理する

容量の大きなファイルをPythonコネクタのrequestモジュールを利用して直接ダウンロードして取得したり、base64エンコードされたファイルを変数で渡して /tmp へ展開することで、Python3コネクタ上で容量の大きなファイルや複数のファイルを処理することができます。

### 例:URL指定でファイルをダウンロードし/tmpへ保存する

以下の通り Input fieldsおよびOutput fieldsを

元記事を表示

Python3: 文字列収集 (paizaランク S 相当)やってみた

https://paiza.jp/works/mondai/real_event/word_collection
“`py:
N, M = map(int, input().split())

MARKET = [(lambda item, price: (item, int(price))
)(*input().split())
for _ in range(N)
]
WANTEDS = [input() for _ in range(M)]

for w in WANTEDS:
print(
sum(price for item, price in MARKET
if item.startswith(w)
)
)
“`
市場のものと欲しいものをそれぞれ読み込み、欲しいもの毎にそれで始まる文字列の値段を集計する。
これだとタイムアウトしそうだが、結構余裕でクリアーだったのだが?

解答例を見ると、入力をうけとった時点

元記事を表示

OTHERカテゴリの最新記事