- 1. Python コードの書き方
- 2. pythonでファイルの中からランダムで一つの音源をとってくるプログラム
- 3. patchworklibを使って複数のplotを組み合わせる
- 4. pythonでひとつ前のtxtファイルのデータを読み取ってlistの次の要素をtxtファイルに出力してくれるプログラム
- 5. pythonでランダムで50音の一文字をテキストファイルに出力してくれるプログラムを作ろう!!
- 6. Conoha VPS (Ubuntu)にDockerでUbuntu20.04+Python3.8環境を構築する
- 7. [VS Code] Pythonの venv 環境をデフォルトで読み込む
- 8. Python3: cos類似度を計算 (ginza)
- 9. Python3: cos類似度を計算 (Mecab)
- 10. Python3: cos類似度を計算 (janome)
- 11. 【AWS Athena】クエリ実行結果を高速に取得する v2【Python】
- 12. AOJトライに関する知識知見の記録共有:Volume0-0051
- 13. 【Python3】0から作るPython初心者プログラミング【03】-大人数でじゃんけんプログラム-
- 14. Ginza の使い方
- 15. Python リスト
- 16. Python: mutableオブジェクトとimmutableオブジェクトを理解する
- 17. Pythonで認証・CRUD無しの簡易APIサーバを作る方法
- 18. paiza練習問題(文字列の表示)
- 19. paiza練習問題(ランクC:リスト内の値の比較)
- 20. 【Python】RedmineチケットのカスタムフィールドにPythonからファイル添付する
Python コードの書き方
#はじめに
動くコードは書けるが、基礎となる部分が曖昧だったのでまとめることにしました。
Python 3.8.2#ステートメントの区切り
ステートメントとは命令文の構成単位Pythonのステートメントの区切りは、セミコロン「;」もしくは改行
“`python:how_to_code.py:how_to_code.py
a = 10; b =20; c = a + b
print(c)a = 30
b =40
c = a + b
print(c)
“`#ステートメントの改行
折り返す際は「\」を入力“`python:how_to_code.py
a = 1 + 2 + 3 + 4 + 5 \
+ 6 + 7 + 8 + 9 + 10
print(a)
“`#コメントアウトの書き方
すでにコメントアウトしてきたが、「#」を書くとコメントアウトすることができる
複数行コメントアウトする際は以下のように記載する“`python:how_to_code.py
#一行のコメントアウト“””
複数行の
コメントアウトの
書き方
“””
“`
pythonでファイルの中からランダムで一つの音源をとってくるプログラム
#目的と準備
ランダムでひとつのmp3を
とってきてほしい
という願望がでてきたため準備として
音源をまとめたディレクトリを作っておく
今回はjapanese50onという
五十音をいれたものを使った#音声ファイルを一つとってくる
以下のサイトを参照したhttps://www.higashisalary.com/entry/python-random-choice
“`
import glob
import os
import random
list=glob.glob(‘japanese50on/*.mp3’)
data=random.choice(list)
“`このコードではjapanese50onのなかにある
mp3のファイルから一つをランダムに
とりだすということを行っています
dataのなかには相対パスで書かれた
ランダムなmp3の名前が入っています#音声ファイルをコピーする
以下のサイトを参照した
“`
import shutil
shutil.copyfile
patchworklibを使って複数のplotを組み合わせる
# patchworklib
この記事は、[matplotlibのsubplotはもうやめたい その2](https://qiita.com/ponnhide/items/62b7e062e79b0eca6daa)の続きである。
最近、matplotlibで作ったplotを簡単に並べるためのツール[patchworklib](https://github.com/ponnhide/patchworklib)を公開した。ここではその利用法を簡単に解説する。
正直なところ、自分がmatplotlibのplotを並べるために使っていた自分用ツールを公開しているだけなので、他の人にとって使いどころがあるのかについては、あまり自信がない。。。しかし、subplotで時間を浪費している方々の役に立つのではないかと思う。
ツールを作った経緯についてはは前の記事を参考にしてほしい。# インストール
installは
`git clone https://github.com/ponnhide/patchworklib.git`
でgithubのレポジトリをクローンしてもらって、
`python
pythonでひとつ前のtxtファイルのデータを読み取ってlistの次の要素をtxtファイルに出力してくれるプログラム
#前回
前回こういうものを作りました
https://qiita.com/akechiakechi/items/86316b7d1b872f3b5a47
#今回やること
今回は前回のプログラムを少し変えて
ひとつ前のtxtファイルのデータを読み取って
listの次の要素をtxtファイルに出力してくれるプログラムをつくります#例えば
letter.txtの中に「あ」とだけ書かれていて
このプログラムを実行すると
50音順で次の「い」がletter.txtに上書きされる
というものです#テキストファイルを読み込む
以下のサイトを参考にしましたhttps://atmarkit.itmedia.co.jp/ait/articles/2104/13/news024.html
まずコードをのせます
“`py
f = open(‘letter.txt’)
letter = f.read()
f.close()
“`
これをすることによって,letter.txtの文字を読み取って
letterの中に文字列として入れてくれます#50音の何番目なのかを知る
以下のサイト
pythonでランダムで50音の一文字をテキストファイルに出力してくれるプログラムを作ろう!!
#目的
タイトルに書いた通りの
プログラムが必要になったからです
最後の項目にいくと
コピーだけすればいいようになっているので
すぐに使いたい方は
最後だけ見てくれればいいと思います#ファイルの出力方法
以下のサイトを参照しましたhttps://work-life-enj.com/python-write-text-csv/
以下のようにすると
同じディレクト内に
out.txtとしてssssと書いてあるテキストファイルが作られます
aの中身を別の文字にすると別の文字がout.txtに上書きされます“`py
f = open(‘out.txt’, ‘w’)
a = “ssss”
f.write(a)
f.close()
“`#リスト内からランダムに一つを選ぶ
以下のサイトを参照しましたhttps://www.delftstack.com/ja/howto/python/python-randomly-select-from-list/
https://www.delftstack.com/ja/howto/python/how-to-convert-a
Conoha VPS (Ubuntu)にDockerでUbuntu20.04+Python3.8環境を構築する
Conoha(Ubuntu18.04)にDockerでUbuntu20.04+Python3.8環境を構築しようと思って調べた内容をまとめる。(コピペで動きます)
# imageをpull
“`sh
docker image pull ubuntu:20.04
“`# imageを確認
“`sh
docker images
“`# Docker imageを解凍
(ubuntu2004の部分は自由に名前を変更してください)“`sh
docker container run -it -d –name ubuntu2004 ubuntu:20.04
“`# image内に入る
“`sh
docker exec -it ubuntu2004 /bin/bash
“`# gitをインストールする
“`sh
sudo apt-get install git
“`#git clone
“`sh
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
git clone https://githu
[VS Code] Pythonの venv 環境をデフォルトで読み込む
## はじめに
venv環境をactivateするときに下のコマンドをターミナルに毎回打ち込んでいたが、めんどくさくなった。“`
.\venv\Scripts\activate
“`VS Codeの機能を使えば自動で読み込んでくれるのではないかと思い、調べてみると案の定だった。
## 対象者
この記事は下記のような人を対象にしています。– Python初学者
## 環境
Windows 10 home## 結論
以下のような既存の記事を見ると解決するが、備忘録として残す。https://tekunabe.hatenablog.jp/entry/2018/12/28/vscode_venv_default_rolad
## デフォルトで読み込まれるパス
– ワークスペースディレクトリ配下の venv など(ディレクトリ名は任意)
– 設定(setting.json)の python.venvFolders で指定したデフォルト値“`setting.json
// Folders in your home directory to look into
Python3: cos類似度を計算 (ginza)
こちらと同じことを ginza で行いました。
[Python3: cos類似度を計算 (janome)](https://qiita.com/ekzemplaro/items/f43ab16e9e4a5ba84d44)
[Python3: cos類似度を計算 (Mecab)](https://qiita.com/ekzemplaro/items/33b4067086739b109ed9)次のページを参考にしました。
[何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話](https://qiita.com/youwht/items/b047225a6fc356fd56ee)ライブラリーのインストール
“`bash
pip3 install tqdm
“`“`py:ginza_check.py
#! /usr/bin/python
#
# ginza_check.py
# Nov/27/2021
# ——————————————————–
Python3: cos類似度を計算 (Mecab)
こちらと同じことを Mecab で行いました。
[Python3: cos類似度を計算 (janome)](https://qiita.com/ekzemplaro/items/f43ab16e9e4a5ba84d44)次のページを参考にしました。
[PythonのMeCabで形態素解析!Tf-idfとCos類似度で文書の類似度を算出してみよう!](https://toukei-lab.com/python-mecab)“`py:mecab_check.py
#! /usr/bin/python
#
# mecab_check.py
# Nov/27/2021
# ——————————————————————
import sys
import MeCab
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer# ——————————–
Python3: cos類似度を計算 (janome)
次のページを参考にしました。
[Pythonで「Bag Of Words」を使い文章の類似度を調べる【自然言語処理】](https://yu-nix.com/blog/2020/12/14/python-bow/)ライブラリーのインストール
“`bash
pip install janome
“`“`py:similarity_check.py
#! /usr/bin/python
#
# similarity_check.py
# Nov/27/2021
# ——————————————————————
from janome.tokenizer import Tokenizer
import numpy as np
import sys# ——————————————————————
def gen_toks_list(sentence_list):
“””
文章のリストをJa
【AWS Athena】クエリ実行結果を高速に取得する v2【Python】
# はじめに
Python3上でSQLを書き、[awswrangler](https://pypi.org/project/awswrangler/)を使用してデータを取得する方法を紹介します。
タイトルの「高速に取得する v2」ですが、以前書いた記事[【AWS Athena】クエリ実行結果のデータを高速にPandas.DataFrameとして取得する](https://qiita.com/nijigen_plot/items/02051f09eee3a2dee2c2)
の続編的な形になるため、そのように書いています。
Python3上でSQLを書いてデータを取得するときは、**pyathenaよりawswranglerのほうが圧倒的に早いよ** ということを書きたいというのが趣旨です。# 環境・使用ライブラリ
2種類あります
それぞれ箇条書きのリンク先は実際に計測したcolaboratoryとなっています## colaboratory (Python 3.7.12)
– [pyathena側](https://colab.research.google.com/d
AOJトライに関する知識知見の記録共有:Volume0-0051
# タスク概要
Differential II
https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0051
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
1. 入力値の小数対応“`Python
import pprint, sys, time
import itertoolsdef core(arg, acc=False):
if acc:
pass
else:
perms = list(itertools.permutations(str(arg)))
M, m = [float(“”.join(f(perms))) for f in [max, min]]
return [M, m, M – m]def app(*args):
ret = []
for arg in args:
st = time.time()
try:
r =
【Python3】0から作るPython初心者プログラミング【03】-大人数でじゃんけんプログラム-
#【ご挨拶】こんにちは! ぬかさんエンジニアリングです。(3回目‼)
前回の投稿にまたまたありがたいことにコメント頂きまして、**クラス**の使い方について教えて頂きました。
今回は、それらの内容も含めた上で**複数人同時にじゃんけんが出来るようにアップデート**した内容になっております。
**クラス**を使って実際に遊べる程度のプログラムを作ってみたいと思っていた初心者の方がいらっしゃいましたら是非挑戦してみてください!また、複数の**インスタンス**をまとめて扱う方法や特殊**メソッド**`__str__`など少し応用的な話もありますので、既にクラスを理解されている方も興味があれば見ていってくださいね!
**LGTM**も是非よろしくお願いし
Ginza の使い方
[GiNZA – Japanese NLP Library](https://megagonlabs.github.io/ginza/)
の使い方です。インストール
“`bash
pip install -U ginza ja-ginza
“`パスを通す
“`bash
export PATH=$PATH:/home/uchida/.local/bin
“`固有名詞の抽出を行いました。
こちらと同じプログラムです。
[ubuntu 21.10 に mecab をインストール](https://qiita.com/ekzemplaro/items/c98c7f6698f130b55d53)“`py:pickup_propn.py
#! /usr/bin/python
#
# pickup_propn.py
# Nov/26/2021
#
import spacy
nlp = spacy.load(‘ja_ginza’)
text_in = “特急はくたかで富山に向かいます。それから、金沢に行って、兼六園に行きます。”
doc = nlp(text_in
Python リスト
—
title: Python リスト
tags: Python Python3
author: Hirakawa123
slide: false
—
#はじめに
基礎から定着させていこうということでリストについてまとめました。
Python 3.8.2##リストの作成
“`py
l = [1,2,3,4,5,6,7,8]
“`
##リストを表示する
“`py
l = [1,2,3,4,5,6,7,8]print(l)
“`
##リストのタイプの確認
“`py
l = [1,2,3,4,5,6,7,8]print(type(l))
“`
##リストにいくつ値が入っているのか
“`py
l = [1,2,3,4,5,6,7,8]print(len(l))
“`
##リストの一部を取得する
“`py
l = [1,2,3,4,5,6,7,8]print(l[0])
print(l[-1])
print(l[1:3])
print(l[:6])
“`
##リストのスキップして取得する
“`py
l = [1,2,3,4,5,6,7,8]
Python: mutableオブジェクトとimmutableオブジェクトを理解する
## はじめに
みなさんはmutable(ミュータブル)オブジェクト、immutable(イミュータブル)オブジェクトの違いについて、理解しているだろうか?大抵の場合「変更できるのがmutable、変更できないのがimmutable」のような答えが返ってくる。もちろん間違いではないのだが、変更できないというのは具体的にどういうことかと聞くと答えに窮する方が多かったので、本記事で整理しておく。
## 準備知識
### id()
Pythonのbuilt-in関数である**[id()](https://docs.python.org/3.8/library/functions.html#id)**は、メモリ内のオブジェクトのアドレス(位置)のIDを整数で返す。本記事では、メモリアドレスを16進数で表現するために**[hex()](https://docs.python.org/3.8/library/functions.html#hex)**を併用する。なお、Pythonの比較演算子である**is**がTrueになるのは、2つの変数が同じidを返す時である。( = 2つの変数が同一
Pythonで認証・CRUD無しの簡易APIサーバを作る方法
Pythonで本格的なAPIサーバを作ろうとすると「Django REST Framework」が真っ先に思い浮かぶと思いますが、簡易的にAPIレスポンスが欲しい時もあると思います。
ここでは、ローカルホスト上でPythonから、認証・CRUD無しでhttpレスポンスを返す方法を2つ紹介します。
### 注意事項
下記方法ではCSRFの対策を行なっていません。
本番環境で使用する際には、他の方法で正しい(想定したサイトの想定したユーザーから受け取った)リクエストかどうかを検証する必要があります。# Python WSGI を使う方法
一番簡易的に使えるのは、Pythonの標準インターフェイスであるWSGI(Web Server Gateway Interface)を使う方法です。WSGIの詳細について、調べれば詳しい記載が出てくると思いますが、今回は簡単にPOSTされたデータを返すAPIサーバを例に挙げます。
“`python:test_api.py
from wsgiref.simple_server import make_server
import jsond
paiza練習問題(文字列の表示)
# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード### 本文
– 解いた問題https://paiza.jp/works/mondai/prob60/substring_9
– 参考にしたサイト
なし
– 振返り
文字列の○番目から○番目を表示する問題。
1文字目を0番目と数えることに注意。– 参考コード(文字列の3番目から6番目を表示)
“`python
a = “tokugawa ieyasu”
print(a[2:6])
# kuga
#print(a[3:6])ではないことに注意
#t o k u g a w a _ i e y a s u
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
“`
paiza練習問題(ランクC:リスト内の値の比較)
# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード### 本文
– 解いた問題https://paiza.jp/works/mondai/prob60/total_value_9
– 参考にしたサイト
https://note.nkmk.me/python-list-str-num-conversion/
– 振返り
リスト内の要素が数字の場合すぐにint型に変えたくなるが解説を見ると必要なときに都度int型に変更するのでもいいのかも。上記参考サイトはリスト内のstr型をint型に変更する単に参照しました。– 参考コード(文字列リストを数値型に変換)
“`python
a = [“1”, “2”, “3”]
int_a = [int(i) for i in a]
print(int_a)
#[1, 2, 3]
“`
【Python】RedmineチケットのカスタムフィールドにPythonからファイル添付する
PythonでRedmine APIを操作するための`python-redmine`モジュールを使用したファイルタイプのカスタムフィールド更新を説明したいと思います。
# 通常のカスタムフィールド更新方法
ファイルタイプの更新方法について説明する前に、通常のカスタムフィールドの更新方法をおさらいします。
`redminelib`はPythonでRedmine APIを使用するためのモジュールです。
`pip install python-redmine`でインストールできます。ざっくりとした流れは、以下です。
1. Redmineの接続情報(APIキーとURL)を指定
1. チケットIDを指定
1. カスタムフィールドIDを指定(分からない場合は、カスタムフィールド名から求める)
1. チケットIDとカスタムフィールドID・カスタムフィールドに設定する値を指定して、チケットを更新詳細はソースのコメントに書いています。
“`python:通常のカスタムフィールドの更新
from redminelib import Redmine# Redmine接続情報
##