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

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

[CICD#0]DockerfileによるCentOS7コンテナの構築 ※現在(2022/11/29時点)作成中

gilab+ansible+gitlab-runnerでITインフラのCI/CDを実現するプロセス
※環境構築も本記事も絶賛作成途中でございます。

# 本稿の目的
DockerコンテナのCentOS上にansible+gitlab-runnerのCI/CD環境を構築するのに
ベースとなるCentOSになんのライブラリを突っ込むのが適切なのかを知ることが目的です。

# 全体構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408313/e12005e3-3e2a-4db2-affb-667f2698fc82.png)

# 本稿で解説する部分(コンテナ1)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408313/11682137-0a5f-69a6-c2ad-86e461f2f220.png)

# 結論
最終的に出来上がったコンテナ1のDockerfileを記載します。
“`

元記事を表示

pythonanywhere.comで自作アプリ公開

PythonとFlaskで作ったウェブアプリをレンタルサーバーで公開しようとしましたが、エラーの対処が難しくpythonanywhere.comで公開することにしました。

エラーが出たのは、コアサーバーです。
V1プランですが、サポートに確認したところpipは、利用者に権限が無いと言われました。
また、Flaskもnotebookも使えないと言われてしまいました。
ネットでコアサーバーでPythonで作ったアプリを公開する記事をみかけましたが、挑戦される方は、注意が必要です。

Pythonでアプリを作る手順はたくさん公開されていますが、デブロイしたり、アプロを公開したりする手順の記事が少ないように思えたので書きました。

こちらの記事を参考にしました。

https://qiita.com/dem_kk/items/92c16ebbe3bfba669025

デブロイするファイルをまとめたZipファイルを解凍するときは、予めアプリのフォルダを作っておいてから解凍すると良いです。

下記のコマンドで、仮想環境に入ることができました。
“`bash
. app/bin/activ

元記事を表示

listがNoneかどうかを判定する

# listがNoneかどうかで条件分岐させたい。

Noneと比べるときは、=ではないという話。
listがNoneの時とそうでない時があり、この条件に従って分岐させたかった。しかし、エラーに阻まれ敗北…

“`python:
list = hoge#noneの時もあれば、[810, 114]のように値がある場合もある

if list = None
print(‘noneです!’)
else
print(‘noneではないです。’)

“`

“`
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
“`

listが要素を持つとき(Noneではない時)にエラーが出ました。リストは複数の要素を持つので、a.any() or a.all()を用いずにNoneと比べることはできないようです。

# a.any()を使ってみた

“`python:
list = hoge#noneの時もあれば、[810,

元記事を表示

Tweepyを使ってリストのwordcloudを作ってみた

# 概要
フォロワーたちが今日何で盛り上がったのか、今のトレンドはどのようなものなのかがきになったので、それが1目でわかるWordCloud画像を生成することで、今のタイムラインの流れをある程度掴めるツールを作成した。

# 環境
MacBookPro 13-inch, M1, 2020
macOS Ventura 13.0.1

# 目次
– ファイル構成
– プログラム全文
– TwitterAPIの申請
– ライブラリのインポート

# ファイル構成
TL
├ .env
├ config.py
├ api.py
├ list.py
├ tweet.py
├ creat_image.py
├ tweet.txt
├ tweet_id.txt
├ stop_words.txt
└ result.png

# プログラム全文
“`.env
# 例
API_KEY=’sdS5kjFenFDig8UtMwFm5f3JQ’
API_SECRET=’5kAxS7n3uKBRCJVVQmqbDGdXkbPz4ej9SS7xYqT4JqhUyqFdha’
CONSUMER_K

元記事を表示

f13: xserver vps + ubuntu + ssh + python

.

### **[ おまとめ ]**

xserver vps を契約したので、設定メモです

**(01) 前提事項**
**(02) teraterm にて ssh 接続**
**(03) 一般ユーザーの作成**
**(04) 一般ユーザーでの ssh 設定**
**(05) sshd_config の設定**
**(06) port No. 変更**
**(07) その他の設定**
**(08) ftp 接続**
**(09) python / pip の設定**
**(10) cron の設定**
**(11) イメージ バックアップ**

### **[ 1. キッチン ]**

 **・Xserver VPS / 2GB プラン**
  **-> Ubuntu 22.04 (64bit)**

 **・Windows10 64bit pc**
 **・Tera Term Pro version 2.3**


### **[ 2. 調理 ]**

**—- (01) 前提事項 ————————-**

**[ V

元記事を表示

40代おっさん面会予約アプリを作ってみる⑥

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回の記事





## 下記の場合にエラーを出す

– 定員より多い予約人数の場合
– 利用時間を超えている場合
– 開始時刻 >= 終了時刻 の場合
– 予約がかぶっている場合(下記の場合に被りが発生)
– 登録済、終了時刻 > 新規登録、開

元記事を表示

AWS IoT SDK for Python v2 で publish

こちらのページと同じことを行ないました。
[Python の使用時に、デバイスから AWS IoT Core に MQTT メッセージを発行する方法を教えてください。](https://aws.amazon.com/jp/premiumsupport/knowledge-center/iot-core-publish-mqtt-messages-python/)

## プログラム

“`py:iot_publish.py
#! /usr/bin/python
#
#
# ——————————————————————
from awscrt import io, mqtt, auth, http
from awsiot import mqtt_connection_builder
import time
import json
import sys
#
# ——————————————————————
ENDP

元記事を表示

[Mapデータタイプ] 5分で実装可能!!!Dictionaryを応用しヒューマンリーダブルなコードを書こう

## 概要
– 関数の中にif文で条件分岐する際に、Dictionaryを使う場合と使わない場合で比較をし、その違いを紹介する
## 目的
– PythonにおけるDictionary、関数の理解
– ヒューマンリーダブルなコードを書く意識を高める
## Dictionaryとは
– キーと値をペアで管理できるデータタイプ
“`python
dict_test = {“key”: “value”}
print(dict_test[“key”]) # キーを指定して値へアクセスできる
# “value”
“`

# 今回実装するのは自宅電話番号のバリデーション
– 市外局番が**050**で始まる場合は11桁のみを許容する。
– 市外局番がそれ以外で始まる場合は10桁のみを許容する。

## Dictionaryを使用しないケース
“`base.py
# 上にはクラスの定義とpydanticのデコレータでバリデーションを記述している
# 省略↑
def home_phone_number_local_area_code_split(self):
if sel

元記事を表示

paizaラーニング「階乗の末尾に 0 はいくつ付く? Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__factorial_zero
#### 私の解答
“`Python3
n = int(input())
ans = 1
for i in range(2,n+1):
ans = ans * i

div_count = 0
while True:
if ans % 10 == 0:
ans //= 10
div_count += 1
else:
break

print(div_count)
“`
前の2種類の問題の解答を組み合わせて作りました。解答例と比べて長すぎますね。
#### 解答例
“`Python3
N = int(input())

count_zero = 0
while N > 0:
count_zero += N // 5
N //= 5

print(count_zero)
“`
– 整数 N を受け取ります。また、末尾の 0 の個数を保持

元記事を表示

paizaラーニング「階乗の計算 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__factorial
#### 私の解答
“`Python3
n = int(input())
ans = 1
for i in range(2,n+1):
ans = ans * i
print(ans)
“`
#### 解答例1
“`Python3
N = int(input())

factorial = 1
for i in range(2, N + 1):
factorial *= i

print(factorial)
“`
#### 解答例2
“`Python3
from math import factorial

N = int(input())

print(factorial(N))
“`
– Python の場合、 math モジュールの factorial 関数を使用すると、階乗の計算を行うことができます。

元記事を表示

paizaラーニング「毎日増加するお金 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__inc_percent
#### 私の解答
“`Python3
A, B = map(int, input().split())
num = 0
while A <= B: A = int(A * 1.1) num += 1 print(num) ``` 前の問題の解答例を参考にしたからか、全く一緒でした!!! #### 解答例 ```Python3 A, B = map(int, input().split()) num = 0 while A <= B: A = int(A * 1.1) num += 1 print(num) ```

元記事を表示

paizaラーニング「N が M ずつ増えたときにいつ K を越える? Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__inc_m
#### 私の解答
“`Python3
n,m,k = map(int,input().split())
ans = 0
if n <= k: while n + m <= k: n = n + m ans += 1 print(ans+1) else: print(0) ``` 私の解答は長すぎでした。 #### 解答例 ```Python3 N, M, K = map(int, input().split()) num = 0 while N <= K: N += M num += 1 print(num) ```

元記事を表示

paizaラーニング「10 進数から M 進数に変換 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__conv_nbase

#### 私の解答
“`Python3
N,M = map(int,input().split())

shinsu= 0
i = 0
while N > 0:
digit_num = N % M
shinsu += digit_num * pow(10, i)
N //= M
i += 1

print(shinsu)
“`
前の問題の解答例を修正して書きました。

#### 解答例
“`Python3
N, M = map(int, input().split())

base = “”
while N > 0:
base += str(N % M)
N //= M

print(base[::-1])
“`
– N が自然数であれば、M で割った余りを取ると、M 進数に変換した際の M^0 の桁を求めることができます。
– M^0 の位を求めたら N を M で割り、もう一度同じ操

元記事を表示

paizaラーニング「10 進数から 2 進数に変換 Python3編」

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__conv_binary

– 整数の10進数を2進数に変換
算数か数学で習ったことがあるような気がしましたが、全く覚えていませんでした。ググってみたところ、整数の10進数を2進数に変換するには、変換したい10進数を商が0になるまで2で割りつづけ商と余りを求めればよいと、基本情報技術者講座のウェブサイトに掲載されていました。結構考えてみたのですが、プログラムが思いつきませんでした。今回は解答例を参照して勉強することにしました。
#### 解答例1
“`Python3
N = int(input())

binary = 0
i = 0
while N > 0:
digit_num = N % 2
binary += digit_num * pow(10, i)
N //= 2
i += 1

print(binary)
“`
– N % 2とすることで、2 進数にした場合の数字を求め、pow(10, i) を掛けることで現在の桁に合

元記事を表示

【Python】ロト6とロト7の当選データから見る傾向(次にきそうな数字とは?)

# 1.はじめに

コロナ禍からテレワーク。
通勤時間にかける時間を別の事に使う時間が増えた。
少し前から始めたロト6。
気まぐれな攪拌機から飛び出す番号のかかれたボール。
何度も見送った高額当選。
[前回](https://qiita.com/xmorning777/items/beccef26e2e3e62847f5)記事とは違う角度の「前回出た数字から次回でそうな数字」の傾向を調べてみることにした。
今回はロト7の傾向も見れるようにしたい。

# 2.流れ

## 2.1
ロト6かロト7のどちらの傾向が知りたいか入力
(ロト6なら6を、ロト7なら7を入力)
## 2.2
開催回の範囲(開始回と終了回)を入力
ロト6の傾向を見る場合はloto6_2.csvを読み込む。
ロト7の傾向を見る場合はloto6_2.csvを読み込む。
(loto6_2.csv:ロト6の当選結果番号のcsvファイル、
loto6_7.csv:ロト7の当選結果番号のcsvファイル)
指定した範囲でdataframeを作成しておく

## 2.3
各数字の出現回数の辞書の作成

## 2.4
`前回数字と今

元記事を表示

PythonでSubversionのファイルやフォルダ情報をCSV形式で保存する

# pysvnについて
– Subversionのpython用のAPIで、svnをインストールする必要はありません。
– svnをラップしているそうなので、機能は一緒だと思います。
– https://github.com/dsoprea/PySvn
– https://pysvn.sourceforge.io/Docs/pysvn_prog_ref.html

# pysvnのインストールについて
### Windows環境
– インストーラーでインストールできます
– https://pysvn.sourceforge.io/downloads.html
### Mac環境
– インストーラーはありますが、py39-python_org-pysvn-svn1142-1.9.18-2091-x86_64.dmgをインストールしようとしたところエラーになりました。Pythonのパスが「/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages」で固定されており、pyenvを使

元記事を表示

‘method’ object is not subscriptableのありがちなミス

# ‘method’ object is not subscriptableが出たときに確認したいポイント

毎度くだらないミスですが、自分用に投稿します。先に結論を書いてしまうと、メソッド名の後に()が抜けていることが原因でした。

# 前提コード

“`python:
class Hoge() :
def hage(self, list) :
return(list)#リストを返す
hoge = Hoge()
hoge_hage = hoge.hage#ここがマズイ!()が抜けている
hoge_hage[0]#エラー。自分はリストだと思っている。
“`

# 解決
(メソッドオブジェクトは添え字は)ないです、という意味です。
しっかりかっこを入れましょう。

“`python:
class Hoge() :
def hage(self, list) :
return(list)#リストを返す
hoge = Hoge()
hoge_hage = hoge.hage()#ヨシ!
hoge_hage[0]#1919
“`

元記事を表示

Python+eelでReactを使ってGUI開発(テンプレ)

# このリポジトリについて

PythonデスクトップアプリのGUIをReactで開発するためのライブラリeelを使えるようにするためのテンプレート

[https://github.com/dende-h/sample_eel](https://github.com/dende-h/sample_eel)

業務にてデスクトップアプリ開発が検討されており、Web技術でGUI作成ができるライブラリということでいろいろ試してみたものです

Develop起動時のホットリロードも効きそうなので、ちょっとこれを捏ね繰りまわして要件に合うものが作れそうか試してみたいと思います

ここまで来るのに1週間かかりましたが(Pythonの入門なども含めると2週間)、このテンプレートの構成でそれなりに使っていけそうかなと思ったので、ご興味ある方はぜひ試してみてください。Pythonで仮想環境化に作るのでPCの環境も荒れませんよ( ´艸`)

## 利用させていただいた元リポジトリ

[https://github.com/python-eel/Eel](https://github.com/python

元記事を表示

Python 3 Typing 早見

書きかけ。
知りたい typing の書き方があったらコメントしていただければ調べます。

# 入門

### 変数に使う
“`Python
hoge: int = 1
“`

変数を宣言せずに type hint だけ書くこともできる。

“`Python
hoge: int
“`

宣言したように見えるが呼び出すと not defined となる。

### 関数の返り値に使う
“`Python
def fuga(hoge: str) -> bool:
return True
“`

# 基本

### リスト
“`Python
__list: list[str]
“`

### 辞書
“`Python
__dict: dict[str, str]
“`

### 全てを受け入れる型 Any
“`Python
from typing import Any

anyyyyy: Any
“`

### 複数の型
“`Python
from typing import Union

hoge: Union[int, str] = 1
hoge: int

元記事を表示

apple siliconでseleniumコンテナを立ち上げてスクレイピングを行う

### 経緯

スクレイピング対象のwebページが動的(javascript)に生成するページたった。
それを解決するためSeleniumの知識が必要そうだった。
実際に動かすまでに時間がかかったので備忘録として残す。

### 目的

M1 macでdocker for macで立ち上げたseleniumコンテナを立ち上げる
seleniumコンテナを使って、動的に生成されるNHKニュースサイトの一覧を取得する

### 前提

– PC: M1 Macbook pro 14インチ 2021
– OS: macOS 12.6
– 言語: python3.9.6

### Seleniumとは

Webアプリケーションをテストするためのフレームワーク
Webブラウザを自動操作することができ、動作検証することができる。

### 必要なもの

– Webブラウザ
– Chrome,Edge,Sarariなど
– WebDriver
– ブラウザを操作するためのAPIを公開するモジュール。ブラウザとバージョンをあわせる必要がある
– Selenium

元記事を表示

OTHERカテゴリの最新記事