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

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

イテレータを操作する関数について(備忘録)

## イテレータとは?
イテレータとは、イテラブル(繰り返し可能)なオブジェクトから要素を取り出すオブジェクトのことです。

※イテラブル…for文を用いて、繰り返し処理ができるオブジェクトのこと。リストやタプルなどがあげられます。

## next関数とiter関数について

next関数は、next(イテレーター) のようにイテレータから要素を一つ取り出して消去することができる関数のこと。最後の要素を取り出し終わり、再度、関数を実行しようとするとstopIterationという例外が発生する。(繰り返し停止の意味)

iter関数とは、指定されたイテラブルに対するイテレーター(iterator)を返す関数のこと。
~~~python
>>> iterater = iter([3, 10, 7])
# インデックス0から順番に取り出していく
>>> next(iterater)
3
>>> next(iterater)
10
>>> next(iterater)
7
# エラーが発生する
>>> next(iterater)
Traceback (most recent call

元記事を表示

【AtCoder】ABC277のA,B,C,D における Python解説

ABC277のA,B,C,D問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、diffは問題の難易度を表す指標です。[Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑 829](https://atcoder.jp/users/tsuru1471)
22/1208 現在

# 目次
[はじめに](#はじめに)
[A.^{-1}](#a-1)
[B.Playing Cards Validation](#bplaying-cards-validation)
[C.Ladder Takaha

元記事を表示

paizaラーニング「二次元配列の入力 3 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_input_step3
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
values = input()
print(values)
“`
#### 解答例
“`Python3
N = int(input())

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

for i in range(N):
for j in range(5):
print(A[i][j], end=””)

if j < 4: print(end=" ") else: pr

元記事を表示

【AtCoder】ABC279のA,B,C,D における Python解説

ABC279 のA,B,C,D問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、diffは問題の難易度を表す指標です。[Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑 829](https://atcoder.jp/users/tsuru1471)
22/1207 現在

# 目次
[はじめに](#はじめに)
[A.wwwvvvvvv](#awwwvvvvvv)
[B.LOOKUP](#blookup)
[C.RANDOM](#crandom)
[D.Freefall](#dfree

元記事を表示

「システム構築を納期までにまにあわせたいのですが、顧客幹部から仕様変更の依頼が来ています」をChatGPTにきいてみた

ChatGPTを試した結果を貼り付けます。参考まで。

![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22985/b65659ff-b572-db5e-bed8-ade287e90b0f.png)

![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22985/abda6ea3-d327-5880-b754-3cd3e6fcc2dc.png)

![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22985/0ffee451-043e-6a26-c145-6f2567cf75b3.png)

![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22985/40d8f311-028b-5d44-8c5d-ec344e04574b.png)

元記事を表示

paizaラーニング「二次元配列の入力 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_input_step2
#### 私の解答
“`Python3
n = int(input())
for i in range(5):
values = input()
print(values)
“`
#### 解答例
“`Python3
M = int(input())

A = [[0] * M for _ in range(5)]
for i in range(5):
values = input().split()
for j in range(M):
A[i][j] = int(values[j])

for i in range(5):
for j in range(M):
print(A[i][j], end=””)

if j < M - 1: print(end=" ") else:

元記事を表示

WindowsのPythonとWSL2/UbuntuのPythonの速度差に驚いた

# はじめに
今回は、ごく些細な話です。
ちょっと意外だったので書いておきます。
# なんかUbuntuの方が速い気がした
僕のPython環境は。
・Windows11にAnaconda/Python3.8
・Windows11のWSL2にインストールしたUbuntu20.04のPython3.8
の2つあります。
どちらもVsCodeから参照して開発・実行できるようにしています。
僕の場合、Pythonはほぼ「自分用ツール作成」に使ってます。
なので、Windows用とUbuntu用をいったりきたりすることが多いですが、なんとなく、同じような処理やテストコードを書いているのに、Ubuntuのpythonの方がなんか速い気がしていました。
# 簡単なコードでベンチマークしてみた
感覚だけではモヤっとするので、以下のような簡単なコードで試してみることにしました。
“`
import time

def hoge(x, n):
for i in range(n):
x = 1 / (x * (x – 1)) + 4.6
return x

s

元記事を表示

python クロージャとスコープ(備忘録)

## コードを読んでみよう!

~~~python
def sort_exam(values, group):
def closure(x):
if x in group:
return (0, x)
return (1, x)
values.sort(key=closure)

numbers = [9, 3, 1, 5, 2, 10, 100, 0]
group = {3, 9, 2}
sort_exam(numbers, group)
print(numbers)

>>>
[2, 3, 9, 0, 1, 5, 10, 100]
~~~
このコードを見たとき、不思議に思った人もいるかもしれません(いないかもしれません)。
そもそも、なんで出力結果が、数字の大きさ順に並んでいないのでしょうか。インデクスが3以上の要素は、数字の大きさ順に並んでいます。group変数で定義されている集合の要素「3」「9」「2」がソート結果の左端(インデックスが3未満)に固まっています。このコードを読み解くために順番にポイントを見て

元記事を表示

InfluxDB v1.8: python3 でデータの挿入

次のページを参考にしました。
[データ投入処理](https://qiita.com/chroju/items/355f3c6da9f8c4867ba5#%E3%83%87%E3%83%BC%E3%82%BF%E6%8A%95%E5%85%A5%E5%87%A6%E7%90%86)

Ubuntu 22.10 でのライブラリーのインストール

“`bash
sudo apt install python3-influxdb
“`

## プログラム

“`py:influxdb_insert.py
#! /usr/bin/python
#
# influxdb_insert.py
#
# Dec/07/2022
# ——————————————————————
import sys
import time
from influxdb import InfluxDBClient

# —————————————————

元記事を表示

Python書けなくてもPokeConで自動化 pokecon-extensions.simplifier紹介

# はじめに

「PokeConはPythonを書けないとプログラムを作成できないので敷居が高い」みたいな話を見かけたので、私の虎の子[pokecon-extensions](https://github.com/mukai1011/pokecon-extensions)から、Pythonを書けなくてもPokeCon自動化プログラムを作成できるライブラリ`simplifier`を紹介します。

比較的導入の難易度が高いです。正しくインストールできるならPython書けるでしょってかんじ(???)

# 導入

**Poke-Controller MODIDIEDと同じPython環境**に、`pip install`します。ろっこくさんのバッチファイルで導入したなら、`git`コマンドを使えたはずです。たしか環境はグローバルのPython 3.7だったはず。

“`powershell
cd Poke-Controller-Modified\SerialController\Commands\PythonCommands\
git clone https://github.com/m

元記事を表示

さくらVPSにPython+Selenium+GoogleChromeを入れて実行する

Chromeを起動してWEBページにアクセスし、スクレイピングするために色々やった備忘録です。
・ドライバーは自動で更新したい
・後々APIにする予定なのでHTTPでアクセスできるようにする(SSL化も)

まとめるために何度かやったんですが1回でうまくいった試しがありません。
とにかくエラー出たら落ち着いて確認。

# 環境
さくらVPS
ubuntu 18.04 and64

# Pythonのインストール
Pythonを入れるために[pyenv](https://github.com/pyenv/pyenv)をインストールします。
いらない場合は飛ばしてください。

## pyenvをインストール
まずは依存パッケージをインストールします。
githubに必要なパッケージがOS毎にかかれているのでコピペ。
https://github.com/pyenv/pyenv/wiki

“`ssh
sudo apt update
sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev librea

元記事を表示

Cloud Functionsで文字コードを変換する

本記事は[GCP(Google Cloud Platform) Advent Calendar 2022 7日目](https://qiita.com/advent-calendar/2022/gcp)の記事です。

## 概要

Shift-JISのCSVファイルをBigQueryにアップロードする場合、UTF-8に変換する必要があります。毎回ローカルで文字コード変換していたのですが、めんどくさくなってきたのでCloud Functionsを使って自動化しようと思います。調べると同じような事に課題を感じている人は多くやり方を記述されたブログも見つけましたが自分としてはサービスアカウントなどの設定で結構詰まったのでその辺も調べて書きました。

#### 今回作るもの
* Google StrageバケットにアップロードされたShift-JISのファイルをUTF-8に変換して、別のバケットに保存するもの。
* トリガーはGoogle Strageにファイルがアップロードされた時とする。
#### 今回対象としないこと
* 対象ファイルが大容量の場合
* Cloud F

元記事を表示

paizaラーニング「二次元配列の入力 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_input_step1
#### 私の解答
“`Python3
li = [[1, 3, 5, 7], [8, 1, 3, 8]]
for i in range(len(li)):
print(*li[i])
“`
@WolfMoon先生の模範解答を参考にさせていただきました。
ありがとうございます。
#### 解答例
“`Python3
li = [[1, 3, 5, 7], [8, 1, 3, 8]]
for i in range(len(li)):
for j in range(len(li[i])):
print(li[i][j], end=””)

if j < len(li[i]) - 1: print(end=" ") else: print() ```

元記事を表示

paizaラーニング「i 行目 j 列目の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step6
#### 私の解答
“`Python3
li = [[1, 2, 3], [8, 1, 3], [10, 100, 1]]
print(li[1][2])
“`
解答例と全く同じになりました!!
#### 解答例
“`Python3
li = [[1, 2, 3], [8, 1, 3], [10, 100, 1]]
print(li[1][2])
“`

元記事を表示

paizaラーニング「各行の要素数の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step5
#### 私の解答
“`Python3
li = [[1],[2, 3],[4, 5, 6]]
for i in range(len(li)):
print(len(li[i]))
“`
#### 解答例
“`Python3
li = [[1], [2, 3], [4, 5, 6]]
for ele_li in li:
print(len(ele_li))
“`
– for ele_li in li: で変数 ele_li に変数 li の各要素が順に代入されます。
– for ele_li in li: のループ処理内で、len 関数を用いて変数 ele_li の要素数を出力することで求められている出力ができます。

元記事を表示

paizaラーニング「列数の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step4
#### 私の解答
“`Python
li = [[1, 2, 3, 4], [6, 5, 4, 3], [8, 1, 3, 1]]
print(len(li[0]))
“`
前出の問題の解答例を参考にしたので、解答例と同じになりました。
#### 解答例
“`Python
li = [[1, 2, 3, 4], [6, 5, 4, 3], [3, 1, 8, 1]]
print(len(li[0]))
“`

元記事を表示

paizaラーニング「行数の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step3
#### 私の解答
“`Python3
li = [[1, 2, 3],[ 4, 5, 6], [8, 1, 3]]
print(len(li))
“`
前出の問題の解答例を参考にしたので、解答例と同じになりました。

#### 解答例
“`Python3
li = [[1, 2, 3], [4, 5, 6], [8, 1, 3]]
print(len(li))
“`

元記事を表示

Elastic Cloud, App Search, Docker, Python, React Search UI を使った Elastic サンプルアプリのご紹介

## 開発者にリッチな検索ソリューションの構築方法を紹介するエンドツーエンドのデモ
皆様こんにちは!
公開は既に半年ほど前になりますが、良いコンテンツなのでこの機会にブログにしておきますね。[第48回 Elasticsearch勉強会 2022.6.29 #elasticsearchjp](https://www.meetup.com/ja-JP/tokyo-elastic-fantastics/events/286154124/) のセッションでご紹介した簡単なチュートリアル、Elastiflix です。
当日のスライドは[こちら](https://www.slideshare.net/shosuz/building-a-search-experience-with-elastic-introducing-elastics-latest-sample-apps-using-app-search-elastic-cloud-docker-python-and-react-search-uipdf) になります。
これは Elastic 本社の Product Marketing Man

元記事を表示

paizaラーニング「全要素の出力 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__2dmatrix_output_step2
#### 私の解答
“`Python3
a = [6, 5, 4, 3, 2, 1]
b = [3, 1, 8, 8, 1, 3]
for i in range(5):
print(a[i],end=” “)
print(a[5])
for j in range(5):
print(b[j],end=” “)
print(b[5])
“`
私の解答はカッコ悪いですね。。。
#### 解答例
“`Python3
li = [[6, 5, 4, 3, 2, 1], [3, 1, 8, 8, 1, 3]]

for i in range(len(li)):
for j in range(len(li[i])):
print(li[i][j], end=””)

if j < len(li[i]) - 1: print(end=" ")

元記事を表示

python key関数を用いたソートを行おう!(備忘録)

## sortメソッドについて
組み込み型にlistは、いろいろな基準でlistの要素を順序で整列するsortメソッドが存在する!

~~~python
# sort()を用いてlist内の要素を小さいものから大きいものに並び変える
numbers = [100, 38, 2, 13, 67]
numbers.sort()
print(numbers)

# 出力結果
>>>
[2, 13, 38, 67, 100]
~~~

sortメソッドは、文字列や、浮動小数点数などでは動作するが、オブジェクトでは動作しない。
~~~python
class stationary:
def __init__(self, name, weight):
self.name = name
self.weight = weight

def __repr__(self):
return f’stationary({self.name!r}, {self.weight})’

various_stationery = [

元記事を表示

OTHERカテゴリの最新記事