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

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

Pythonを33文字でセグフォらせる

[pythonを三行でセグフォらせる](https://qiita.com/autotaker1984/items/a8ba955acdc81c907b3d)
[pythonを2行でセグフォらせる](https://qiita.com/sh1ma/items/a6dd1bcca0d9725e7e67)
[pythonを1行でセグフォらせる](https://qiita.com/MysteriousMonkey/items/0e389ccdc12988dd4263)

“`python
__import__(“ctypes”).memset(1,1,1)
“`

![スクリーンショット 2020-06-28 8.25.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238091/fa3cb080-c1bf-4422-51d3-2eeba0c5b906.png)

最短なのかどうかは確認していないので、みなさんもPythonセグフォコードゴルフしてみてください

※6/28追記
記録が33文字になり

元記事を表示

ど素人がPython 3 エンジニア認定基礎試験に合格した方法

#資格を取得した背景
去年までIT業界以外の分野で働いていました。
#成績
![20200628_041422.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577830/272828e4-4708-d321-d687-0ddd878c3a90.jpeg)

新宿で受けて、
試験自体は20分程度で終わりました。
試験結果は画面に速攻で出てきました。

#勉強法(主に3つ!)
##①atcoder(競技アルゴリズムコンテスト)
**コードをただ書くだと本当に続かない**ので友達に聞いたサイトで問題を解きながらpythonの文法を覚えました。
下記のリンクでAtCoder Beginner Contest で無料で勉強できます。アカウントは必要
[リンク]https://kenkoooo.com/atcoder/#/table/
下記が答えです。コードを一旦、試したいときはコードテストで実行してみましょう。
PCとネット環境さえあればOK!
下記が問題A108の答え

“`
a,b = map(int,i

元記事を表示

イチゴピューレの化学測定データで遊んでみる(PandasとSeabornでグラフ化)

# はじめに
この記事ではイチゴピューレ(ピュアなものとイチゴ以外の何かが混合されたものがある)を赤外分光法によって測定したデータを用いてグラフをSeabornで描きます(今回は機械学習とかの話はしません)。
データは[983 Mid-infrared (MIR) spectra of fresh fruit purees](http://csr.quadram.ac.uk/wp-content/uploads/MIRFruitPurees.zip)からダウンロードできます。なお、このデータの収集とその分析については元論文”Use of Fourier transform infrared spectroscopy and partial least squares regression for the detection of adulteration of strawberry purees” Holland JK, Kemsley EK, Wilson RH. (1998). Journal of the Science of Food and Agriculture, 76,

元記事を表示

heroku デプロイメモ

## 準備
### herokuにログイン
““
heroku login
“`

### アプリケーションの作成
“`
heroku create APPNAME
“`

### gitの設定
“`
heroku git:remote -a APPNAME
“`

### buildpacksの設定(Pythonアプリ)

“`
heroku buildpacks:set heroku/python
“`

## デプロイ
### デプロイ
“`
git push heroku master
“`

### アプリケーション起動
“`
heroku open
“`

## その他
### heroku上でコマンド実行
“`
heroku run COMMAND
“`

コマンドの中断: `heroku run:detached COMMAND`

### ログ
“`
heroku logs –t
“`

### アプリケーションの一覧
“`
heroku list
“`

### アプリケーション毎のコマンド実行
“`
heroku COM

元記事を表示

製薬企業研究者がPythonの例外処理についてまとめてみた

# はじめに

ここでは、Pythonの例外処理について解説します。

# 例外処理の基本

例外処理は、プログラムを実行中に何らかのエラーが発生した場合の処理を記述するものです。
`try`と`except`を用いて、以下のように記述します。

“`python
import pandas as pd

try:
df = pd.read_csv(‘sample.csv’)
except FileNotFoundError:
print(‘File not found.’)
“`

`try`に続けてエラー(例外)が発生する可能性のある処理を、`except`に続けてエラーが発生した場合の処理を記述します。
`except`に続けてエラーの種類を書いておくと、指定したエラーが発生した場合に例外処理が実行されます。
ここで示した例では、`FileNotFoundError`(指定されたファイルが見つからないという例外)が発生した場合のみ、`except`節の処理が実行されます。
`except`の直後に何も記述しなかった場合は全てのエラーに対して、`except`

元記事を表示

PythonのBottleを使ってログイン・ログアウトの処理を作ってみた。

※本記事は個人用のメモです。

ちょっと作ってみたくなったので調べてみた。
参考にさせていただいたのは以下のページ

https://qiita.com/Gen6/items/c153d562e757d88aa5c1
https://stackoverflow.com/questions/35588873/how-to-logout-in-python-bottle

https://qiita.com/yoskmr/items/8d35b6c7a15cfa275dfc

# コード
こんな感じになった。ほとんど参考ページのスクリプトを流用させていただいた。感謝。

~~~login.py
#!/user/bin/env python
# -*- coding: utf-8 -*-

from bottle import route, run, template, request, static_file, url, get, post, response, error
from bottle im

元記事を表示

scapy で HTTP GET してからコネクションの切断まで行儀よく実行する方法

scapy で http response の tcp segment length が知りたい。そう思うことがありませんか?皆さん。tcp segment length さえ分かればコネクションの切断などの処理など書きまくれるのにと。。

調べてみるとどうも sr や sr1 の返り値からは tcp segment length は得られないようで sniff の返り値から以下のように得る必要があるようです。

“`
len(rcv[TCP].payload)
“`

または

“`
len(rcv[TCP])
“`

以下 http response の tcp segment length を見てコネクションの切断をするサンプルとなります。

意外となにかデータを受け取ってからコネクションの切断まで処理している scapy のサンプルがネットに落ちてない気がしますので参考になれば幸いです。

“` scapy_http_get.py
#!/usr/bin/env python3

from scapy.all import *
conf.L3socket=L3RawSo

元記事を表示

【Python3】関数内でグローバル変数を動的定義

# はじめに

動機:関数内でグローバル変数の動的な定義&値の代入がしたい!

(こんなことホイホイとやっちゃダメですが…。)

“`py
def dainyuu(val_name):
global val
val = 123 # ここで指定された名前の変数に代入したい

dainyuu(“val”)
print(val) # 関数外で参照
“`

“`exec()“` によって動的な変数の定義や代入が可能ですが、グローバル変数への代入で少し手間取ったのでまとめました。

なお、検証は Python 3.7.3 です。

– 公式リファレンス:[組み込み関数#exec](https://docs.python.org/ja/3/library/functions.html#exec)

# パターン1:グローバル変数のシンプルな定義

– “`exec“` の第2引数に “`globals()“` を渡す
– 第3引数を渡さない

“`exec“` に “`globals()“` のみを渡すことによって、文字列中の代入はグローバル変数への代入

元記事を表示

ImportError: No module named ‘PIL’

“`
$ python3 test.py
ImportError: No module named ‘PIL’
“`

PILがないので、Pillowをインストールして解決

“`
$ pip3 install Pillow
“`

# 参考
[https://pypi.org/project/Pillow/](https://pypi.org/project/Pillow/)

元記事を表示

pythonの正規表現

#目次

[正規表現によるパターンマッチングのまとめ](#正規表現によるパターンマッチングのまとめ)
[正規表現に用いる記号まとめ](#正規表現に用いる記号まとめ)
[文字集合の短縮形](#文字集合の短縮形)
[基本的なパターンマッチの流れ](#基本的なパターンマッチの流れ)
[正規表現に用いる記号を検索する場合は「\」でエスケープする必要がある](#正規表現に用いる記号を検索する場合は「\」でエスケープする必要がある)
[複数のパターンとマッチさせる](#複数のパターンとマッチさせる)
[「?」:直前のパターンが0または1回](#「?」:直前のパターンが0または1回)
[「*」:直前のパターンが0回以上](#「*」:直前のパターンが0回以上)
[「+」:直前のパターンが1回以上](#「+」:直前のパターンが1回以上)
[「{ }」:繰り返し回数を指定する](#「{ }」:繰り返し回数を指定する)
[貪欲マッチと非貪欲マッチ](#貪欲マッチと非貪欲マッチ)
[見つかった全ての文字列を返す:findall()メソッド](#見つかった全ての文字列を返す:findall()メソッド)
[「[

元記事を表示

ABC153~ABC157までの灰色diffのコード

1日3ACしていて、解説PDFにサンプルコードがない物もあるので記事にしてみました。
他の方の参考になれば嬉しいと思います。

#ABC 157
##[A – Duplex Printing](https://atcoder.jp/contests/abc157/tasks/abc157_a)

“`Python:Python
N = int(input())
print(N//2+N%2)
“`

##[B – Bingo](https://atcoder.jp/contests/abc157/tasks/abc157_b)

– 3*3の為、全探索でも間に合う

“`Python:Python

A = [[0] * 3, [0] * 3, [0] * 3]
Field = [[False] * 3, [False] * 3]

for i in range(0, 3):
A1, A2, A3 = list(map(int, input().split()))
A[i][0] = A1
A[i][1] = A2
A[i][2] = A3

N

元記事を表示

ゼロから始めるLeetCode Day69 「279. Perfect Squares」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

Pythonを使った超基本的作業メモ

Pythonを使った超基本的な作業のメモを書いていきます。


以下の様な何の変哲もないsample_result.csvというCSVファイルに対し、超基本的な集計作業を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359600/d52521e4-3d92-1385-f96b-eb3baa0205a9.png)

“`ruby:
#ライブラリをインポート。
import pandas as pd
import matplotlib.pyplot as plt
import os
“`

“`ruby:
#CSVファイルを読み込み。
df = pd.read_csv(‘data/sample_result.csv’)
#df = pd.read_csv(‘data/sample_result.csv’, encoding=”SHIFT-JISx0213″)というように書く場合もあります。
display(df)
“`
![image.png]

元記事を表示

【Python】Keras Tips

Kerasを学んでいく上で、備忘録として使い方を色々まとめました。
忘れそうなことがあったら、追記していきます。


# 保存/読み込み

[公式ドキュメント](https://keras.io/ja/getting-started/faq/#_4)

###モデル全体
この保存方法では、モデルの構造、重み、学習時の設定(loss, optimizer)、optimizerの状態をすべて保存します。
コンパイルをおこなったモデルを保存した場合、モデルをロードしたときに同時にコンパイルも行われます。

“`.py
from keras.models import load_model

# 保存
model.save(‘model.h5’)
del model # 既存モデルの削除
# 読み込み
model = load_model(‘

元記事を表示

print関数の便利な変数をデフォルト指定して活用する

# `print`関数にはいくつかの便利なオプションがある

“`py:
# スペース以外で接続する
print(“xxx”, “yyyy”, “zzzz”, sep=”-“) # xxx-yyyy-zzzz

# 改行しない(改行コード以外で終わる)
print(“xxx”, end=” “)
print(“yyyy”, end=” “)
print(“zzzz”, end=” “) # xxx yyyy zzzz

# print実行時に強制的に出力させる
print(“xxx”, flush=True)
“`

特に最後の`flush=True`は、`python xxx.py > out.log`のように出力ファイルを指定した時に、出力がなかなか書き込まれないデフォルト設定が解消される。

# 毎回オプションを入力するのが面倒

長いコードで複数箇所に`print()`があるといちいちオプションを追加するのが面倒くさい。
そんなときは、関数への部分入力を行う`functools.partial`を使う。

“`py:
import functools
print = f

元記事を表示

multiprocessingでサブプロセスのログをメインプロセスから出力する

サブプロセスのログをメインプロセスから出力したい時がある。
multiprocessingの`get_logger()`とloggingの`QueueHandler/QueueListener`を使うときれいに実装できたのでメモ。

## 実装例

“`python
import logging
import multiprocessing
from logging.handlers import QueueHandler, QueueListener

# サブプロセスで動く関数
def process(i):
logger = multiprocessing.get_logger()
logger.warning(f”num {i}”)

def main():
manager = multiprocessing.Manager()

# queue作成
queue = manager.Queue()

# loggerの設定
logger = multiprocessing.get_logger()
logge

元記事を表示

ゼロから始めるLeetCode Day68 「709. To Lower Case」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

pythonを1行でセグフォらせる

[pythonを三行でセグフォらせる](https://qiita.com/autotaker1984/items/a8ba955acdc81c907b3d)、[pythonを2行でセグフォらせる](https://qiita.com/sh1ma/items/a6dd1bcca0d9725e7e67)と[元ネタ](https://dic.nicovideo.jp/t/a/%E5%A4%9A%E5%88%86%E3%81%93%E3%82%8C%E3%81%8C%E4%B8%80%E7%95%AA%E6%97%A9%E3%81%84%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99)の流れへのリスペクトを込めて。

“`python
__import__(“ctypes”).cast(1, __import__(“ctypes”).py_object)
“`

元記事を表示

【EC2】seleniumでの日本語文字化けを防ぐ(noto対応)

# 日本語サイトの文字化けを防ぐ
## 環境
– Red Hat Enterprise Linux release 8.2
– google-chrome-stable-83.0.4103.116
– python3.6
– selenium 3.141.0

## 一行
その他諸々は既にインストール済という前提(参考情報参照)

“`sh
sudo yum install google-noto* -y
“`

おしまい!

## 参考情報
[Amazon LinuxでSelenium環境を最短で構築する – Qiita](https://qiita.com/onorioriori/items/4fa271daa3621e8f6fd9)
[【EC2】seleniumでキャプチャしたときの文字化けを防ぐ – Qiita](https://qiita.com/yuta-38/items/d2a82d9fefcd50452cb4)

参照するリポジトリの問題か、IPAフォントが入れられなかったので、yumでgoogle-noto探したらあったので解決。

元記事を表示

トリビアからへぇを予測するAIを作り、自分の雑学を推論させた。Hee-AI(へぇあい)

# Hee-AI (へぇあい)
Hee-AIを作りました.


スクリーンショット 2020-06-26 14.29.55.png

このGoogle Colabは編集できない状態で公開しています. 自分のドライブにコピーしてからぜひ遊んでみてください! (PC環境推奨)

[Google Colabのリンク](https://colab.research.google.com/drive/1UyfcOTeozmG5RY1ccqY_fHwSpKLTajpj?usp=sharing)

ソースコードも公開しております

元記事を表示

OTHERカテゴリの最新記事