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

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

inputで0から3以外を入力した時に再入力へ促したい

この内容で実行しようと思っています。
inputで選択できるのは0-3です。
私はこのコードに

もし0.1.2.3以外を入力したら

0-3の数字を入力してください

と出力してもう一度数字を入力できるようにしたいです。
できないなりに
if inputNum != 0 and inputNum != 1 and inputNum != 2 and inputNum != 3:
print(“0-3の数字を入力してください”)
とか、isdigitとか例外処理とかやってみたけどpritnは表示されてももう一度数字を入力することはできません。
0-3の入力に「あ」とか「*」とか、「11」なんでも0-3以外は駄目なようにしたい。

dic = {}

while True:
print(“[0]新しい英単語を追加\n[1]英単語を検索する\n[2]登録単語を表示する\n[3]アプリを閉じる”)
inputNum = input()

if int(inputNum) == 0:
print(“単語の意味

元記事を表示

Python3のメタクラスメモ

# Python3のメタクラスメモ

Python初心者がPython3のメタクラスについて学んだことのメモ
コード内のコメントはコンソールの出力結果を意図しています。
誤りや不適正な表現があればご指摘いただけると幸いです。

## メタクラスとは
あるインスタンスがどのクラス型かを調べる場合、type()を利用することができる。

“`python:qiita.rb
class Hoge:
pass
h = Hoge()
print(type(h))
#
“`

Hogeクラスにもtype()を適用してみる。

“`python:qiita.rb
print(type(Hoge))
#
“`
これはHogeクラス自体がtype型のインスタンスであることを示している。hがHogeクラスのインスタンスであると同様に、Hogeクラスもまたtypeクラスのインスタンスということになる。***Python3で定義されたクラスは、typeという特殊なクラス(メタクラス)のインスタンスになる。***通常で

元記事を表示

【AmazonLinux】Python2系からPython3系への切り替え

# 環境
AMI: Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type

# コマンド

“`console
$ sudo yum install python36
$ python3 –version
$ sudo yum install git
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ emacs ~/.bash_profile
$ source ~/.bash_profile
$ sudo yum install zlib1g-dev
$ sudo yum install libssl-dev
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y
$ pyenv install 3.6.8

元記事を表示

PubMedで定期的に検索したい論文情報をCSVデータとして蓄積させていくスクリプトの作成

定期的に新しい論文が無いか調べることあると思います。けど、時間があるときに不定期に調べる程度で、あれ?この論文見たっけかな?なんてこともあるかと思います。そこで定期的に調べる検索ワードで出てくる論文を一覧データとして蓄積させていくスクリプトを書きました。全くの独学でやってるので変な部分もあるかもですが悪しからずです。

#1.使用モジュール一覧。
書いてるけど、結局使ってない…なんてものも、もしかしたら混ざっているかもしれません。試行錯誤して作ったのでとりあえず、動けばいいかレベルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481632/7eacf9aa-4dd5-8960-d1ab-548917e8ae6a.png)
#2.本日の日付をゲット。
論文情報を蓄積させていくためには、前回調査した日を記録しておく必要があります。ゼロから毎回論文情報をゲットするようなスクリプトはNCBIのサーバに高負担をかけてしまうので要注意。時間をゲットするためにはstrftimeとstrptim

元記事を表示

Python:クラスについての覚え書き1「抽象度」

#概要:部品の使い方から、組み合わせ方へ
単にプログラムの断片を利用するだけでなく、それらを組み合わせたプログラムの実装に向けて学習を進めていく。

#現状
あれがやりたい、これがやりたいというちょっとした思いつきについては、豊富なライブラリと解説のおかげで何とか実現できるようになりました。一方で、じゃあそれらを組合わせて一つのプログラムを作ろうかとなると、どうしても全体がごちゃごちゃしてしまい、やがて手がつけられなくなってしまいます。

よって、ここではクラスについて学んだことを整理し、「自分で拡張・メンテンナスできるプログラム」を作ることを目的として諸事項をまとめていきます。まだまだ初学者の枠を抜けられないプログラマーなので、アドバイスは大歓迎です。

#クラスの抽象度
###抽象度は適切に設定する
プログラムにおいて、名前付けは重要です。適当な名前をつけてしまうと理解・認識を阻害してしまいます。よって、全体がどうなっているかをしっかりと把握するためには、抽象度を状況に応じて決定しなければなりません。

###抽象度
「Python クラス 抽象度」など検索をかけると、メタクラスの

元記事を表示

フィボナッチってどーなってる?(私は分かりません)

AIACADEMYから

n = 100
a, b = 0, 1
while a < n: print(a, end=" ") # endはオプションでスペースを1ついれている処理をしていますが、空白を入れて見やすくしています。 a, b = b , a + b この答えを見ると あーー 横同士を計算して答えを書いて 次は その答えと横を計算して 答えを書いての繰り返しか。 てゆーのはわかるけど どのタイミングで 計算されたのがさっぱり分かりません。 n = 100 a, b = 0, 1 while a < n: print(a, end=" ") a, b = b , a + b printの下にいてるときは今aはなになのか bは何なのか。 上のwhileにいる時点ではaとbは何なのか。 分からん。 本当に困っています。

元記事を表示

クラスのお気持ち #Python

##class Class:
クラスの名前は基本的に大文字で書くことが多い。単なる約束とか慣例と言えばそれまでかもしれないけど,最近ようやくクラスのお気持ちが分かってきた身からするととてもよくできた約束事だと思うのです,英語の規則からして。ここが分かるとインスタンス化という日本人的にはわかり辛い言葉もイメージができる気がしたので記録しておきます。

## a cat , cats , the cats , cat
日本人が英語を勉強するときに永遠に付きまとうのは冠詞の問題ですが,上の4つは全くイメージが異なることはご存じの方も多いでしょう。a cat はその辺にいる一匹の猫。cats は猫ら,わらわら世界におる猫ら。the cats は近所で有名ないたずら好きの猫の集まり。なんもついてないのが一番不安定で,種族とか抽象的な何かといった感じでしょうか。Catというと何かもう猫ってものが世界にはいるよねって感じ。抽象的になってくる。
クラスの名前が大文字にするのはこういうことだと思うのです。クラスの名前が大文字にすると特定される前の何らかの関数の集合であるというイメージが浮かび上がってくる

元記事を表示

光子数基底での光量子計算を実装する(Numpyはえらい)

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$

## 前書き
[こちらの記事](https://qiita.com/ryuNagai/items/df0b69565e4dc24fba62)ではDisplacement Operatorを例に光子数基底での光量子状態の発展を実装しました。
今回は密度演算子表記での状態発展を実装し、Wigner関数を計算します。
状態ベクトル表記ではなく密度演算子表記を用いる理由ですが、率直に言うとウィグナー関数関連の文献が基本的に密度演算子表記で書かれていることです。

余談
(真面目な理由としては、個々の位相情報が不完全なアンサンブル系を考えた時に状態ベクトル表記はボロが出るので密度演算子表記のほうが良いという記述があります[[1]](https://onlin

元記事を表示

Python3入門①~データ型について

##Pythonのデータ型について理解を深める

今回データ型について学んだので記事にしたいと思いました。
(既に先人の方々の記事が沢山あるけどアウトプットを兼ねて)

##Pythonのデータ型(オブジェクト)における各データ型利用時の注意点
まずPythonには、**Mutable**な型と**Immutable**な型がある。
どういうことかというと。。。まずは意味から。
**Immutable** => ***不変***なデータ(Pythonではオブジェクト)
**Mutable** => ***可変***なデータ(Pythonではオブジェクト)
##Ex.
**[Immutable]**

“`python
tmp_str=”JoJo”
tmp_str[3]=”i”
#TypeError: ‘str’ object does not support item assignment
tmp_tuple=(“Dominator”,”Paralyzer”)
tmp_tuple[1]=”Eliminator”
# TypeError: ‘tuple’ object doe

元記事を表示

Python初心者が「Python文法詳解」を読んだメモ #5

# バックナンバー
– [Python初心者が「Python文法詳解」を読んだメモ #1](https://qiita.com/usayomo/items/7024c619c5f72462cb10)
– [Python初心者が「Python文法詳解」を読んだメモ #2](https://qiita.com/usayomo/items/9c1537678bdde813a273)
– [Python初心者が「Python文法詳解」を読んだメモ #3](https://qiita.com/usayomo/items/57e6156c95e60b3223ca)
– [Python初心者が「Python文法詳解」を読んだメモ #4](https://qiita.com/usayomo/items/01fdb8bbe7704da236bb)

# 第4章 シーケンスとコンテナ型
– Pythonでは、一般に配列と呼ばれる順序付きのコレクションを**シーケンス**と呼ぶ
– リスト型、タプル型、文字列型、バイト型など様々なデータ型があるが、いずれも同様に要素の操作ができる

“`py:添字によ

元記事を表示

atcoderで使えそうなpythonスニペット(随時追加していきます)

# atcoderで使えそうなpythonスニペット
こう言う細かいのも自分で書くのだるいな、と思ったので記事にまとめていきます。

入力各種。

“`python

def LI(): return list(map(int, sys.stdin.buffer.readline().split()))
def I(): return int(sys.stdin.buffer.readline())
def LS(): return sys.stdin.buffer.readline().rstrip().decode(‘utf-8’).split()
def S(): return sys.stdin.buffer.readline().rstrip().decode(‘utf-8’)
def IR(n): return [I() for i in range(n)]
def LIR(n): return [LI() for i in range(n)]
def SR(n): return [S() for i in range(n)]
def LSR(n): return [LS

元記事を表示

食べログ3.8問題を時系列で解析してみる(その1)

# はじめに
[一部報道](https://www.itmedia.co.jp/news/articles/1910/10/news134.html)や[konkon3249さんの記事](https://getnews.jp/archives/2248231/)に興味があり、スクレイピングやデータ分析の題材に良さそうな気がした。

konkon3249さんは、最新のデータ(直接食べログのサイトをスクレイピング)について網羅的に調べているようなので、私は時系列で評価の推移を観察して、何か傾向が見られるかどうかPythonや定番のライブラリを使ってやってみた。

# やりたいこと
過去のある時点での評価と口コミ数から、口コミ数が変わっていないのに直近の評価が上下しているケースの有無を調べる。

とりあえず、適当に選んだ高評価の店舗について、試してみることにする。

過去の情報を得るためのデータソースは、インターネットアーカイブの大手であるWayback Machine(https://archive.org/web/) を使った。

その他、実行環境は以下の通り。

#### 実行環

元記事を表示

pythonでfor文の例文を集める

#実行環境
– python 3.7.5
– Windows PowerShell

#rangeを用いる

– 昇順
– 降順
– 逆順

“`python:range.py
>>> for i in range(0, 6):
… print(i)

0
1
2
3
4
5
“`
“`python:decreasing.py
>>> for i in range(6, 0, -1):
… print(i)

6
5
4
3
2
1
“`
“`python:reversed.py
>>> for i in reversed(range(0, 6)):
… print(i)

5
4
3
2
1
0
“`

#listを用いる
“`python:list.py
>>> for i in [3.14, “Hello”, (1, 2, 3)]:
… print(i)

3.14
Hello
(1, 2, 3)
“`

#未分類のもの
– 文字列を扱う[^1]

“`python:string.py
>

元記事を表示

【Twitterの紳士たちへ】.jpg-largeを.jpgに一括変換するscriptを書きました

# What is?
前略

あなたがTwitterでヱロ画像を収集していることを俺は知っている…。
そして`.jpg-large`を毎回ハンドで`.jpg`に直して保存していることも知っている…(してなかったらすみません)。

そんな! あなたに!!朗報です!!!

このスクリプトで崇高なるヱロ画像のファイル名を一括変換しましょう!!!!!

# ダウンロードはこちらから
https://github.com/ykaito39/useful-script-for-photo/tree/master/rename_jpg-XXX_to_jpg

# 使い方
“`bash
$python rename_jpg-XXX_to_jpg.py
“`
※Windows環境でのみ確認

基本的に`.jpg-large`があるディレクトリにコピーしてダブルクリックで実行すれば実行可能です。

# 中身解説
めちゃくちゃ簡単なスクリプトで、自分が初めて作ったまともに使えるスクリプトです。
2年くらい前に作ったものですが、バリバリ現役で使えてます。

#### お

元記事を表示

AtCoder Beginner Contest 145 参戦記

# AtCoder Beginner Contest 145 参戦記

## A – Circle

1分で突破. 書くだけ.

“`python
r = int(input())

print(r * r)
“`

## B – Echo

3分半で突破. 長さが偶数であることを確認することを忘れなければいいだけ.

“`python
from sys import exit

N = int(input())
S = input()

if N % 2 == 1:
print(‘No’)
exit()

if S[:N // 2] == S[N // 2:]:
print(‘Yes’)
else:
print(‘No’)
“`

## C – Average Length

8分で突破. すべての組み合わせの距離の合計を平均を取ればいいのかなって思って書いたら入力例が通ったので提出したら AC 出たけど、解説を読むとまぐれで通っただけかってなった.

“`python
from math import sqrt

N = int(input

元記事を表示

AtCoder 第二回全国統一プログラミング王決定戦予選 参戦記

# AtCoder 第二回全国統一プログラミング王決定戦予選 参戦記

## A – Sum of Two Integers

2分で突破. 書くだけ. ARC の A 問題ってこんなに簡単だっけかと混乱した.

“`python
N = int(input())

print((N – 1) // 2)
“`

## B – Counting of Trees

68分半で突破. WA 6個. WA2個が中々消えずに WA を重ねてしまった. その2個は0が複数あるやつだった…….

“`python
from sys import exit

N = int(input())
D = list(map(int, input().split()))

if D[0] != 0:
print(0)
exit()

c = {}
for i in D:
if i in c:
c[i] += 1
else:
c[i] = 1

if c[0] != 1:
print(0)
exit()

result =

元記事を表示

Python3で日付の月(数字)を英語名に変換する方法

# Pythonでは 月の数字(int型の数値1〜12)から直接、月の英語名へ変換する関数が見当たらなかったの、一手間挟んで出力してみました。

“`python3:ソースコード

# coding: utf-8
import datetime

def MonthNumberToMonthName(month):
date = datetime.date(2000, month, 1) #年と日は自由に設定する
return date.strftime(“%B”)

# 1月から12月まで表示
for month_number in range(12):
month_name = MonthNumberToMonthName(month_number)
print(month_name)
“`

“`qiita:実行結果
January
February
March
April
May
June
July
August
September
October
November
December
“`

以上です。

この処理を単体で使う機会はほ

元記事を表示

Flask入門その1:まずはローカルで動かしてみる&配布用に実行ファイルを作ってみる

# 環境
PC : Mac
開発環境 : Visual Studio Code

# まずはローカルでhello worldを動かす
flaskをインストール

“`
pip install flask
“`

実行

“`python
from flask import Flask
app = Flask(__name__)

@app.route(‘/’)
def hello_world():
return ”’

hello world



”’

if __name__ == ‘__main__’:
app.run()
“`

ブラウザで確認
[http://127.0.0.1:5000/](http://127.0.0.1:5000/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

Twitter API登録が終了しました。

![スクリーンショット 2019-11-16 22.35.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534334/0e3e9764-f389-d176-b9c8-900e6d5cb9df.png)

申請から承認まで、24時間かからなかったですね。
昔の申請は3週間もかかっていたという記事があったので、現在は早くなっているのかもしれません。

これからTwitter APIを使ってデータ分析をしてみたいと思います〜。

元記事を表示

Pythonをexeファイルに変換する方法

Pythonで作成したファイルを、Pythonが入っていないPCで実行したい。
そんな悩みを解決するためのツールをシェアさせていただきます。
あくまで、自分用のメモの拡張版なのでクオリティーに関してはご愛嬌でお願いします。
#1.環境構築
#####コマンドプロンプトの場合

“`:コマンドプロンプト
pip install pyinstaller
“`

#####Anacondaプロンプトの場合。

“`:Anacondaプロンプト
conda install pyinstaller
“`

#2.実行

“`:プロンプト
pyinstaller [ファイル名].py –onefile
“`

#注意点

– 最後のオプションにある`–onefile`の入力を省くとdist内のファイルが複数必要になるので移動がめんどくさくなります。
– inputなどのコマンドプロンプトで入力を求めるものなどは、できないので注意してください。

元記事を表示

OTHERカテゴリの最新記事