Python3関連のことを調べてみた2020年11月18日

Python3関連のことを調べてみた2020年11月18日

Pythonを使ってジャンケンをするプログラム

この記事では、
Pythonを使ってジャンケンをするプログラム
を書いていきます。

##求め方
1, Botの出す手をランダムで生成する。
2, あいこだった場合、もう一度繰り返す。
3, ジャンケンの結果を表示

**1, Botの出す手をランダムで生成する。**
まずはBotの出す手をランダムで生成していきます。

色々なやり方がありますが、今回はrandom.randint(0, 2)でやります。
これは、ランデムで範囲内の整数を生成できます。

この整数をグー・チョキ・パーに当てはめていきます。

“`janken.py
import random

def janken(your_result):
n = random.randint(0, 2)
if n == 0:
bot = “グー”
elif n == 1:
bot = “チョキ”
else:
bot = “パー”
“`

**2, あいこだった場合、もう一度繰り返す。**
次に、あいこだった時に、もう一度最初からやり直すように書いて

元記事を表示

エラーと戦う

# pythonで出たエラーに苦戦した話
この記事は検索下手な私が「ん?これってなんのこっちゃ」ってなった体験談ww

## attribute error
~~~
AttributeError: module(object) ‘xxx’ has no attribute ‘yyy’
~~~
このようなエラーが出ることがある..

## 今回私が起こしてしまったエラーは関数の返り値がオブジェクトの際、返り値を入れるオブジェクトの内容が変わってしまった時起きた…

~~~python:sample.py
class Person:
def __init__(self, name:str, age:int):
self.name = name
self.age = age

def renamed(person, pserson2):
person.name = ‘Kein’
return person, ron

bob = Person(‘Bob’, 19)
ron = Person(‘Ron’, 23)
kein = ren

元記事を表示

【Tips】pyenvでPython3系の3.5.3未満をインストールしようとしたときに発生するエラーへの対処

# 問題:Pythonインストールにおけるエラー
## 入力
“`shell
pyenv install 3.4.8
“`

## 出力
“`shell
Downloading Python-3.4.8.tar.xz…
-> https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz
Installing Python-3.4.8…
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems

BUILD FAILED (Ubuntu 18.04 using python-build 1.2.19-1-gece59ca8)

Inspect or clean up the working tree at

元記事を表示

言語を自作してみた。(1)

# 言語を自作してみたよ。
皆さんは言語を自作したことがありますか?え?ある?、、、、、あら、そう。

待って!ブラウザバックしないで!おもしろいですから?この記事!
、、はい。ありがとうございます。改めて、今回は「自作の言語を作ってみた」回の
第一回目であります。~~まあ書き溜めてたのを記事にしただけなんですけど。~~
それじゃあ早速行ってみましょう!

# 何で作るの?
筆者は(当たり前ですが)プログラムを書きます。その時、ふと頭に浮かんだのです。
「PCに言語で命令できるのなら自作の言語でも同じようにできるのでは?」と。
今考えればすぐに忘れるようなことだったのですが、筆者は変わり者なので「ならば作ってしまおう!」
と考えてしまったわけです。

# 概要
python3.8.5使用
パーサなど:すべて自作(<-ほめて!) ##文法 - 型指定させたい - ()の代わりに{}使いたい。個人的に形が好きだから。 - とりあえず関数定義とかはあと。でも実現させたい。だってまだ1回目だもん。 # コードなど あ、書き忘れてましたがGithubに載せてます。 URL:https://g

元記事を表示

Python3エンジニア認定基礎試験~模擬試験を解いてみた〜

#この記事について

Python 3 エンジニア認定基礎試験の勉強した内容を記事にしました。

##試験概要

試験名:Python 3 エンジニア認定基礎試験
問題数:40問
出題形式:選択式
試験方式:コンピューター上で実施するCBT(Computer Based Testing)形式
試験時間:60分
合格基準: 7割正解
受験料:一般価格 11,000円(税込)
学割価格:5,500円(税込)

出題範囲
出題範囲は主教材であるオライリー・ジャパン「Pythonチュートリアル 第3版」より以下の比率で出題します。

詳細はこちら
https://cbt.odyssey-com.co.jp/pythonic-exam.html

#模擬試験の問題

問1 以下のプログラムを実行した際の出力結果を選びなさい。

“`python:terminal
import json
x = {‘name’:’yamada’,’data’:[2,3,4]}
print(json.dumps(x))
“`
JSON(JavaScript Object Notation)は、軽量のデータ

元記事を表示

pythonでのMysqlの使い方

## はじめに
この記事はYoloで受け取ったデータをもとに可視化する為の方法として,Mysqlを利用する方法を記入していくつもりです.
Mysqlの使い方は以下の記事を参考に記事にしていきたいと思います.
>Python + mysql-connector-python の使い方まとめ
>https://qiita.com/valzer0/items/2f27ba98397fa7ff0d74

##環境
>python8.x
xamppを利用(Mysql)

## 使用しているライブラリ
>mysql.connector

## データベースの構成
databasename:mask
table:mask-ok-or-ng1
カラム:3

|name |format
|:———-|—–:|
|day | day |
|time | time |
|ok-or-ng | text |

## 実装したコード
“`
def sqlng():
day = datetime.date.today()
time1 =

元記事を表示

文章内の人名や地名を抜き出して列挙する

##問題意識

1. テキスト文の解析手法としての固有表現抽出は、良い意味で「枯れた」、信頼性の高い手法です。
2. テキスト文から意味を抽出する技術としては、文章の自動要約モデルがあり、深層学習を用いた要約文の自動生成モデルなども、膨大な件数の論文が日々、提案されています。
3. 文章の自動要約技術は素晴らしいものですが、生成された要約文からは、元の文に含まれていた、特定の「人物名」や「地名」が脱落してしまう事が多いと思います。
4. 興味を持ったテキスト文中に含まれる「人物名」の単語だけを、すべて漏らさず一覧出力することで、その文書が「誰」に言及していて、誰に言及していない文であるのかを、ひと目で確認することができます。
5. このように、要約文から漏れてしまう「情報」を、固有表現を抽出することで、すくいとることができるケースがあるのではないでしょうか。

__( 参考 )__
なお、文章の自動要約モデルには、*Extractrive summarization*と*Abstractive summarization*モデルの2つの流れがあります。

・ [@koreyouさんQ

元記事を表示

Djangoでログイン機能の実装

これは自分の備忘録です。
自学のために色々調べたのですが、バージョン2の解説等が多くややこしかったのである程度まとめておきます。
同じような悩みにぶつかった人のためになればと思って書いています。
暖かい目で見守って下さい!(何か修正点あればどしどしお願いします)

大体のことはチュートリアルやればわかる(適当)
https://docs.djangoproject.com/ja/3.1/intro/tutorial01/

<使用環境>
・OS…windows10
・Python…3.7.6
・Django…3.1.3

環境構築

ローカルにpythonをインストールしても良いですが、パッケージ管理等を考えるとanacondaを使用した方が良いかと。
ここら辺は調べたらたくさん出てくるのでスルー。

見落としがあれば申し訳ありません。
パッケージは恐らく

“`
pip install django
pip install pillow
“`

だけだったはず、、、!!

Let’s Start Project!!

ここら辺も同じ

元記事を表示

googleapiclientを使うプログラムでPyInstallerするとエラーがでた話

# 問題
Google Api(スプレッドシート)を使うプログラムをPyInstallerで実行ファイル化しようとしたら,コンパイルはできたが実行時にエラーが発生.
コンパイルしたプログラムは以下のようなもの

“`python:main.py
from googleapiclient.discovery import build
# 以下略
“`
ここで,

“`sh
pyinstaller –onefile main.py
./dist/main # コンパイルに成功し,実行ファイルができる
“`
さて,実行ファイルを実行すると,

“`
pkg_resources.DistributionNotFound: The ‘google-api-python-client’ distribution was not found and is required by the application
“`
:middle_finger_tone2::laughing::middle_finger_tone2:

# 解決方法
google-api-clientのバージョンを*

元記事を表示

総務省APIを使ってデータを取得する

# 総務省APIを使用してデータを取得

計量経済学のパネルデータを作成するためにPythonでデータをとってみました。(備忘録です)

## 準備
Python実行環境
総務省APIの取得
[こちら](https://www.e-stat.go.jp/api/api-info/api-guide)からユーザ登録して取得できます。

## コード

“`python:def_TakeData
import requests,urllib
import pandas as pd
import numpy as np
import json
def get_json(base_url,params):
params_str=urllib.parse.urlencode(params)
url=base_url+params_str
json=requests.get(url).json()
return json

def take_data(dataid):
appID=”appIDを入れます”
base_url=”http://ap

元記事を表示

Ubuntu 20.04でSSL接続エラー(ssl.SSLError: [SSL: DH_KEY_TOO_SMALL])が発生する際の対処法

Ubuntu 20.04でPythonのサードパーティAPIを用いてSSL通信しようとしたところ以下のエラーが発生。Ubuntu 20.04で起こるらしい。
>(Caused by SSLError(SSLError(1, ‘[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)’)

下記のQAを参考に解決した方法をまとめます。
https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level

# このエラーが発生する背景
Debine系のOpenSSLのデフォルト設定がよりセキュアになったことが原因らしい。
セキュアになった背景はこれです。(英文です)
https://weakdh.org/

簡単に概要を訳すとSSLで使用する鍵交換のアルゴリズムに脆弱性が見つかったため。
脆弱性に該当するSSL通信をしようとするとDH_KEY_TOO_SMALLのエラーが発生する。

根本解決としてはサーバー側のセキュリティが改善

元記事を表示

blender, python, らせん階段、色

改良点はわずかですが、色つけて回転軸を変えてカメラ注目点を変えました。
動画1秒はtwitterで[この動画](https://mobile.twitter.com/naohiko7/status/1328308708959404043)です。
![bph38color.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/d24b05b7-a66e-a811-0ec8-7136b163d565.png)

“`python3
# nh38 == 5階建ラセン。2020.11.14–2020.11.16
import bpy
import math
import random
# ========= DELETE ALL mesh, light, camera, みな削除する2行 =========
for item in bpy.data.objects:
bpy.data.objects.remove(item)
#================== building helix

元記事を表示

pythonとかをbatファイルから実行してみた

# batファイルでCとかpythonとかを実行する
この頃寒いですね。
## なんでそんな面倒なことを
え?なんで?そりゃぁ、ねぇ、、、夢ってやつ?
あ、多分詳しいやり方とかはご自分でググったほうがわかりやすいかと。
あくまでも自己満なので。
## やってみた
まずbatファイルから。
c言語の実行↓(オプションなどは随時書き換えるしかないです。~~とゆうか誰も使わないか~~)

“`vb
@echo off
gcc %1
a
“`
pythonの実行↓

“`vb
@echo off
python %1
“`
今回実行してみたコード(C言語&python)

“`vb
//test.c
#include

int main(){
printf(“OK!! this is c”);
return 0;
}
“`

“`vb
#test.py
print(“OK! this is python”)
“`

# 結果
できた!やったぜ。

“`vb
OK!! this is c
“`

“`vb
OK! this is pyth

元記事を表示

# ざっくりとした強化学習手法の分類

# はじめに
– 強化学習を学んだ際のメモとして,いろいろな手法を分類して紹介します。各手法の実装や詳細は,他の方の記事を参照してください。本記事は,[1]**森村哲郎『強化学習』講談社** を中心として記載しています。
– 末尾の参考文献をもとに,できるだけ簡素に記載するように心がけたので,厳密性に欠ける可能性があります。あくまで手法全体を俯瞰するフローチャート的な立ち位置としてご参考ください。
– 明らかな誤りがあった際にはご連絡ください。
– 記事の基本的な流れは文献[1]をかなり参考にしています。著作権等の問題が発覚した場合には記事を取り下げますので,ご了承ください。文献[1]は数理的に非常に厳密に記載されており,難しいですが一読どころか百読くらいの価値がありますので,ぜひご購入の検討を (ステマ)。

実装や簡単な説明は,「Pythonで学ぶ強化学習」のgithubがとてもわかりやすいです。
https://github.com/icoxfog417/baby-steps-of-rl-ja

章立ては以下の通り。
1. 環境が既知の場合
2. 環境が未知の場合1 – バッチ

元記事を表示

drf-flex-fieldsでネストしたserializerを実装する方法

ネストしたserializerを実装するところで躓いたので、メモとして書く。
#drf-flex-fieldsをインストール
“`
pip install drf-flex-fields
“`
#model
“`model.py
class User(models.Model):
username = models.CharField(max_length=255)

class Tag(models.Model):
name = models.CharField(max_length=255)

class Book(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
tag = models.ManyToManyField(Tag)
“`
#serializer
“`serializers.py
from rest_flex_fields import

元記事を表示

Pythonによる線形代数入門:A=LU分解

LU分解とは、正方行列 A を下三角行列 L と上三角行列 U の積、すなわち A = LU が成立するような L と Uに分解することをいう。連立方程式の解法、逆行列の計算、行列式の計算などに用いられる。解法には、解析解、ガウスの消去法、再帰法など多数ある。LとUのペアーは一意に定まりそうであるがそれは条件による。


11月19日 線形代数 オンライン勉強会
[初心者大歓迎 19回目 線形代数イントロダクション Gストラング](https://kinyuzaimu.connpass.com/event/194921/)

を行います。奮ってご参加ください。

# A=LU 消去と分解

3×3の行列$A$を消去により対角要素にピボットをもつ上三角行列$U$と下三角行列$L$に分解できることを確認する。

## 消去による対角要素にピボットをもつ上三角行列の取得

Uは対角要素にピボットをもつ上三角行列である。Lは下三角行列である。Aは消去の手順を通して上三角行列と下三角行列に分解することができる。

“`math
A=\left(
\begin{ar

元記事を表示

Pythonにおけるdestructorの挙動を確認

#サンプルコード *class_test.py*

“`Python3:class_test.py
class SampleClass:
num = 0
def __init__(self, number=1):
SampleClass.num +=1 # インスタンスが生成される度に、クラス変数numを1インクリメントする
self.num = number # インスタンス生成時に生成元から受け取った引数numberを、インスタンス変数numに格納する
def __del__(self):
SampleClass.num -=1 # インスタンスを削除する度に、クラス変数numを1デクリメントする
print(“このインスタンスを削除しました”)

“`

###上記のスクリプトファイルを格納したディレクトリと同じ階層で、Python3を起動

“`Python3:Terminal
$ ls
class_test.py
$ cat class_test.py
class SampleCl

元記事を表示

blender, python, らせん階段

らせん状にキューブを並べて照明当ててカメラ回そう、という思いつきで、作りました。
全体で124行あって、そのうちキューブを並べるのは20行くらい。照明部分とカメラ部分は他で作ったものの再利用です。もっと階段に見えるように改良が必要な感じがします。
動画1秒はtwitterで[この動画](https://mobile.twitter.com/naohiko7/status/1327607226660397056)です。
![bph38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/3a0f6546-6275-3aaf-2aba-2c1e9c485cc0.png)

“`python3
# nh38 ==5階建ラセン。2020.11.14
import bpy
import math
# ========= DELETE ALL mesh, light, camera, みな削除する2行 =========
for item in bpy.data.objects:
bpy.data.

元記事を表示

Djangoのtemplateで演算処理を行う方法

##はじめに
django-mathfiltersというモジュールを利用することでテンプレート上での演算処理ができるようになります。この記事では、その実装方法について紹介します。

##参考
[django-mathfilters · PyPI](https://pypi.org/project/django-mathfilters/)

##環境
Python(3.6.2)
Django(2.1.7)

##インストール方法

### django-mathfiltersをインストール

“`python
pip install django-mathfilters
“`

### mathfiltersをINSTALLED_APPSに追加

“`python:settings.py
# Application definition

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.

元記事を表示

DjangoでRailsのhelperのような機能を実装する方法

##はじめに
この記事はDjangoで初めてアプリを作る際に、Railsのhelperのような機能がないか調べた際の個人的メモです。

##環境
Python(3.6.2)
Django(2.1.7)

##カスタムテンプレートフィルタ
Railsのhelperはhelper内で定義したメソッドをview側で呼び出すことができます。Djangoでも同じように別ファイルで定義したメソッドをtemplate側で呼び出せないか調べたところ、カスタムテンプレートフィルタを作成することで実現できるようです。

##実装方法
以下の手順で、カスタムテンプレートフィルタを作成できます。

###1. templatetags というディレクトリを作成
カスタムフィルタを導入したいテンプレートのアプリディレクトリ内にtemplatetagsというディレクトリ を作成します。

###2. templatetagsに \_\_init__.py を設置
templatetagsディレクトリ内で作成するファイルをモジュール化するために\_\_init__.pyを設置します。

###3. temp

元記事を表示

OTHERカテゴリの最新記事