Python3関連のことを調べてみた2021年05月13日

Python3関連のことを調べてみた2021年05月13日

Windows10にPythonをインストール

# Windows10にPythonをインストール

Windows10にPythonをインストールしたときの、チェックボックスをメモとして残しておく。

## インストーラをダウンロード
* ダウンロードサイト ([www.python.org](https://www.python.org/))
* ダウンロードサイト上部の”Downloads”をクリック
* “Download Python 3.9.5″をクリック

## Pythonのインストーラを起動
* “このアプリがデバイスに変更を加えることを許可しますか?”は”はい”を押す

### Install Python 3.9.5 (64-bit)
* ☑ “Install launcher for all users (recommended)”
* ☑ “Add Python 3.9 to PATH”
* ☑ “Customize Installation”
* “Next” をクリック

### Optional Features
* ☑ “Documentation”
* ☑ “pip”
* ☑ “tcl/tk

元記事を表示

Django周りの開発環境をインストールする

# はじめに

私はプログラミング歴1年の初心者です。
実務でWebサイトのコーディングを1年間行ってきました。
そろそろシステム開発もできるようになりたいということで
LaravelやReactをこれから勉強していこうと思っております。

# 今回の目的

今回はDjangoの環境構築方法を学んでいこうと思います。
Homebrewを使ってインストールしていきます。
本当は仮想環境を立ててインストールするほうがいいらしいのですが
今回は初めてなのでその部分は端折っていきます。

# 目次

1. Pythonのインストール
2. Djangoのインストール

# 実際にやってみる

## Pythonのインストール

“`terminal
# HomebrewでPythonをインストールする
$ brew search python
$ brew install python3

# PATHの設定
$ echo “export PATH=/usr/local/bin:$PATH” >> ~/.bash_profile
$ source ~/.bash_profile

# pyt

元記事を表示

[python] リスト内包表記内でprintしたい

小技です。
検索してもそれっぽい感じの記事があまり出なかったので投稿。

# 前提
リスト内包表記内で時間のかかる処理を行っているとき、進捗状況を`print`したい!
ということが人によってはあると思います。ないかも。

“`python:print_in_list_test.py
import time
def heavy_function(num):
time.sleep(1) # めちゃんこ時間かかる処理
return “かたつむりが{num}匹”.format(num=num)

def print_in_list_test():
#print() # 進捗状況を出力したいけど、全部やった後かやる前しか出力できない
outputs = [heavy_function(num)
for num in range(1, 10)] # ここでめっちゃ時間かかる…
print(“、”.join(outputs))

print(“処理開始”)
print_in_list_test()
print(“処理終

元記事を表示

[python3] EUC-JPなのにShift-JISの機種依存文字が入っててUTF-8にできなかったときの対策

表題の通りです。
先人が機種依存文字対策に苦心した痕跡がちらりほらり…
※ はしご高とかそういうタイプの機種依存文字はこの記事では扱いません。

# 環境
Windows 10
Python 3.8.5
スクレイピング:requests

# 状況(読まなくても良い)
最近 [seesaawiki](https://wiki.seesaa.jp/) の記事の自サイトへの移植をごそごそとしているのですが。

seesaawikiからスクレイピングでHTMLソースを取得すると、
``
とあって確かに **EUC-JP** のはずなのに、wikiソース内で「**①**」のような **Shift-JIS** の機種依存文字が使えるせいでたまにこれが紛れてくるんです。
で普通に

“`python:
res = requests.get(url)
text = res.html
“`

みたいに結果を取得しようとすると、なにやら`REPLACEMENT CH

元記事を表示

Pythonの文法を学ぶ!

# はじめに

私はプログラミング歴1年の初心者です。
実務でWebサイトのコーディングを1年間行ってきました。
そろそろシステム開発もできるようになりたいということで
LaravelやReactをこれから勉強していこうと思っております。

# 今回の目的

pythonの文法を学ぶこと

# 文法

## pythonの使い方

“`terminal
# ターミナルでインタラクティブモードで使う
$ python
$ exit()
“`

もしくは

>拡張子は「.py」

“`main.py
# 1行のコメントアウト

“””
複数行のコメントアウト
複数行のコメントアウト
“””
“`

## 変数と定数

“`main.py
# 変数
name = “Taro”

# 定数:そういう仕様はないが、大文字にすると定数という慣習
ADMIN = “JIRO”
“`

## 文字列

“`main.py
# 文字列
s = “hello”
html = “””


“””

# 整数値
i =

元記事を表示

Pythonの基本を学ぶ!

# はじめに

私はプログラミング歴1年の初心者です。
実務でWebサイトのコーディングを1年間行ってきました。
そろそろシステム開発もできるようになりたいということで
LaravelやReactをこれから勉強していこうと思っております。

# 今回の目的

pythonの超基本を学ぶこと

# 目次

1. 最初のpythonコマンド
2. print()とコメントアウト
3. 変数
4. input()とend=””
5. int()
6. if elif else
7. import random
8. while break

# 本文

## 最初のpythonコマンド

“`terminal
# pythonファイルを実行
$ python ファイル名.py

# pythonのバージョンを表示
$ python -V
“`

## print()とコメントアウト

“`main.py
# 文字列を表示する
$ print(‘文字列’);

# コメントアウト
#でコメントアウト
“`

## 変数

“`main.py
# 変数への代入
name = ‘Wor

元記事を表示

初心者日記〜じゃんけんプログラムを作る〜

## はじめに

初投稿です。

今年入社した新卒エンジニアです。

今は研修中なのですが、今までアルバイトでもプログラムをしてきたことで、研修でつまづくことがほぼ無くなっています。
そんな時間がもったいないと思い、何か空いている時間で作ろうと思い立った時に、じゃんけんプログラムでも作るかとなったのがきっかけです。

めちゃくちゃ簡単なプログラムですが、備忘録的に何かに残しておきたいと思い、ここに投稿することにしました。

他の方に少しでも力になればと思い、かなり詳しく説明して残しておきたいと思います。

## 目次
次からちゃんと用意します。

## 環境
MacOS
Python 3.9.1

1. ローカルにファイル(janken.py)を用意して、ソースコードをまるまるコピーします。
1. ターミナルを開いて以下のどちらかのコマンドを打てばできると思います。

“`
$ python janken.py
or
$ python3 janken.py
“`

## ソースコード
“`janken.py
import random
import sys

select

元記事を表示

AWS LambdaとPythonでスラッシュコマンドで入力した文字をそのまま返すSlackBotを作成する

# はじめに
SlackBotを作る記事はいくつかあったのですが、記事が少し古かったり、複雑な記事が多かったため、シンプルに`/hoge`で入力した内容をそのまま返すSlackBotを作成します。Slackで匿名質問などをしたいときにも使えます。

# Slackの設定
## Botの設定
[SlackAPIのサイト](https://api.slack.com/apps/)から`Create New App`で新しいBotを作ります。
その後、OAuth&PermissionsのScopesでBot Token Scopesというところがあるので、`chat:write`と`chat:write.public`と`command`をscopeに追加します。

その後`install to Workspace`を選んでWorkspaceにBotをインストールしてください。
インストールした後に出てくるTokenが大事なので保管しておきましょう。![スクリーンショット 2021-05-11 23.09.18.png](https://qiita-image-store.s3.ap-nor

元記事を表示

AtCoder Problems Hard No.71~80解説

#Hard No.71 : C – Linear Approximation
[C – Linear Approximation](https://atcoder.jp/contests/arc100/tasks/arc100_a)
##発想
とりあえず$A_i$を

“`math
A_i’ = A_i-i
“`
に変換します。このとき

“`math
\sum|A_i’-b_{ \ }|
“`
を最小にする$b$は何か考えます。この$b$は中央値になります。$b$が中央値であれば、$b$を少し移動させたときに、増加する$|A_i’-b_{ \ }|$と減少する$|A_i’-b_{ \ }|$の個数が等しくなります。つまり微分が0になるので、$b$が中央値であることがわかります。

##実装
データ数が偶数であるときは中央値はlow, highの2種類出てくるので、そのうち小さいほうを採用します。

“`python
import statistics

N = int(input())
A = list(map(int, input().split()))

Am = []

元記事を表示

Python 3.8.5でpyatsのインストールにエラーになる

# 概要 インストールメモです。
Python 3.8.5でpip install pyats[full」を実行したら次のようなエラーになりました。

“`
ERROR: Could not find a version that satisfies the requirement pyats[full] (from versions: none)
ERROR: No matching distribution found for pyats[full]
“`

# 解決
問題はpipのバージョンが古いからでした。

## 手順:
1. 既存のpipバージョンを確認

pip --version

pip 20.0.2であることを確認
1. pipをアップグレード

pip install -U pip

1. pipのバージョンを再確認

pip --version

pip 21.1.1であることを確認
1. pyatsをインストール

pip install pyats[full]

無事にインストール

以上

元記事を表示

画像処理初心者がOpenCVを使ってみた(1)

この記事は、画像処理エンジニア検定を受験するにあたり、OpenCVを実際に利用して画像処理について学ぶことを目的としています。勉強した内容をメモします。
※画像処理でできることをメインに書いていくので、Pythonや使用する各関数の説明などは省略しています。

使用環境

* windows10
* Anaconda: 1.7.2
* python: 3.7.9
* Jupyter Notebook

# 前提
### 画像処理とは

* 画像はパターンを表す数値(画素値)の集まり

* 0から255で表現する
RGBの3色から成る。


(10, 20, 30)
※順番がR(Red)G(Green)B(Blue)ではないことに注意

| B | G | R |
|:—–|:—–|:—–|
| 10 | 20 | 30 |

* 画像を解析しやすくする、情報を抽出するための処理

### [OpenCV](http://opencv.jp/)とは

* オープンソースの画像処理ライブラリ

* マルチプラットフォーム:windows, mac, linux

*

元記事を表示

pythonでショートカットウィンドウみたいなRPAを作った備忘録(1)

**Pythonのpyautoguiなどのライブラリを使った自作RPAの備忘録。
ライブラリの使い方と実装サンプル。**

**↓↓↓自作RPAのソースコード↓↓↓**
テキストと画像で簡単操作。
ゲームのスキルやアイテムをセットできるショートカットウィンドウをイメージ。
[ソースコード](https://github.com/kayanoke/anata “Git Hub anata”)
動画

元記事を表示

Pythonのフーリエ変換でつまずいた

Python (numpy)を用いて1次元ポテンシャル関数のフーリエ変換を行う際にスケーリングがわからなくなったのでメモ。
# 結論
はじめに結論だけまとめておく。

以下フーリエ変換の定義は

“`math
\tilde V(k) = \int_{-\infty}^\infty V(x)e^{-ikx} dx
“`

である。
$\Delta x$を離散化幅として、ポテンシャル関数$V(x)$が$x_m=m\Delta x\ (m=0,1,\ldots,N-1)$での値$V(x_m)$として得られているとする。
この$V(x_m)$に対してPythonのnumpy.fft.fft関数で離散フーリエ変換を行う。その結果が$\tilde P(k_j)\ (k_j=j\Delta k)$として得られるとき、スケール補正した正しい値は

“`math
\tilde V(k_j) = \Delta x \tilde P(\frac{\Delta x}{2\pi}k_j)
“`

で得られる。

#コード
[過去に同様の問題を取り扱った記事](https://qiita.com/kait

元記事を表示

Python3 エンジニア認定基礎試験に合格した話

#自己紹介

みなさん、はじめまして。
Web開発エンジニアを目指している、インフラエンジニア歴7年目の者です。

初投稿なので、備忘録として資格合格した話を書いていこうと思います。
技術的な深い話はなく、かつ拙い文章になるかと思いますので、ご覧いただいた方は暖かい目で見てください。。

#概要

今回受験した資格試験は、冒頭の通り「Python3 エンジニア認定基礎試験」になります。
Pythonを扱う、またはこれからPythonを使って仕事をしていきたいという方々が目指す初心者向けの資格になるかと思います。

試験の詳細についてはこちらを参照してください。

結論から申しあげると、当方は知識ゼロから合格するまでに1か月程度あれば合格できるレベルでした。
公式のチュートリアルやWeb模擬問題集などの試験対策がすべて無料で活用できるため、経済的にも受験しやすい資格です(ただし受験料だけが11,000円(税込)と微妙に高い。。。)。

そんなかんじで、資格取得した

元記事を表示

li = li.reverse()は間違いです (今日のPython Day10)

#0. はじめに
 今日は思いつかなかったので省略。早速問題を解きましょう!

#1. 問題
 太郎くんは、リストli = [1, 2, 3, 4, 5]を逆順にするために次のようなコードを書いた。しかし実行結果は逆順にならず「None」と出力されてしまった。太郎くんに代わってコードを直そう。

“`python:太郎くんのコード
li = [1, 2, 3, 4, 5]
li = li.reverse()
print(li)

# -> None
“`

#2. 解答例

“`python
li = [1, 2, 3, 4, 5]
li.reverse()
print(li)
“`

#3. 解説
 li.reverse()単体にします。li = li.reverse()としてはいけません。これはappend()など割と初期に習うメソッドも同様です (全てのメソッドがこうとは限らない)。reverse()の戻り値はNoneなので太郎くんのように書いてしまうと左辺のliに逆順した結果ではなくreverse()の戻り値が代入されてしまうのだと思います (違っていたらごめんなさい)

元記事を表示

AtCoder Problems Hard No.61~70解説

#Hard No.61 : C – 次のアルファベット
[C – 次のアルファベット](https://atcoder.jp/contests/code-festival-2016-quala/tasks/codefestival_2016_qualA_c)
##発想
アルファベットに割り当てられているアスキーコードを使うのが良さそうです。アルファベットのアスキーコードは$a$の97から$z$の122まで1ずつ増えていきます。文字列$s$を前から見ていって、その文字を$a$に変えられるか毎回判断していきます。
##実装
アルファベットからアスキーコードへの変換はord()関数、逆向きの変換はchr()関数を使います。
操作は$K$回やり切らなければならないこと、そのとき変える文字は最後の1文字だけで良いことに気をつけます。

“`python
S = list(input())
K = int(input())

ans = ”
#最後の1文字を除いて’a’に変換できるか見ていく
for i in range(len(S)-1):
if S[i] == ‘a’:

元記事を表示

pandasのデータフレームを使用したfor文において脱iterrows()を試みたら実行時間が約70倍高速化した話

## 背景

[pandas](https://pandas.pydata.org/)のデータフレームを使用したfor文で、データフレームを行ごとに取得して…という処理を書いていました。しかし、実現したい内容に大して現実的でない時間がかかってしまうことが判明しました。いろいろ調べたり確認してみると、以下コードに時間がかかってしまっていることがわかりました。

“`py:時間がかかってしまっているコード
for id, row in df.iterrows():
“`

調べてみると`.iterrows()`に時間がかかるようです。とにかく脱`iterrows()`を試みて実行時間を高速化する必要がありました。

その中でリストに変換する方法(`df.values`)がありました。しかし、これは`row`の型が変わってしまい、一筋縄ではいきません。具体的には、`row[‘特定のカラム名’]`と記述できていたものを、`row[1]`などリストのインデックスを使わなければいけなくなります(`1`は`特定のカラム名`に対応するインデックス)。後から見返した時に「この数字何!?あっリストのイ

元記事を表示

pythonのfor文は本当に遅い? (今日のPython Day9)

#0. はじめに
 「Pythonのforループは遅い」とよく(?)言われるそうですが、本当に遅いのか疑問に思いました。もちろん記事を書いている当人が初心者なので複雑なことをしてない(というかできない)だけかもしれません。今回は初心者でもfor文とその処理時間を出力することができる問題を作成しました。最後まで読んでいただけるとありがたいです。

#1. 問題
 1から10,000までの整数を1つずつ出力するプログラムを作成してください。また処理の最後に実行時間を出力するようにしてください。なお実行時間を出力する方法が分からない人はヒントを参考にしてください。

#2. ヒント
 [【Python】処理にかかる時間を計測して表示](https://qiita.com/mitsu4310)という記事が分かりやすくよくまとまっているように感じました。この記事を参考に問題を解いてください。

#3. 解答例

“`python
import time

START_TIME = time.time()
for i in range(1, 100001):
print(i)
i

元記事を表示

Flairで文章中のバイオメディカル関連語を抽出する

## 1. はじめに
機械学習初心者の化学屋が自分用のメモとして書いた記事です。
自然言語処理のためのライブラリFlairで提供されている学習済みモデル”HunFlair”を利用して、文章中の化合物病気微生物遺伝子タンパク質生物種といったバイオメディカル関連の単語を抽出します。

>
実行環境
・python 3.7.1
・flair 0.8.1
・pytorch 1.5.0(flairの動作に torch<1.8.0, >=1.5.0 が必要)
・torchvision 0.6.0

## 2. FlairによるNER(固有表現抽出)
Flairとは自然言語処理用のライブラリで、最新の言語モデルなどを簡単に試すことができます。
Flairは[公式チュートリアル](https://github.com/flairNLP/flair/blob/master/resources/docs/TUTORIAL_1_BASICS.md)が充実しています。文章中の単語へのタグ付け(Taggi

元記事を表示

例題演習matplotlib(3):Axes(軸)の設定

# 例題(3):軸の設定
Axes関連の設定について学ぶ.
基準となるサンプルコードは以下の通り.

“`python:plot03_example1.py
import numpy as np # numpy
import matplotlib.pyplot as plt # matplotlib plt
import matplotlib.ticker as ticker # matplotlib ticker

def main():
”’main program”’

# setting
f_out = ‘graph03_example1.png’ # output file (figure)

# data
x = np.arange(0, 10.1, 0.1)
y1 = np.cos(x)
y2 = np.sin(x)
data = {‘p1’: [x, y1], # data packing
‘p2’: [x, y2]}

元記事を表示

OTHERカテゴリの最新記事