- 1. Pythonのバージョンが2から3に変わらない現象【体験談】
- 2. import thisコマンドでPythonの禅(The Zen of Python)
- 3. ABC192 E Train ~Dijkstraの実装でハマった話~
- 4. 【Python × Excel】OpenpyxlでVlookupをやってみる
- 5. AtCoder Problems Hard No.81~90解説
- 6. Ubuntuでpythonのバージョンを切り換える
- 7. 画像処理初心者がOpenCVを使ってみた(2)
- 8. Windows10にPythonをインストール
- 9. Django周りの開発環境をインストールする
- 10. [python] リスト内包表記内でprintしたい
- 11. [python3] EUC-JPなのにShift-JISの機種依存文字が入っててUTF-8にできなかったときの対策
- 12. Pythonの文法を学ぶ!
- 13. Pythonの基本を学ぶ!
- 14. 初心者日記〜じゃんけんプログラムを作る〜
- 15. AWS LambdaとPythonでスラッシュコマンドで入力した文字をそのまま返すSlackBotを作成する
- 16. AtCoder Problems Hard No.71~80解説
- 17. Python 3.8.5でpyatsのインストールにエラーになる
- 18. 画像処理初心者がOpenCVを使ってみた(1)
- 19. pythonでショートカットウィンドウみたいなRPAを作った備忘録(1)
- 20. Pythonのフーリエ変換でつまずいた
Pythonのバージョンが2から3に変わらない現象【体験談】
エンジニア歴2年のkitagawaです。
Pythonを触り始めて、バージョンが変わらない現象が起きました。
調べてみてたくさん記事が出てきましたが、手っ取り早くバージョンアップできる方法を忘備録として記載します。“`
% python -V
Python 2.7.16
“`と表示されてしまいます。
そこで、`~/.bash_profile`の内容を変更し反映させれば、最新のバージョンになります。
“`
vi ~/.bash_profile
“`“`~/.bash_profile
export PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:$PATH
export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init -)”
“`上記が記入できたらESC押下し、`:wq`と入力で保存して終了。(`:qa`だと保存せず終了)
`source ~/.bash_pro
import thisコマンドでPythonの禅(The Zen of Python)
pythonのインタラクティブシェル上で、”import this”コマンドを実行すると、
“The Zen of Python”(Pythonの禅)というPythonプログラムを書く上での19の指導原則が表示される事を知りました。こんな感じです。
“`
$ python
Python 3.9.0 (default, Jan 9 2021, 22:05:52)
[Clang 12.0.0 (clang-1200.0.32.28)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import this
The Zen of Python, by Tim PetersBeautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is bett
ABC192 E Train ~Dijkstraの実装でハマった話~
#はじめに
本記事は競技プログラミングにおいて解くのに困った問題について、なぜその解法に思い至るのか、どのような所でハマったか等のポイントをメモした、筆者の筆者による筆者のための備忘録となっております。読まれることを意識していないので文章がとっ散らかってます。#問題
問題は[こちら](https://atcoder.jp/contests/abc192/tasks/abc192_e)。**概略**
$N$個の頂点と$M$本の辺からなる無向グラフがある。辺$i$は頂点$A_i, B_i$を結んでおり、この間の移動には$T_i$の時間を要する。ただし時刻が$K_i$の倍数である時のみこの辺の移動を開始できる。
頂点$X$を時刻0に出発して頂点$Y$に到達するまでの最短時間を求めよ。#提出解答
提出解答は[こちら](https://atcoder.jp/contests/abc192/submissions/22560027)。“`ABC192E.py
from heapq import heappush, heappop, heapify
n, m, x, y =
【Python × Excel】OpenpyxlでVlookupをやってみる
#はじめに
PythonでExcelを操作していて、Vlookupしたいときありませんか?Vlookup便利ですよね。
ということでOpenpyxlを使ってブックをまたいでVlookupする方法を解説します。今回は下記の評価データと給与データをサンプルとして使用します。
評価データ
![評価.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646654/ecb0e63a-a4c0-6147-3cb9-53445376918d.png)給与データ
![給与.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646654/ec67c105-e969-3d88-de9c-02e3c1298d7b.png)#準備
必要なライブラリをインストールしましょう。今回使うのはOpenpyxlです。“`python
import openpyxl as px
“`#必要ファイルの読み込み
ここで評価データと給与データの
AtCoder Problems Hard No.81~90解説
#Hard No.81 : C – Boxes and Candies
[C – Boxes and Candies](https://atcoder.jp/contests/abc048/tasks/arc064_a)
##発想
隣り合う2つの箱のうち、どちらの箱からどれだけキャンディを取れば良いのか。左から箱を見ていって、$i$番目と$i+1$番目の箱うち、$i+1$番目から可能な限りキャンディを食べるのが良いです。なぜなら$i+1$番目からキャンディを食べることで$i+2$番目の箱から食べるキャンディの個数を少なくすることができるからです。
##実装“`python
N, X = map(int, input().split())
A = list(map(int, input().split()))ans = 0
for i in range(N-1):
if A[i] + A[i+1] > X:
#食べるべきキャンディの個数
x = A[i+1] + A[i] – X
ans += x
A[i+
Ubuntuでpythonのバージョンを切り換える
pythonのバージョンを管理したり切り替える方法です
# 現在使う設定になっているpythonのバージョンを確認
“`
$ python –version
Python 2.7.17
“`
確認すると、python3を使いたいのですがpython2系の設定になっているようです# インストールされているpythonのバージョンと場所を確認
“`
$ which python #すべてのpythonがインストールされている場所を確認
/usr/bin/python #/usr/bin以下にあるようです
$ ls /usr/bin/ | grep python #/usr/bin/以下にインストールされている全pythonのバージョンを確認
python2
python2.7
python3
python3.6
python3.6-config
python3-config
“`
# update-alternativesが存在することを確認
update-alternativeはpythonのバージョン管理を行います。“`
$ which upda
画像処理初心者がOpenCVを使ってみた(2)
この記事は、画像処理エンジニア検定を受験するにあたり、OpenCVを実際に利用して画像処理について学ぶことを目的としています。勉強した内容をメモします。
[画僧処理初心者がOpenCVを使ってみた(1)](https://qiita.com/naccchan/items/b06a20e271feacf97e39) の続きです。
※画像処理でできることをメインに書いていくので、Pythonや使用する各関数の説明などは省略しています。目次
* エッジの検出
* 直線の検出
* モルフォロジー演算
* 特徴抽出
* 顔検出## エッジの検出
エッジとは何かについては、以下のサイトで勉強させていただきました。https://jp.mathworks.com/discovery/edge-detection.html
### ソーベル法(Sobel)でエッジ検出
ここでは画像のX軸とY軸、それぞれについて画像のエッジ検出結果を見てみたいと思います。“`python
import cv2img = cv2.imread(“data/src/favorite.jpg”,
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.11. ローカルにファイル(janken.py)を用意して、ソースコードをまるまるコピーします。
1. ターミナルを開いて以下のどちらかのコマンドを打てばできると思います。“`
$ python janken.py
or
$ python3 janken.py
“`## ソースコード
“`janken.py
import random
import sysselect
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に追加します。次にBotの設定をします。
`Basic Information > Bots`をクリックして`App DisplayName`の設定とShow tabsの`Messages Tab`をONにするのと`Allow users to send Slash commands and messages from the message
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 statisticsN = 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 --versionpip 20.0.2であることを確認
1. pipをアップグレードpip install -U pip1. pipのバージョンを再確認
pip --versionpip 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”)
動画RPAでお絵かきしてみた。 pic.twitter.com/KaFQPcJKrr
— ぽこんpͪoͣnͬpͣoͥnͭpͣa͡inͥ ? (@okahpokon) May 11, 2021
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