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

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

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系は表示バグの致命的欠陥があります。

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

ターミナルに

元記事を表示

Pythonで日本の新型コロナ患者情報取得

#環境
`Win10`
`Python 3.8.10`
・`requests==2.25.1`
・`pandas==1.3.1`

#実装
“`py
import requests as rq
import pandas as pd

url = ‘https://covid19-japan-web-api.vercel.app/api/v1/positives?prefecture={0}’

prefectures = [‘北海道’,’青森県’,’岩手県’,’宮城県’,’秋田県’,’山形県’,’福島県’,’茨城県’,’栃木県’,’群馬県’,’埼玉県’,’千葉県’,’東京都’,’神奈川県’,’新潟県’,’富山県’,’石川県’,’福井県’,’山梨県’,’長野県’,’岐阜県’,’静岡県’,’愛知県’,’三重県’,’滋賀県’,’京都府’,’大阪府’,’兵庫県’,’奈良県’,’和歌山県’,’鳥取県’,’島根県’,’岡山県’,’広島県’,’山口県’,’徳島県’,’香川県’,’愛媛県’,’高知県’,’福岡県’,’佐賀県’,’長崎県’,’熊本県’,’大分県’,’宮崎県’,’鹿児島県’,’沖縄県’

元記事を表示

VSCodeでコードユニペット(Python)を登録する – 備忘録

#目的
Pythonのプログラムを書く際にお約束の文言を毎回入力するの面倒なので,コードユニペットに登録してしまおうというヤツ
##こんな感じに
『shebang』って打とうとすると...
![スクリーンショット 2022-01-18 16.17.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2430126/c15745e2-306b-91cd-f91e-7105064c9492.png)
予測候補が表示されて
![スクリーンショット 2022-01-18 16.18.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2430126/41be681c-9fa1-ed4e-483e-8a2b358f5d81.png)
シバンが入力される
同様に『main』って打とうとすると...
![スクリーンショット 2022-01-18 16.20.05.png](https://qiita-image-store.s3.ap

元記事を表示

asyncio アプリ内から Slack にメッセージを投稿しよう

「[Python で Slack API や Webhook を扱うなら公式 SDK(slack-sdk/slack-bolt)を使おう](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)」シリーズの記事です。公式 SDK についての概要、他にも記事がリンクされていますので、[こちらのエントリーページ](https://qiita.com/seratch/items/8f93fd0bf815b0b1d557)にもアクセスしてみてください。

## Slack 公式 SDK の asyncio サポート

このページに辿り着いたということは [asyncio](https://docs.python.org/3/library/asyncio.html) を活用してアプリケーション開発をされていますか?

Slack 公式 SDK である [slack-sdk](https://pypi.org/project/slack-sdk/) は [AIOHTTP](https://docs.aiohttp.org/en/stable/c

元記事を表示

【Python、Ruby】約数と総和

#はじめに
元々Rubyを中心に、学んでいましたが、Rubyで書く内容を他の言語であればどのように書くのか?とふと思い、Pythonに興味があったため、勉強をしてみようと思いました。
そんな中で、
##### AIZU ONLINE JUDGE
というサイトを知り、ちょうど良いトレーニングになりそうだと思ったので、少しずつ挑戦してみることにしました。
本当は、アプリ等をどんどん作成したほうがトレーニングになるのかなと思いつつ、基礎の部分として損はないだろうと思い、やり始めています。

##3-D 約数の数

######3つの整数 a、b、cを読み込み、aからbまでの整数の中に、 cの約数がいくつあるかを求めるプログラムを作成してください。

######Input
a、b、cが1つの空白区切りで1行に与えられます。

######Output
約数の数を1行に出力してください。

######例
a=1 , b=10 ,c=30のとき、
約数の数は6つ

####解答
“`ruby:3-D.rb
# 回数を調べる
a,b,c = gets.split(” “).map(&:to_

元記事を表示

フォームを作ったつもりなのにUnknown field(s) (yyy) specified for XXXが出てしまった時の対処法

## 概説

Modelをうまく使えるよう、特定のフィールドをFormコントロールにしようとして`django.core.exceptions.FieldError: Unknown field(s) (yyy) specified for XXX`が出てしまった時は、XXXのフィールドに対して、Formコントロールで扱っているfield名yyyが存在しているか確認し、どちらか一方に合わせると良いです。

## 環境

環境は以下の通りです。

| 名称 | バージョン |
|:-:|:-:|
| macOS | Monterey(12.1) |
|django|4.0.1|
| Python | 3.8.9 |
| brew | 3.3.10 |
| pip | 21.3.1 |
| psycopg2-binary | 2.9.3 |
|PostgreSQL|14.1|

## 対処法

`models.py`で定義したフィールド名と、`forms.py`で使っているフィールド名が一致(または存在)しているか確認し、一致(または存在)していない場合は書き換えてFormとM

元記事を表示

pkを設定しているはずなのに何故かAttributeError at /XXX/<値>/が出てしまう時の対処法

## 概説

pk(id)は渡っているはずなのになぜか`AttributeError at /XXX/<値>/`が出てしまう時は
views.pyの`pk_url_kwarg`とurls.pyのパス間で整合性が取れていないことが原因です。

## 環境

環境は以下の通りです。

| 名称 | バージョン |
|:-:|:-:|
| macOS | Monterey(12.1) |
|django|4.0.1|
| Python | 3.8.9 |
| brew | 3.3.10 |
| pip | 21.3.1 |
| psycopg2-binary | 2.9.3 |
|PostgreSQL|14.1|

## 起きている問題

idはきちんと受け渡して、URLは通っているはずなのに開けずエラーとなってしまいます。
`AttributeError at /XXX/<値>/`
例外を確認すると`Generic detail view XXXView must be called with either an object pk or a slug in the URLco

元記事を表示

AtCoder Beginners Selection 11問をpythonで解いてみた

AtCoderの初心者向け問題集である [AtCoder Beginners Selection](https://atcoder.jp/contests/abs/tasks) の11問をPythonで解説します。

# [Welcome to AtCoder](https://atcoder.jp/contests/abs/tasks/practice_1)
“`python:PracticeA
a = int(input())
b, c = map(int, input().split())
s = input()
print(a+b+c, s)
“`
【解説】簡単な入力の問題です。入力はinput関数を用いて行います。
aは後に計算するためint関数で囲み、整数値として入力を受け取ります。
b,cは空白区切りで入力されるため、map関数を使用します。第二引数に設定されたinput().split()で空白区切りの文字列を受け取り、第一引数に設定されたint関数で整数値に変換、b,cに設定します。
sは文字列として受け取るので、input関数のみです。表示にはprint関数を使

元記事を表示

OTHERカテゴリの最新記事