- 1. 辞書のキーに変数を使う方法 mshmura
- 2. Google Home MiniがSiriと会話へ?【2021年版】
- 3. Python3 エンジニア認定基礎試験 絶対に合格する!
- 4. これは最高のPythonチートシートです!
- 5. なぜNumbaを使うと高速になるのか調べてみた
- 6. AOJトライに関する知識知見の記録共有:Volume0-0054
- 7. steamlitをrunするためにどうやってwhlとC++(14以上)をインストールしたか
- 8. 毎朝VOICEROIDに天気を知らせてほしい
- 9. 複素多変量正規分布サンプラーの作成手順
- 10. Pythonでsuper()の呼び出し時、selfは暗黙的に渡される
- 11. Windowsでgcloud コマンド起動するとpythonのエラーになるとき
- 12. kivyMDチュートリアル其の肆什参乃弍 Behaviors – Elevation篇
- 13. importするライブラリと同じファイル名で実行してエラー
- 14. Googleスプレッドシートのタスクリストをslackへ通知
- 15. Python 1本うどんコードトランスパイラ (Rust nomの使い方)
- 16. 最大の区間和 Python3
- 17. 自分の全ツイートをいいね数の多い順に並べたい!
- 18. ローカル環境のJupyterLabからAthenaにクエリしたい
- 19. 【覚書】Pythonのバージョン管理について
- 20. WSL(Ubuntu 20.04.3 LTS)で、MeCab を Install して Python3系で動作させる
辞書のキーに変数を使う方法 mshmura
元々の辞書
“` test.py
dic = {“りんご”:200,”みかん”:200,”なし”:100}
“`通常、変数を使用して辞書を作ろうとするとエラーになります…と思ったらエラーになりませんでした。以前はエラーになっていたはずなのに変わったのかな…
“`
new_key = “メロン”
dic[new_key] = 700
print(dic)
“`
出力結果“`
{‘りんご’: 200, ‘みかん’: 200, ‘なし’: 100, ‘メロン’: 700}
“`下記コードを使おうと思っていたのですが、不要でしたね。
“`
new_key = “メロン”
v = 700
exec(‘dic[“{}”] = {}’.format(new_key, v))
print(dic)
“`
Google Home MiniがSiriと会話へ?【2021年版】
#はじめに
2021年もアドベントカレンダーの季節が来ました。昨年は参加しませんでしたので、2年ぶりです。
今年は、5Gやドローン界隈で人気がある陸上特殊無線技士の資格に挑戦しました。四半世紀前に取得した4アマは、ラミネート加工の従事者免許証でしたが、いまは立派なんですね。さて、今回はGoogle Home MiniでSiriへ呼びかけてみます。
Google Home Miniに「Hey Siri, いまの天気は?」と発話させ、
Siriが「いまは曇っていて、気温は14度です」などと回答することを期待します。
Qiitaも読み物系が人気のようですが、技術メモで投稿します。#必要な機器
・Google Home Mini(あらかじめ、Macと同じWi-Fiに接続しておきます。)
・MacBook
・iPhone(Siri用)
・Wi-Fiルーター#必要なソフトウェア環境
・macOS Monterey 12.0.1
・Python 3.9.9
・ffmpeg 4.4.1
・pychromecast#方針
・Macで音声ファイルを用意する
・Sayコマンドで「Hey Si
Python3 エンジニア認定基礎試験 絶対に合格する!
# Python3 エンジニア認定基礎試験について
– 始めに
– Python3 エンジニア認定基礎試験についてとは
– 動機
– 試験勉強
– 受験勉強開始前の知識レベル
– 学習期間
– 参考資料
– 学習方法
– 試験当日
– 準備
– 試験
– チェックイン
– 試験
– その後
– 参考文献# 始めに
## Python 3 エンジニア認定基礎試験とは
Pythonの文法基礎を問う試験です。
後述でも紹介しますが、オライリー・ジャパン『Pythonチュートリアル 第3版』から各章数問ずつ出題されます。## 動機
Pythonの基本的な知識を身に着けたいと思いました。## 試験概要
– 問題数: 40問
– 出題形式: 選択形式
– 試験方法: コンピューター上で実施するCBT(Computer Based Testing)形式
– 試験時間: 60分 (回答完了次第、退出することができます)
– 合否水準: 70%
– 受験料: 11,000円 (学生 5500円)# 試験勉強
## 受験勉強開始前の知識
これは最高のPythonチートシートです!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/372045/0d72c3b0-92ca-7d76-f0b7-8ff84fddc570.png)
お帰りなさい!最近、特定のプログラミング言語、パッケージ、およびソフトウェア用のお気に入りのチートシートについて多くのことを話してきましたが、Python用の別の素晴らしいチートシートができました。この特定のシートはquickref.meによって開発されました。ここに、このシートに直接ジャンプするためのリンクがあります。
**[Pythonチートシートです](https://quickref.me/python)**
この記事の残りの部分では、この虎の巻のハイライトについて説明します。詳細については、上のシート全体を確認してください。まず、このシートでは、悪名高い「Hello World」の例を含め、Pythonの非常に基本的な部分について説明します。
![image.png](https://qiita-image-store.s3.a
なぜNumbaを使うと高速になるのか調べてみた
この記事は、[HUIT アドベントカレンダー 2021](https://qiita.com/advent-calendar/2021/huit) の13日目の記事です。
処理系初心者が少し調べてみた程度なので、間違った点があればご指摘して頂けると幸いです。
## はじめに
[Pythonのforがなぜ遅いのか](https://qiita.com/karintou8710/items/eb81e5c97d698e729e03)を調べた記事を以前に書きました。
これによると、主にPythonの仮想マシンでコードの実行をしていることが遅い原因です。この記事を書いた後に、具体的にPythonをどのように高速化するのかが気になってきました。
Pythonの高速化は
– PyPyやCythonを使って実行する
– Numbaで関数やループの最適化をする
– キャッシュや適切なアルゴリズムにするなどの方法が考えられます。
今回はNumbaがどうやって高速化しているのかが気になったので軽く調べてみました。
## Numbaとは
NumbaとはPython向けのJITコンパイ
AOJトライに関する知識知見の記録共有:Volume0-0054
# タスク概要
Sum of Nth decimal places
https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0054
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
1. 小数値入力を考慮“`Python
import pprint, sys, timedef core(arg, acc=True):
a, b, n = arg[:3]
if acc:
ret = []
else:
digits = str(a / b).split(“.”)[1][:n]
ret = [sum([int(i) for i in digits]), digits]
return retdef app(*args):
ret = []
for arg in args:
s = []
for acc in [True, False]:
st
steamlitをrunするためにどうやってwhlとC++(14以上)をインストールしたか
・whlファイルの読み込みエラー発生
→cpを探すためのコードでエラー発生
→pipのバージョンによって該当関数get_supported()の場所が違うことを別記事で発見
←いくつかの記事で見たPathを自分のPCでもないか探し、無事関数が見つかる。
←cpが分かりインストールすべきwhlファイルが分かる。
←whlファイルを無事実行できた。・「Microsoft Visual C++ 14.0 is required」のエラー発生
→エラーリンクからDevToolのみダウンロードするも同じエラー再度発生
→VSをC++のセット(約10GB)でインストールし直す
←エラーが解消。感想:エラー文ちゃんと読もう。
毎朝VOICEROIDに天気を知らせてほしい
## はじめに
タイトル通りです。
天気予報を確認せずに外出して失敗した経験はありませんか?
私は何度もあります。
簡単でいいので毎朝、知らせてくれたらそんな悩みとはおさらばでしょう。私はプログラミング初心者で、今回が初投稿となりますから少し見辛い点があると思います。ご容赦ください。
使用言語はpython3.9です。
## 天気予報を処理
### スクレイプ
今回は[https://tenki.jp/](tenki.jp)のページをスクレイプします。
このスクレイプするプログラムは[こちらの記事](https://kinformation.sakura.ne.jp/20170715-01)を一部改変して引用しています。
そちらのコードをコピペしたファイルscrape_weather.pyをimportします。以下がそのコードです。
“`python:scrape_weather.py
import re
import requests
from bs4 import BeautifulSoup
import jsondef main(ur
複素多変量正規分布サンプラーの作成手順
複素多変量正規分布からの効率的なサンプリングに関して解説します。Cholesky 分解に基づくサンプリングですので、多変量正規分布に従うサンプリング手法としては標準的なものです。
# 複素多変量正規分布
複素 N 次元 複素多変量正規分布とは、標本空間 $ \mathbb{C}^N $ 上の確率分布であり、平均(複素 N 次元)μ と分散共分散行列 (複素 N × N 正定値 Hermite 行列)Σ により指定されます。
## 複素多変量正規分布の確率密度関数
確率密度関数は、
“`math
p(z \mid \mu, \Sigma) = \frac{1}{\pi^N |\Sigma|} \, e^{ – (z – \mu)^* \Sigma^{-1} (z – \mu)}
“`で与えられます。
ここで、行列の右上肩の `*` は複素共役転置を表し、`| |` は行列の行列式を表しています。## 複素多変量正規分布の回転対称性
複素多変量正規分布には回転対称性があります。例えば、平均 $0 \in \mathbb{C}^N$ の複素多変量正規分布に従う確率変数
Pythonでsuper()の呼び出し時、selfは暗黙的に渡される
久しぶりにpython書いてるとよく間違えちゃうんのでメモ。
**python3 でsuper()を使う場合、第一引数としてselfは暗黙的に渡される。**
なので下記2例はどちらも同じ意味
“`python:super()で親クラスのメソッド呼び出す場合
class A(Base):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # self引数は不要
“`“`python:super()を使わない場合
class B(Base):
def __init__(self, *args, **kwargs):
Base.__init__(self, *args, **kwargs)
“`
Windowsでgcloud コマンド起動するとpythonのエラーになるとき
# 発生したこと
Windows 10 に Cloud SDK をインストールして `gcloud components update`を実行すると、Pythonのエラーが表示される。“`
$ gcloud compnents update
ERROR: gcloud failed to load: module ‘collections’ has no attribute ‘Mapping’
gcloud_main = _import_gcloud_main()
import googlecloudsdk.gcloud_main
from googlecloudsdk.calliope import cli
from googlecloudsdk.calliope import actions
from googlecloudsdk.calliope import markdown
from googlecloudsdk.calliope import usage_text
from googlecloudsdk.call
kivyMDチュートリアル其の肆什参乃弍 Behaviors – Elevation篇
ハロー、Qiita!いかがお過ごしでしょうか。
今年もあと3週間ほどとなりました。いやー、ほんとに1年て早いですね。
クリスマスソングが街で鳴り響く中、筆者は家でカタカタ記事を書こうとしています。
誰ですか?!うわーっとか言っているのは!やめてくださいッ!まぁそんな馬鹿なことも言っておりますが、安定的に投稿出来るのも平和な象徴という
ことでしょうか(どういうこと)。ということで自分でも何言っているか分からなくなって
きたので、さっさと本題に入っていこうと思います。今日はというと、先週Elevationをやっていて残りがあるので、それの続きとなります。
ということで、レッツラゴ。## Elevation
### button with a rectangular elevation effect
投稿者すらどこまでやったっけ?となっていましたが、今一度振り返ってみます。
どこまでやっていたかというと、全然進んでいなくサイコロのようなものを表示をして
いて、その様子をキャプチャとして残していました。使用方法とサンプルコードが一緒に
なっていて、最初のサンプルコードがそれに
importするライブラリと同じファイル名で実行してエラー
基本的なことでハマってしまったので、
備忘録として残します。下記のthreading.pyというファイルを実行しようとして、エラーではまってしまいました。
“` threading.py
import threading
“`エラー内容は下記のとおり
“`
AttributeError: partially initialized module ‘threading’ has no attribute ‘RLock’ (most likely due to a circular import)
“`解決方法
ファイル名を変更
threading.py → threading_test.py
これだけでエラーが解消しました。
けっこうエラー文だけからは判断しずらいですよね….
Googleスプレッドシートのタスクリストをslackへ通知
この記事は、[Supershipグループ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/supership)の12日目の記事になります。
去年は[Google Calendar APIを利用した便利ツールについての記事を作成しました](https://qiita.com/suzukitheseventh/items/58e29fba080f44630d5a)が今年は、Google Sheets APIを利用した便利ツールの記事にしようと思います。
# 目的
Googleスプレッドシートで作成したタスクリストをslackに通知する方法を記載します。
GASではなくPythonです。
「GASではなくPythonで色々いじりたい」という方向けに参考になれば良いなと思います。# 前提環境
### 利用したもの
– Python3
– Googleスプレッドシート
– Google Sheets API
– Slack Incoming Webhook
– macのターミナル
– cront
Python 1本うどんコードトランスパイラ (Rust nomの使い方)
[鈴鹿高専 Advent Calender 2021](https://qiita.com/advent-calendar/2021/snct) 12日目の記事です
Rustのパーサコンビネータを紹介したかっただけのはずなのに, どうしてこんなことに
## 1本うどんコードとは
ご本家様 [Qiita – ugis_prog/Python 1本うどんコード](https://qiita.com/ugis_prog/items/ec33a98bd2b5aa1b0f3e)
## 1本うどんコードトランスパイラとは
**1本ではない普通のPythonスクリプトを, 1本うどんに麺打ちします.**
コード全体とか仕様は[github – niuez/UDON\_generator](https://github.com/niuez/UDON_generator)にあります.## Playground
[Playgroundあります](https://niuez.github.io/UDON_generator/) あそべ
## 環境
Rustを用いて実装. Pythonパ
最大の区間和 Python3
https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step2
Python3の解答がなくて涙
何度も試行錯誤してやっと通過したので忘備録で残します“`
N,X = map(int,input().split())
A = list(map(int,input().split()))S = [0]
max_num = 0
max_i = 0for i in range(0,N):
S.append(S[i] + A[i])for i in range(0,N-X+1):
if max_num < S[X+i] - S[i]: max_num = S[X+i] - S[i] max_i = i print(max_num,A[max_i]) ```
自分の全ツイートをいいね数の多い順に並べたい!
「Twitter ツイート いいね 多い順 並べる」でググっても良いやり方が出てこなかったので自分でやってみました。
# 自分の全ツイートをダウンロード
まずは[こちら](https://help.twitter.com/ja/managing-your-account/how-to-download-your-twitter-archive)を参考に自分の全ツイートをダウンロードします。# Pythonコードを実行
以下のPythonコードをダウンロードしたアーカイブデータのdataディレクトリ内に配置して実行します。
Twitterのアカウント名、アーカイブデータディレクトリのパスは自分のものに変更してください。自分の実行環境は以下です。
– Mac OS 10.15.7
– Python 3.9.1“` Python:tweet_log.py
import json
from dateutil.parser import parse
from pytz import timezone
import codecs
import subprocess# Twit
ローカル環境のJupyterLabからAthenaにクエリしたい
自分が初めてPythonを触った時、Jupyter Notebookには大変お世話になりました。
そんな感謝の一方で、AWS re:Invent 2021では[SageMaker Studio Lab](https://www.publickey1.jp/blog/21/awsjupyterlab_idesagemaker_studio_labaws_reinvent_2021.html)が発表されてJupyter環境がまた注目されているなーというにわか心もあったので、JupyterLabの使い方を考えてみました。
機械学習しなくても、手元でJupyterLabを使い始めることが目的です。
## 前提
– Assume RoleかつMFAを設定したIAMユーザ情報を`~/.aws/**`に保存
– Athena実行に足りるIAMロール権限を持っていること
– 参考: [Amazon Athena でクエリを実行したとき「Access Denied (アクセスが拒否されました) 」というエラーが表示される理由](https://aws.amazon.com/jp/p
【覚書】Pythonのバージョン管理について
# はじめに
今回は、Pythonで躓きやすいバージョン管理について、覚書を兼ねて解説(?)します。
使いやすい方法は人によって変わってくると思いますので、いろいろな方法を試していただければと思います。Pythonでは、複数バージョンをインストールして、切り替えながら使うということが少し複雑になっています。メジャーバージョン(2系・3系)同士では動くのですが、マイナーバージョンを複数インストールすると思ったように動かないことが多々あります。そんなときに、使える方法をご紹介します。
なお、[こちら](https://wisteria-yt.blogspot.com/2021/08/python.html “Pythonのバージョン管理について(覚え書き)”)のリメイク版となります。
# 方法
ここからはWindowsとmacOSに分けてそれぞれのおすすめの方法をご紹介します。Windowsの方は[こちら](#pythonランチャー–venv-windows)、macOSの方は[こちら](#pyenv–venv-macos)からご覧ください。## Pythonランチャー ×
WSL(Ubuntu 20.04.3 LTS)で、MeCab を Install して Python3系で動作させる
#経緯
形態素解析で利用する MeCab をそのまま“`pipenv install mecab-python3“`としても、Install できなかったので忘備録です。# 環境
– OS: Windows10(WSL: Ubuntu 20.04.3 LTS)
– Python: 3.10.0
– pipenv: 2021.5.29# MeCab に必要な Package を Install する
下記の Package が、MeCab が動作するのに必要で、こちらを Install しないと “`pipenv install mecab-python3“`としても Error が発生して Install できませんでした。“`bash
$ sudo apt update
$ sudo apt install mecab mecab-ipadic-utf8 libmecab-dev swig
“`# MeCab を Install する
“`bash
$ pipenv install mecab-python3
“`無事に Install され P