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

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

[python] ISO8601 UTC文字列からJST datetime変換

# pythonでUTC文字列をJST datetimeへ切り替える方法

“`python:
from datetime import datetime, timezone, timedelta

str_utc = ‘2022-12-05T04:58:38Z’
dt_jst = datetime.strptime(str_utc, ‘%Y-%m-%dT%H:%M:%SZ’).replace(tzinfo=timezone(timedelta(hours=0))).astimezone(tz=timezone(timedelta(hours=+9)))
print(‘{}’.format(dt_jst.strftime(‘%Y-%m-%d %H:%M:%S %z’)))
“`
以下出力
“`
2022-12-05 13:58:38 +0900
“`

1. strptimeだとtimezoneが付けられないので[replace](https://docs.python.org/ja/3/library/datetime.html#datetime.datetime.repla

元記事を表示

アルゴリズム実技検定(PAST) 第11回 G問題 Python解答例(木の判定)

Supershipの名畑です。
今年も残り3日半ですね。

前回の記事[アルゴリズム実技検定(PAST) 第11回 F問題 Python解答例](https://qiita.com/nabata/items/397d916545e6d74926e3)の続きです。
アルゴリズム実技検定(PAST)の過去問シリーズです。第11回G問題の私の解答例(Python3)を公開します。

:::note info
そもそもアルゴリズム実技検定ってなんですか? という方は[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)をご覧いただけますと幸いです。
:::

## 第11回 G問題 木の判定

### 問題

[G – 木の判定](https://atcoder.jp/contests/past202206-open/tasks/past202206_g)

### 言語

– Python (3.8.2)

### 解答例

グラフにおける木の条件を

元記事を表示

ZeroNetを使う

# きっかけ
こういうの興味あったから

# 環境
– Ubuntu22.04 LTS
– Python3.9.7

# 注意
なんかこの記事を書いてたら公式の方のissueに[不穏な内容のissue](https://github.com/HelloZeroNet/ZeroNet/issues/2823)が上がってました

もしかしたらZeroNetXを使うほうがいいかも?

本記事の内容を試すのは**自己責任**でお願いします

# やってく
早速公式サイトからd……って言いたいところですが、**実はZeroNetの公式Githubの更新は一年以上されていません**

さらに、**TorのOnion v3に対応していません**

~~終いにはissueで「開発者どこいったん?」と聞かれる始末~~

ちなみに実際に使ってみましたが、**結構遅いです**

Non Peerがずっと表示される

以上の理由から公式のやつは使いません

# 代替品
[zeronet-conservancy](https://github.com/zeronet-conservancy/zeronet-co

元記事を表示

paizaラーニング『フィボナッチ数』

https://paiza.jp/works/mondai/array_primer/array_primer__fibo

解らなかったです。。。

#### 解答例
“`Python3
N = int(input())

fibo = [0] * N
fibo[0] = 0
fibo[1] = 1

for i in range(2, N):
fibo[i] = fibo[i – 2] + fibo[i – 1]

for ele in fibo:
print(ele)
“`

元記事を表示

paizaラーニング「二点間の距離 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step2
#### 私の解答
“`Python3
N, A, B = map(int,input().split())

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])

print(abs(X[A-1] – X[B-1]) + abs(Y[A-1] – Y[B-1]))
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
A = int(values[1])
B = int(values[2])

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i]

元記事を表示

paizaラーニング「二点間の距離 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step1
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
values = input().split()
ans = abs(int(values[0]) – 2) + abs(int(values[1]) – 3)
print(ans)
“`
#### 解答例
“`Python3
N = int(input())

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])

for i in range(N):
print(abs(X[i] – 2) + abs(Y[i] – 3))
“`

元記事を表示

paizaラーニング「ある数以上以下の要素の列挙 3 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step3
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
total = sum(a)
k = total/n
for ele in a:
if ele >= k:
print(ele)
“`
#### 解答例1
“`Python3
N = int(input())

avg = 0
A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])
avg += A[i]

avg /= N
for a in A:
if a >= avg:
print(a)
“`
#### 解答例2
“`Python3
N = int(input())
A = [int(x) for x in input().

元記事を表示

paizaラーニング「ある数以上以下の要素の列挙 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step2
#### 私の解答
“`Python3
n, k = map(int,input().split())
a = list(map(int, input().split()))
for ele in a:
if ele >= k:
print(ele)
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
K = int(values[1])

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

for a in A:
if a >= K:
print(a)
“`

元記事を表示

paizaラーニング「ある数以上以下の要素の列挙 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step1
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
for ele in a:
if ele >= 5:
print(ele)
“`
#### 解答例
“`Python3
N = int(input())

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

for a in A:
if a >= 5:
print(a)
“`

元記事を表示

paizaラーニング「配列の最大最小 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_minmax
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
print(max(a), min(a))
“`
#### 解答例1
“`Python3
N = int(input())

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

sorted_A = sorted(A)
print(sorted_A[N – 1], sorted_A[0])

“`
#### 解答例2
“`Python3
N = int(input())
A = [int(x) for x in input().split()]

print(max(A), min(A))

“`

元記事を表示

paizaラーニング「重複の削除 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__deduplication
#### 私の解答
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]

new_li = []

for ele in li:
if ele not in new_li:
new_li.append(ele)

sorted_new_li = sorted(new_li)
for ele in sorted_new_li:
print(ele)
“`
#### 解答例
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]

li_set = set(li)
sorted_li_set = sorted(li_set)

for ele in sorted_li_set:
print(ele)
“`
set(li)で重複の削除を行うことを覚えました。

元記事を表示

【Django】 TemplateViewを使ってFormページを作る

Templateviewを使ってFormページを作ろうとしたときに
思ったよりハマったのでTemplateviewを使ってListページを作る方法をまとめました

# 概要
TemplateViewを使ってFromページを作成する方法です

# この記事で伝えたいこと
– Templateviewを使ったFormページの作り方

# 結論

ModelFormMixinを継承する

“`app1_views.py
from django.views.generic.edit import ModelFormMixin
from django.views.generic import TemplateView, ListView
from django.urls import reverse_lazy

from .forms import TestDataModelForm
from .models import TestData

class IndexView(TemplateView, ModelFormMixin):
template_name: str = “a

元記事を表示

【python】勉強メモ 速習Flask⑤

## はじめに
今回は、登録された記事の削除処理を行います。
以下の記事の続きとなります。
[【python】勉強メモ 速習Flask①](https://qiita.com/qiitataro/items/d9b4b44255ae5082838a)
[【python】勉強メモ 速習Flask②](https://qiita.com/qiitataro/items/682faa9749d596cb3496)
[【python】勉強メモ 速習Flask③](https://qiita.com/qiitataro/items/5f12300c4b238d2b6170)

## 削除処理について
index.htmlとapp.pyを編集する。新たにdelete用にファイルを作成する必要は無し。
“`index.html
{% extends “base.html” %}
{% block content %}

ブログアプリケーション

新規作成画面
{% for post in posts %}

元記事を表示

Discord.pyV2.0にてcogとSlashCommandを一緒に使う方法

# 前置き
本記事では**discord.py 2.0**を使います。
まだダウンロードしてない場合は
“`shell:cmd
$ python -m pip install -U discord
“`
でインストールしてください

# 1.commands.Botには…?
discord.pyV2.0にはSlashCommandを使うための`app_commands`が入ってます。
`discord.Client`は別の記事でも言いましたが`tree = app_commands.CommandTree`を定義する必要がありました。ですが`commands.Bot`には`app_commands`が入った`discord.Client`を継承してるので定義は必要ないです。

# 2.実際に試してみる
“`py:main.py
import discord
from discord import app_commands
from discord.ext import commands

INITAL_EXTENSIONS = [
“cogs.help”,

元記事を表示

アルゴリズム実技検定(PAST) 第11回 F問題 Python解答例

Supership VPoEの名畑です。
趣味で競プロやっています。

アルゴリズム実技検定(PAST)の過去問題解答例シリーズです。[アルゴリズム実技検定(PAST) 第11回 E問題 Python解答例(二分探索)](https://qiita.com/nabata/items/ad3797a54658bbc410eb)の続きです。

今回は第11回のF問題の私の解答例(Python3)を公開します。

ちなみにA問題からF問題までの合計点が46点なので、ここまで来れば初級(45点)ですね。
[高橋様のつぶやき(2019年時点)](https://twitter.com/chokudai/status/1196371845563346944)によるとAtCoderでは茶色相当ってことになります。

:::note info
そもそもアルゴリズム実技検定ってなんですか? という方は[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)をご覧い

元記事を表示

paiza メモ

1 2 3   # 入力値(文字列で与えられた設定値)
H, W, N = map(int, input().split())

結果(スペース(省略)で分割して、数値化して、変数に入る)
H = 1 ; W = 2 ; N = 3
======================================
1 2 3   # 入力値(1行目)
4 5 6   # 入力値(2行目)
H = 2   # 行数をHとして
P = [list(map(int,input().split())) for _ in range(H)];

結果
P = [[1,2,3],[4,5,6]]
======================================
ABCD   # 入力値(連続で与えられた配列値)
S = list(input())

結果(1文字ずつ分割して配列に)
S = [“A”,”B”,”C”,”D”]

======================================
ABCD   # 入力値(1行目)
EFGH   # 入力値(2行目)
H = 2  

元記事を表示

【FastText】簡単な精度向上術

## 前置き
Twitterのツイートを分類するAIを開発する中で、分かったことやハマったことについて共有してきたいと思います。
FastTextの設定で改善できることは微細かつ、分類内容によるので今回は取り上げません。
主にクレイジングについて熱く語っていこうと思います。

## 絵文字について
FastTextに絵文字を読み込ませると絶望的な精度になります。
本当に絵文字の除去は徹底してくださいね。

“`Python:exsample.py
# テキスト
text = “ほげほげ!?”
bytes_emoji = text.encode(‘shift-jis’, errors=’ignore’)
text = bytes_emoji.decode(‘shift-jis’, errors=’ignore’)
“`
大抵これで絵文字は消えるはずです。

しかし、ツイッター上では絵文字がコミュニケーションで多用されています。
例えば…

〔絵文字除去する場合〕
「?が食べたい」→「が食べたい」

この様にツイートの意図が読めなくなってしまい、精度が大幅に落ちてしまいます。
そこ

元記事を表示

【Tkinter】ネット上の画像を表示する方法

## 前置き
私はPythonのシステム開発でTkinterを使用するのですが、ネット上の画像を表示するために奮闘していました。
便利なライブラリを見つけましたので共有したいと思います。

## どんなライブラリ?
「tkhtmlview」というtkinter上にHTMLを表示できるライブラリです。

【参考】
https://torimakujoukyou.com/python-tkinter-htmllabel/

## インストール
pipインストールでOKです!
“`:cmd
>>pip install tkhtmlview
“`
## サンプル
“`Python:exsample.py
from tkhtmlview import HTMLLabel
import tkinter as tk

root = tk.Tk()
root.title(“テスト”)
root.geometry(“800×500”)

# 画像表示(※「ここにURL」と書かれた箇所に画像のURLアドレスを入力してください)
html_label = HTMLLabel(root, html=

元記事を表示

【python】勉強メモ 速習Flask④

### DB更新(記事編集)

[【python】勉強メモ 速習Flask③](https://qiita.com/qiitataro/items/5f12300c4b238d2b6170)の続きとなります。

以下の様に変更。htmlファイルは変更の必要はありません。

“`app.py
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz

app = Flask(__name__)
app.config[“SQLALCHEMY_DATABASE_URI”] = “sqlite:///blog.db”
db = SQLAlchemy(app)

class Post(db.Model):
id = db.Column(db.Integer, p

元記事を表示

tkinterを使って、エクセルファイルを選択⇒読み込む

概要

簡単なファイル選択&データ読み込みをTkinterとpandasを用いて実行する。
複数のファイルを選択することも可能だが、今回は1つずつ選択すること想定する。

python コード

import tkinter as tk
import tkinter.filedialog
import pandas as pd

def dialog_test():
# ルートウィンドウ作成
root = tk.Tk()
# ルートウィンドウの非表示
root.withdraw()
# ファイル選択
filetypes = [(“データファイル”, “*.xlsx *.xlsm *.csv”), (“Excel ブック”, “*.xlsx”), (“Excel マクロ有効ブック”, “*.xlsm”), (“CSV (コンマ区切り)”, “*.csv”)]
target_file = tkinter.filedialog.askopenfilename(filetypes=filetypes, t

元記事を表示

OTHERカテゴリの最新記事