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

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

Jupyterで特定のセルの入力と出力を参照する小ネタ

Jupyterで特定のセルの入力値や出力値を別のセルから参照する際の短いライトな小ネタです。

# 使うもの

– Python 3.9.0
– Jupyter (notebook==6.4.7)

※本記事ではVS Code上のJupyterを使っていきますが普通のJupyter notebookやJupyterLabなどでも動作すると思われます。

# 直前のセルの出力値を取得する

アンダースコアの記号(`_`)を特定のセルで実行すると、直前に実行したセルの出力(notebookであれば`Out [n]:`といった表示になっている部分)を取ることができます。

“`py:セル1
x: int = 10 + 20
x
“`

“`
30
“`

“`py:セル2
y: int = x + 30
y
“`

“`
60
“`

“`py:セル3
_
“`

“`
60
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228778/877a8116-9502

元記事を表示

Django Import xxx could not be resolved from source エラーの解決方法

## 事象
プロジェクト作成、startappコマンド後、以下のエラーが発生した。
ようするに”django”関係がすべて読み込めていない。
“`Import “django.contrib” could not be resolved from source
Import “django.apps” could not be resolved from source
Import “django.db” could not be resolved from source
Import “django.shortcuts” could not be resolved from source“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515586/2ae23339-e439-ef0b-08ce-535f5bf29042.png)

## 環境
Windows 10
Python 3.10.2
Django 4.0.1
venv利用あり

## 対処方法
Pythonの補完には

元記事を表示

VSCode insiders venv activate時の「このシステムではスクリプトの実行が無効になっているため~」 エラーの解決

## 事象
PCを新調したのでPython開発環境を構築しようとvenv activate を実行しようとしたところ、
「このシステムではスクリプトの実行が無効になっているため、ファイル xxx .venv\Scripts\Activate.ps1 を読み込むことができません。」という
エラーになったので対処法を記載
別のPCではならなかったので調べるに至った

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515586/dfb9afee-c6df-612c-97a7-fdc93df7723b.png)

## 環境
Windows 10
Visual Studio Code insiders 1.64.0
(Visual Studio Codeでも同じだと思う)
Python 3.10.2

## 対処
Visual Studio Code insiders(以降、VSCode)の表示→コマンドパレットを押下し出てきた入力欄に「settings」と入力
![image.png](ht

元記事を表示

VSCode Python importエラー 上の階層の自作モジュールをインポートしたい

# 環境
windows 10
pyenv-win
python 3.9.6

# ue_no_direcotryはどこ? (Pythonの気持ち)

importは`sys.path`上に存在するパスから`相対パス`で目的のモジュールを探索するため、`sys.pathに存在しないパス(パスが通っていない)`自作モジュールなどではで`上の階層(ue_no_direcotry:この記事のヒロインの居場所)`を探索することができない。
標準モジュールやサードパーティーモジュールがどこからでもインポートできるというのは、それらのモジュールが`sys.pathの下の階層`にインストールされているからである。

そうなんです、`sys.pathの下の階層`にあるモジュールならどこからでもインポートできるということなのです!当たり前のようなことですが、重要なことなので2回繰り返しました。ここでつまずいている人はこのことが理解できていないのだと思います。

“`python:ルートのパスで実行すると
import sys
print(sys.path)
“`

“`:sys.pathの実行結果

元記事を表示

[pyinstaller] or [py2exe] でpyファイルをEXE化 (2022-01-22)

前回、Windows10環境に、Python3をインストールしたので、今回は、exe化をやってみました。

前回の記事:

https://qiita.com/fix/items/cc31deda5daf0309d9f4

# pyinstaller をインストール

![イメージ7598.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/56646e80-1117-ef57-5c0a-dc363a90de47.jpeg)

# exe化テスト

シンプルにprint文のみでとりあえずやってみます。

“`python:Hello-Python.py
# -*- coding: utf-8 -*-
import sys
print(“Hello,Python!”)
“`

一応、実行確認

![イメージ7600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/771448b7-e974

元記事を表示

kivyMDチュートリアル其の肆什伍 Behaviors – Hover篇

ハロー、Qiita!いかがお過ごしでしょうか。

はい、というわけで間もなく1月も終わりに近づいていますが、お元気に過ごして
いますでしょうか。何よりこの季節は寒いでございますね。外に出るのが億劫に
なるくらいで。まぁ緊急事態宣言も出そうな雰囲気で、出なくともステイホーム
が余儀なくされそうです。

さて、本題に移りますが今日からはKivyMDのBehaviors章に戻っていきます。
以前どこまでやったっけなという思いに駆られていますが、確認してみると以前
はFocus篇をやっていました。ということで、今日はタイトルの通りで続きのHo-
ver篇となります。それではさっそくやっていくこととします。

あ、それでは、レッツラゴ。(わざわざ言うまでもない)

## Hover

冒頭には比較的大文字で説明が書かれています。

> Changing when the mouse is on the widget and the widget is visible.

読んで字の通りということになるでしょうか。と言っても良くみるとChangeig-
when the mouseあたりなんかは一

元記事を表示

Python リストを連番で辞書に格納する

“`:python
values = [‘itou’,
‘kuroda’,
‘yamagata’,
‘matukata’,
‘ito’,
‘matukata’,
‘ito’,
‘ohkuma’,
‘yamagata’]

dic = {}
dic.update(enumerate(values))
“`
“`
{0: ‘itou’,
1: ‘kuroda’,
2: ‘yamagata’,
3: ‘matukata’,
4: ‘ito’,
5: ‘matukata’,
6: ‘ito’,
7: ‘ohkuma’,
8: ‘yamagata’}
“`

元記事を表示

Python3をWindows10[64bit]へインストール [2022/01/22]

Windows10環境に、Pythonをインストールしてなかったのでメモも兼ねて記事にしてみます。

過去ログで、同様の記事がありますが、古くなってるので2022年度版ということでやってみます。

https://qiita.com/ssbb/items/b55ca899e0d5ce6ce963

#環境

・Windows10[64bit] 21H2

・Python 3.10.2

#Python 3.10.2 インストール

以前は、32bit版を入れないと動かなかった記憶があるのですが、現在は、64bitでも動くようです。

以下のリンクからダウンロードすると、自動的に64bit版が入るようです。

![イメージ75851.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503948/5a01a358-a8bb-f29b-10f1-f9b13263c593.jpeg)

[add Python 3.10 to Path] にチェックを入れて、[install NOW]

![イメージ75

元記事を表示

週末研究ノート ー (Easy!) Monty Hall Problem Simulation

# はじめに ー 週末研究ノートとは?

個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。(有識者の方のアドバイスも、ちょっとというかかなり期待してます!笑)

どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。

# 今回のサマリ (TL; DR)

今回は、閑話休題?!

ひさしぶりに「[モンティ・ホール問題](https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%BB%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C#%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB)」に出会ったので、選択肢を変えた場合の確率をシミュレーションしてみました

元記事を表示

3重対角行列の固有値を二分法で求めよう

二分法で遊んでいると、二分法で3重行列の固有値が計算できると知り、これは面白いと思いまとめてみました。この方法はランチョス法と組み合わせて、大規模疎行列の固有値問題を解くときに使うようです。
初投稿なので、至らない箇所があるかと思いますが、ご指摘いただけると幸いです。

#3重対角行列
3重対角行列行列というのは以下のように対角成分とその両脇のみ非ゼロの値を持つ行列のことです。

“`math
M = \begin{pmatrix}
a_1 & b_1 & 0 & \cdots & 0 \\
b_1 & a_2 & b_2 & \cdots & 0 \\
0 & b_2 & a_3 & \cdots & 0\\
\vdots & \vdots & & \ddots & \vdots \\
0 & \cdots & b_{n-2} & a_{n-1} & b_{n-1}\\
0 & \cdots & 0 & b_{n-1} & a_{n}
\end{pmatrix}
“`
一般に3重対角行列の非対角成分は必ずしも対称とは限りませんが、ここでは対称な場合に限って扱います。
すると

元記事を表示

Python3でpip install uuidしてはいけない件

表題の件、正確に言えばPython2.5以降からですが、
uuidは標準ライブラリとしてバンドルされています。

なのでpip install uuidしてしまうと、

“`
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/pip/_internal/req/req_install.py”, line 9, in
import uuid
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/uuid.py”, line 138
if not 0 <= time_low < 1<<32L: ``` このようなエラーになります。 どうやらこれは2.5以降に標準ライブラリに含まれているモジュールのバックポートのようです。 ##もしインストールしてしまった場合 ``` $ pip uninstall uuid ``` するか、 もしできなければ、ここでいうsite-package

元記事を表示

pythonで処理時間を計測する。

実行時間についていつか使いそうなので、メモとして残しておきます。

https://www.delftstack.com/ja/howto/python/python-elapsed-time/

https://hibiki-press.tech/python/time-perf-counter/4595

#code
perf_counterを使うのがよさそう。真面目に必要になったときに検討します。

“`meas.py
import time

def start_time ():
start = time.perf_counter()
  return start

def end_time (start):
end = time.perf_counter()
result = end – start
print (‘test time:’,'{:.3f}’.format(result))

turn_on_time = start_time()
#プログラム処理中
end_time(turn_on_time)

“`

元記事を表示

AOJトライに関する知識知見の記録共有:Volume0-0064

# タスク概要

Secret Number

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0064

# コード実装例
TIPS

1. 例外処理含む評価パターンを追加

“`Python
import pprint, sys, time, re

def core(arg, adv=True):
if adv:
s = “”
for ch in arg:
if ch.isdigit():
s = s + ch
else:
s = s + ” ”
else:
s = re.sub(r'[^0-9]’, ‘ ‘, arg)

l = [int(v) for v in s.split(” “) if v != “”]
return [sum(l), l]

def app(*args):
ret = []

元記事を表示

Python3: Paramiko の使い方 (ssh 接続)

Python で ssh 接続をする方法です。

“`py:ssh_exec.py
#! /usr/bin/python
#
# ssh_exec.py
#
# Jan/20/2022
# ——————————————————————
import os
import sys
import paramiko
from dotenv import load_dotenv
# ——————————————————————
dotenv_path = ‘.env’
load_dotenv(dotenv_path)
HOST = os.environ.get(“HOST”)
USER = os.environ.get(“USER”)
COMMAND = os.environ.get(“COMMAND”)
#
sys.stderr.write(“*** start ***\n”)
client = paramik

元記事を表示

Pythonで対話式CLIツールを作る

PythonでこんなCLIツールが実装できる
![questionary.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154711/039f6dc1-7099-86a4-9c01-5ccf14af764b.gif)

上記のスクリプトはこちら
(`questionary==1.10.0`を使用)

“`python
import questionary

name = questionary.text(‘Name?’).ask()
age = int(questionary.text(‘Age?’).ask())
sex = questionary.select(
‘Sex?’,
choices=[“Male”, “Female”]
).ask()
if sex == “Male”:
print(f”Hello {name}! {age} years old gentleman!”)
else:
print(f”Hello {name}! {age} years ol

元記事を表示

Pandasのgroupbyで日付の順序がおかしくなる問題を解決する。

#結論

作成したDataFrameの日付のフォーマットや型に問題がある!

**→ 日付のフォーマットは、1/1は01/01の様に記述するなど統一されているか?**
**→ 日付のデータの型は、to_datetime関数を使うなどして日付の型になっているか?**

#DataFrameを作成し、groupbyのsumで日付別の合計値を求める。(ダメな例)

下記の様な日付ごとに果物をいくつ買ったかというDataFrameがあるとする。

“`python:
import pandas as pd

df = pd.DataFrame({‘Date’: [‘2022/9/1’, ‘2022/9/1’, ‘2022/9/12’, ‘2022/9/12′,’2022/10/20’, ‘2022/10/20’, ‘2022/11/27’, ‘2022/12/31’],
‘Fruit’: [‘Apple’, ‘Banana’, ‘Apple’, ‘Orange’, ‘Grape’, ‘Apple’, ‘Grape’, ‘Orange’],

元記事を表示

pipとは〜スクレイピングでライブラリインストール際に登場し疑問だったので調べてみました〜

# はじめに
昨年の年度末ごろからpythonの学習を始め、
その中スクレイピングで使用する際や仮想環境構築する際に出てきた「pip」

忘れないようにメモベースでまとめています。
詳細は参考URLを見てください!

参考URL

https://prograshi.com/language/python/python-pip/

#pipとは

>URLより引用

>pipとはpython公式のパッケージ管理システムです。
インストールしたpythonの中に入っています。
Pip Installs Packages(またはPython)の略です。ピップと読みます。
pythonに公式に登録されたパッケージのインストールやアンインストールが出来ます。
<補足>
pythonのパッケージはPyPIで管理されています。
 └ Python Package Indexの略
 └ 呼び名:パイパイ
 └ 公式ページ:https://pypi.org/
コマンドでPyPIにアクセスし、ファイルをインストールしたりするのがpipです。

イメージとしてはLinuxでいうrpmコマンドみたいな感じ

元記事を表示

【Python3】abcモジュールで抽象クラスを実装する

## はじめに

Pythonの標準モジュールである“`abc“`(abstract base class)を使うと抽象クラスを利用することができます。

## 環境
– Ubuntu20.04
– Python3.8.10

## 使い方

### 抽象クラスを定義

“`python:animal.py

# 1. モジュールをインポート
from abc import ABC, abstractmethod

# 2. ABCクラスを継承
class Animal(ABC):

# 3. デコレータで抽象メソッドであることを宣言
@abstractmethod
def cry(self):
pass
“`

まずは冒頭でabcモジュールからABCクラス・abstractmethodデコレータをインポートします。

クラスの定義時にABCクラスを継承することで抽象クラスとして定義できます。

“`
class Animal(ABC):
“`

以下のような書き方も可能です。

“`
class Animal(metac

元記事を表示

社内Windows環境で VS CODEのPythonが実行できなくて困った話。

# 社内環境のWindows版 VS CODEでPythonが実行できない

そういう時には以下を実行してみると幸せになれるかもしれません。

## 問題となる症状

対象となるエラーメッセージはこれ↓

:::note alert
ターミナル プロセスが起動に失敗しました: A native exception occurred during launch (Cannot launch conpty)
:::

## 解決策

1. ファイル」の「ユーザー設定」の「設定」を開いてください。
2. 上の検索部分に[conpty]と入力して検索の実行
3. 表示されている `Terminal > Integrated: Windows Enable Conpty` のチェックボックスをオフしてください。

## 解説

社内Windows環境では、時にWindowsのバージョンを固定していることがあります。
上記の設定は、疑似コンソールにConptyと使用するか、Winpty(conptyの旧バージョンだと思えば、当たらずとも遠からず)を使用するかの選択をする設定部分です。

もし

元記事を表示

MacでTkinterを使ったGUI作成時の注意事項

#環境

– MacOS 12.1
– Python 3.10.0

#TkinterでGUI作るぞ!!!

エラーは出ないのにGUIの画面真っ黒やん。
ボタンも文字も何も出てこない。。。

あかん。 何やっても解決しないぞ、これ
と思って、別のライブラリを使って動かしたところ

>You are running a VERY old version of tkinter 8.5.9.
>You cannot use PNG formatted images for example. Please upgrade to 8.6.x

え?  バージョン古いの??

#実は気づくタイミングがありました。

直そうとしていた時に
Pythonの対話モードでバージョン確認したんですよ。

~~~
>>> tkinter.Tcl().eval(‘info patchlevel’)
‘8.5.9’
~~~
完全に見落としました。 Tcl/tkが入ってて満足してました。 
MacOSでTkinter8.5系は表示バグの致命的欠陥があります。

#よし!! アップデートするか!!

ターミナルに

元記事を表示

OTHERカテゴリの最新記事