Python3関連のことを調べてみた2021年02月26日

Python3関連のことを調べてみた2021年02月26日

【Django】forms.pyでログインユーザーに応じてテキストフィールドをdisabledしたい

ログインユーザーに応じてフォームのあるフィールドを入力不可にしたい。

参考
https://qiita.com/The-town/items/4b5718ccfc488edd93c8

Formのインスタンス作成時にuserを渡してもらう

“`forms.py

class Form(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
self.current_user = user
super().__init__(*args, **kwargs)
for field in self.fields.values():
if str(self.current_user) == “hoge”: # hogeならdisabled
field.widget.attrs[“disabled”] = “”
class Meta:
model = Hoge

元記事を表示

[デイリーコーディング]リスト内の数値の正の数、負の数、ゼロそれぞれの割合を表示する

# 今日の問題: リスト内に入っている整数の正の数、負の数、ゼロそれぞれ合計し、リスト全体から見た各割合を出せ(小数点6桁四捨五入)

“`python:回答
def plusMinus(arr):
size = len(arr)
plus = [i for i in arr if i > 0]
minus = [i for i in arr if i < 0] zero = [i for i in arr if i is 0] print('{:.6g}'.format(len(plus) / size)) print('{:.6g}'.format(len(minus) / size)) print('{:.6g}'.format(len(zero) / size)) if __name__ == '__main__': arr = [-4, 3, -9, 0, 4, 1] plusMinus(arr) ``` ```python:結果 0.5 0.333333 0.166667 ``` ベターな回答: ```python de

元記事を表示

Nintendo Switchの画像をひとつのディレクトリに集結させたい

おうち時間の増加によってさらなる売上を伸ばしているらしい[ニンテンドースイッチ](https://www.nintendo.co.jp/hardware/switch/)。

ゲーム画面のスクリーンショットをワンタッチで撮影することができるボタンを備えていて、撮影した写真をスマホに送ったり、直接SNSに投稿したりすることができます。

# 前提

## 画像のディレクトリ構成

画像は本体またはSDカードに保存されますが、SDカードをPCに差し込んで中を除くと以下のようなディレクトリ構成になっていることがわかります。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59926/7e6b0552-7058-364d-88ab-856133c730de.png)
**年 / 月 / 日 / 年月日時間_xxxxxxxxx.jpg**

### メリット

– 画像が撮影日ごとになっているのは単純にわかりやすい
– 「ああ、この時こんなソフトで遊んでたなあ」と思い出に更けやすい

### デメ

元記事を表示

paiza D「一番小さい値」でのミス例(python)

〈ミス1〉

“`python
input_line = list(map(int,input().split()))
print(min(input_line))
“`
出力 10
エラー なし

〈ミス2〉

“`python
try:
N = int(input())
a = []

except EOFError:
pass

for i in range(N):
a.append(int(input()))
print(a)
“`
出力 なし
エラー Runtime error
Traceback (most recent call last):
File “Main.py”, line 12, in
a.append(int(input()))
EOFError: EOF when reading a line

元記事を表示

Python : 入力待ち(wait for input)のsubprocessにinputを送る

# 概要

subprocessで起動したプロセスが入力待ちになったタイミングで、外部から入力を送りたい場面があります。
業務の中でPythonでこれを行うときになかなか苦戦したので記しておきます。

# 標準入出力
サブプロセスとして起動する以下のようなプログラムを想定します。

“` python:sub.py

import time

if __name__ == “__main__”:
while True:
time.sleep(5)
user_input = input(“wait for input :”)
print(f”User Input is {user_input}”)
“`

五秒ごとにユーザーからの入力を受け付けるいたってシンプルなプログラムです。
これをサブプロセスとしてメインプロセスから起動します。

“` python:__main__.py
from subprocess import Popen
import sys
import time

p = Popen(
args=[

元記事を表示

「Google Colaboratory(GPU)上でBERTのチュートリアルを行う」の2021年2月24日時点での修正点

# 本記事の目的
 @Yuu94 様の[「Google Colaboratory(GPU)上でBERTのチュートリアルを行う」](https://qiita.com/Yuu94/items/e20373ecada2afa2cb4d)に従って BERT のチュートリアルをやってみました。内容自体はわかりやすく BERT の動作を簡単に学べるのですが、執筆時点から Google Colaboratory かそこで使われている Python のバージョンかが変わったことが原因と思われるエラーが一部で発生していました。そこで、こちらで2021年2月24日に実行した際に詰まった部分とその対処方法を共有させていただきます。
(本家記事様への編集リクエストという方法も考えましたが、編集リクエスト内容が本当に正しいのかあちら側で検証する手間が発生してしまうことを鑑みて、独立した記事での投稿といたしました。読者の皆様におかれましては本記事公開後に本家記事様が更新され既にエラー箇所が修正されている可能性についてご留意ください。)

# [GoogleDriveをマウント](https://qiita.co

元記事を表示

Googleカレンダーの作業記録から出勤簿を作成したい(前編)

#はじめに

僕が所属している研究室では,自分の研究以外の活動(企業や他大学との共同研究やプロジェクト)に関わると,その時間分だけアルバイト代をもらえるようになっています.

アルバイト代を申請するためには,毎月末「出勤簿」と呼んでいる用紙を印刷し活動内容と活動日時を手書きで書いて大学に提出します.大した作業ではないのかもしれませんが,怠惰な僕には耐えられなかったのである程度自動化してみようと思います.

#どうやるか

まず何らかの形で日々の活動内容を記録しておく必要があります.そのためにGoogle Calendarを利用し,Google Calendar APIでその記録を取り出そうと思います.研究室メンバーはGoogle Calendarで予定を作ったり確認したりするのが習慣づいてるので,Google Calendarを使えば他のメンバーに布教できるし活動を記録するハードルが低くなる気がします.

次にその活動記録から出勤簿を生成します.出勤簿には決められたフォーマット(PDFとExcel)があるので,それに書き込むようにします.本当はExcelファイルに書き込みたかったのです

元記事を表示

‘DataFrame’ object has no attribute ‘ix’の解決法

#はじめに
オライリージャパンの「Pythonではじめる機械学習」の4章のp.210の以下のコードを打ち込んだ時,エラーが発生しました.

“`python
features = data_dummies.ix[:,”age”:”occupation_ Transport-moving”]
#NumPy配列を取り出す
X = features.values
y = data_dummies[“income_ >50K”].values
print(“X.shape: {} y.shape: {}”.format(X.shape,y.shape))
“`
エラー内容

“`python
‘DataFrame’ object has no attribute ‘ix’
“`
#解決法
調べてみると,2020年2月に導入されたpandas-1.0.0で,以前バージョン0.7.3まで使用できたDataFrameの.ixが廃止されたそうです.
しかし,代わりにlocを用いることで解決できます.

“`python
features = data_dummies.loc[:,”age”:

元記事を表示

GraphQLの採用についての考察

## はじめに

技術調査として前から気になっていたGraphQLを調査したので今後、新規プロジェクトにおいて採用できるかの考察をまとめておきます。
※ 今回は、REST APIと比較してGraphQLの利点と使いどろこをまとめています

## 検証環境

– OS: macOS
– python 3.9
– Web Framework: FastAPI
– Front: React.js & Material UI

## GraphQLとは
[GraphQL | A query language for your API](https://graphql.org/)
Facebookが開発元のオープンソースでREST APIと同じく特定エンドポイントにリクエストをしてレスポンスを受け取る仕組みにかわりはないのですが以下の点が違います

**・Rest API**
同一エンドポイントに対してデータ取得・登録・更新などの処理をGET・POST・PATCHなどのHTTPメソッドの使いわけによって行う。
また以下のユーザー情報に関してのリソースに対しては`/user`というパスになってい

元記事を表示

Pythonで自動予約を作る

#はじめに
予約制の施設を使うことになったが、ネット予約がいちいち面倒なので、自動化を試みる。
使うのはPython3とseleniumである。

#環境
・MacOS High Sierra ver10.13.6
・Python3

#自動ログイン
先ずは予約画面に入るための自動ログインを行う。

“`autolog.py
from selenium import webdriver
driver=webdriver.Chrome(“パス”)
url=”https://www.google.com”
driver.get(url)
#urlを開く
login_id=driver.find_element_by_xpath(“//input[@id=’txtUserID’]”)
login_pw=driver.find_element_by_xpath(“//input[@id=’txtpassword’]”)
#IDとpassの打ち込みformの取得
userid=”ID”
userpw=”PASS”
login_id.send_keys(userid)
login_pw.send

元記事を表示

AtCoder初心者によるAtCoder初心者がコケたポイント集

最近AtCoderを始めました。
3回しか参加していないのでまだ灰色です。できたら水色くらいまで行きたいな〜〜〜と思っています(願望)。
何回かやってみて、レベルの高い低いは置いといてコケた箇所を備忘録としてまとめておきました。
プログラミング上手いマンにとっては常識だと思いますが、初心者にとってはあるある(多分)なので生暖かい目で見守っていただけると嬉しいです。
使用言語はpython3です。

# 切り捨て徐算するときはint(A/B)ではなくA//Bを使うべし
[ARC112 B問題](https://atcoder.jp/contests/arc112/tasks/arc112_b)
コストをかけて整数を1引いたり-1倍したりする問題。
問題の本質的な部分ではないのですが、ある値Cを2で割った商の切り捨てを算出する必要がありました。
なので、int(C/2)としてその値を出しました。
【結果】
WA(これだけが原因ではないですが)
【原因】
浮動小数点の有効桁数。int(C/2)でははじめにC/2をfloatとして算出して、切り捨てを行う。floatは桁落ちが発生するので、Cが

元記事を表示

[実践編]discord.pyでdiscordのBotを作ってみよう!

# はじめに
**21/2/24 三部運用編を書いている途中です。**
実践編もちょっとだけ追記する予定です。

プログラミングの基礎文法は理解した。
でも、**「どう書けばいいか分からないよ!!」**という人向けの記事になります。

準備編、実践編、運用編の三部構成になっています。

一部 [準備編]discord.pyでdiscordのbotを作ってみよう!
二部 ←今ここ
三部 [運用編]discord.pyでdiscordのbotを作ってみよう!

**記事は全編通して、基本操作するOSはWindows10を使用しています。**

# Step0.

元記事を表示

図形だけで初音ミクを描く【OpenCV】

# 0. はじめに
– OpenCVの図形を描画する関数を用いて,初音ミクを描きました.
![miku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484145/699b30c8-23e0-7d7f-2912-f09170ef2bc3.png)

※ この作品はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を描いたものです
# 1. OpenCVの図形描画関数
– [こちら](https://note.nkmk.me/python-opencv-draw-function/)のサイトを参考にさせていただいております.

### 共通引数
– `img`:図形を描画する画像
– `pt1`:始点
– `pt2`:終点
– `center`:円の中心
– `color`:色(今回はカラー画像で(Blue, Green, Red)で指定する)

元記事を表示

[準備編]discord.pyでdiscordのBotを作ってみよう!

# はじめに
**21/2/24 三部運用編を書いている途中です。**

プログラミングの基礎文法は理解した。
でも、**「何を準備すればいいのか分からないよ!!」**という人向けの記事になります。

準備編、実践編、運用編の三部構成になっています。

一部 ←今ここ
二部 [実践編]discord.pyでdiscordのbotを作ってみよう!
三部 [運用編]discord.pyでdiscordのbotを作ってみよう!

**記事は全編通して、基本操作するOSはWindows10を使用しています。**

# Step0. discordの準備
discor

元記事を表示

【Python】FizzBuzzで理解するジェネレータの特長(主に消費メモリ)

# この記事でやってること

FizzBuzzを関数、ジェネレータでそれぞれ実装し、メモリ消費量と処理順序を比較する(ことでジェネレータの特長を理解する)。

# 環境

“`sh
$ python3 –version
Python 3.8.5

uname -o
GNU/Linux

$ uname -p
x86_64
“`

# 基本のソースコード

まずは通常の関数とジェネレータでそれぞれ FizzBuzz を実装。

## 関数

“`python
def fizzbuzz(nums):
result = []
for num in nums:
if num % 15 == 0:
result.append(‘Fizz Buzz’)
elif num % 5 == 0:
result.append(‘Buzz’)
elif num % 3 == 0:
result.append(‘Fizz’)
else:

元記事を表示

pyautoguiを使ってタイピングを自動化してみる【高速化編】

# 目的

[前回](https://qiita.com/mickie895/items/a7733a6dd70a29c204a0)の続き。
人間にはどうしようもないレベルまで行くことを目指す。

# 現時点の課題

とりあえず、OpenCVとPillowの相互変換の部分や、判定の順番などに手を加えてみたが、タイプ出来た文字数が400文字が420文字になるぐらいで大きな効果はなかった。

なのでコードでどこの部分に時間が取られているかをプロファイリングしてみよう。参考にしたのは下記のページ。

https://qiita.com/masashi127/items/ca092c13e1300f4f6ade

気になった部分を抜粋したのが下記の部分。何らかの原因で文字を打つたびにsleepが入っているようだった。

| ncalls | tottime | percall | cumtime | percall | filename:lineno(function) |
|:——-|:——–|:——–|:——–|:——–|:———

元記事を表示

Seleniumチートシート

#SeleniumでDOM要素を選択する方法
##DOMの中から最初に見つかった要素を1つだけ取得

|メソッド名|説明|
|—|—|
|find_element_by_id(id)|id属性から要素を1つ取得|
|find_element_by_name(name)|name属性から要素を1つ取得|
|find_element_by_css_selector(query)|CSSセレクターを指定して要素を1つ取得|
|find_element_by_xpath(query)|XPathを利用して要素を1つ取得|
|find_element_by_tag_name(name)|タグ名nameの要素を1つ取得|
|find_element_by_partial_link_text(text)|リンクの子要素を含むテキストから要素を1つ取得|
|find_element_by_class_name(name)|クラス名nameから要素を1つ取得|

##DOMの中にある全ての要素を取得

|メソッド名|説明|
|—|—|
|find_elements_by_css_

元記事を表示

【随時更新】学習記録

##学習記録

### TensorFlow関連
| 日付 | タイトル | 学習時間 | 感想 |
| —- | —- | —- | —- |
| 2021/02/23 | Tensorflowの環境構築 | 3h | Pythonバージョンを指定した仮想環境に手こずり一時中断.Dockerで環境構築する方針に変更. |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |

### Docker関連
| 日付 | タイトル | 学習時間 | 感想 |
| —- | —- | —- | —- |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |

## 学習用リンク
コメント書く

元記事を表示

【準備編】Discord.py Botとりあえず作ってみる

こんにちは Taitaitatataです。
Botって便利ですよね。「MEE6」とか「顔文字で返してくるうざいBot」とか、
そいうやつ作ってみませんか?
この記事は[Discord.py](https://qiita.com/tags/discord.py)を使ってBotを作るという記事です。
**この記事はとりあえず作ってみたい人向けの記事です**
#環境
OS: Ubuntu 20.10
テキストエディタ:Visual Studio Code
言語: Python3.8
#下準備
###Bot用のトークン作成
まずはBotを作るためにトークンを取得する必要があります。
これは[Discord Developer Portal](https://discord.com/developer)から発行されます。
####Discord developer portalにアプリケーション登録をする
まずBotを作る前にアプリとして登録します
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73064

元記事を表示

株の自動売買プログラムつくろう その1

test
学びをここに書いていく

元記事を表示

OTHERカテゴリの最新記事