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

Python3関連のことを調べてみた2022年03月19日
目次

Python 入門2 (文字列, リスト)

# はじめに

このシリーズは、プログラミング経験やアルゴリズムとデータ構造などの知識がある方に向けて、Pythonの基礎について解説することを目的としています。

一つの記事あたり大体15分程度で読み終われるように文章量を調整しています。

この記事はPython入門シリーズの第2回目の投稿にあたります。

今回の記事ではタイトルにもある通り、文字列とリストについて解説します。

# 目次

– 文字列
– 文字列の宣言
– 値の埋め込み
– 文字列の操作
– リスト
– リストとは
– リスト内包表記
– スライス
– range関数

# 文字列

### 文字列の宣言

“`str.py
str1 = “私は”
str2 = ‘”犬”が好きです。’
str3 = str1 + str2 # 文字列の結合

print(str3)
“`

> 私は”犬”が好きです。

Pythonでは、文字列の記述方法としてシングルクォーテーション、またはダブルクォーテーションのいずれかを用いることができます。

この二通りのやり方

元記事を表示

半日で出来る!Python導入~スクレイピング処理

#概要

【内容】
 ・Pythonの開発環境を導入する
 ・指定したWebサイトの情報を取得するプログラムを作成する

【想定読者】
 ・Python、ないしはスクレイピングに興味があるが、手が出せないでいる方

【使用データ】
 弊社Webサイト:https://www.anestec.co.jp/

#1.Pythonの開発環境を(手軽に)導入する
##1-1.Pythonのバージョン、どちらを選ぶか?

Pythonには2.x版と3.x版があり、文法や出力結果が異なっている。また、一部の機能において互換性を持っていない。
現在、2.x版のサポートは2020年ごろに終了しており、3.x版に対応したライブラリも数多く提供されているため、**新規に導入するのであれば3.x版が強く推奨されている。**

##1-2.Pythonの開発環境
Pythonには用途に応じた豊富なライブラリが存在している。
ライブラリが標準搭載されているプラットフォームを利用することで、効率よく開発を進めることが出来る。

**Anaconda**
データサイエンスに特化したプラットフォームで、データサイエ

元記事を表示

3時間で分かる!複数ページのスクレイピング~gmail連携

#概要

【内容】
 ・複数のページをスクレイピングし、情報をCSVファイルに出力する
 ・出力したCSVファイルをgmailに添付して送信する
 ・【参考】Spyderの画面について特筆すべき箇所

【想定読者】
 ・前回のページ内容を把握している方

https://qiita.com/Anest_Doi/private/9cf344b13cd173af2ce1

【使用データ】
 「現代用語の基礎知識」選 ユーキャン新語・流行大賞
  https://www.jiyu.co.jp/singo/index.php

#1.スクレイピングを行う
##1-1.前準備
前回と同じくスクレイピングを実施する為に、対象サイトの構成を把握する必要がある。
今回はユーキャン新語・流行語大賞について、1994年(第11回)~2021年(第38回)までの情報を取得するプログラムを考える。

**対象サイトの構成**
第11回のページと、第12回のページでURL部分の差異が末尾のみであることが分かる。
また、ページ構成は両者ともに以下のフォーマットが用いられている。
本体部分は”contents”タグ

元記事を表示

Pythonのリストについて

#概要
【内容】
 ・Pythonにおけるリストで実施出来ることを一通り説明する。

【想定読者】
 ・Pythonのリストに関する文法・出来ることが知りたい方

【参考サイト】
 ・Python全般の文法について用途別に記載しているサイト

https://note.nkmk.me/python-post-summary/

#1.Pythonの型宣言

Javaについては変数を定義する際に、型宣言が必要。

“`java:sample.java
int x = 10;
String y = “abc”;
List list = new ArrayList<>();

“`

Pythonでは型宣言は必要ない。
右辺に記載されている内容によって、数値(整数、小数)、文字列、リスト型などを区別する。

“`python:sample.py
# 型を定義しなくても、コンパイルが通過する。
x = 10
y = “abc”
list = [“Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”,”Sun”]

“`

#2.Pythonのリスト、

元記事を表示

ABC 088 A – Infinite CoinsをPython3で解く

# 初めに
「[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードが未熟です。

# [ABC 088 A – Infinite Coins](https://atcoder.jp/contests/abc088/tasks/abc088_a)

**【問題文】**
E869120 は 1 円硬貨を A 枚と 500 円硬貨を無限枚持っています.
これらの硬貨だけを使うことによって, ちょうど N 円を支払うことができるかを判定しなさい.

**【制約】**
– N は 1 以上 10000 以下の整数
– A は 0 以上 1000 以下の整数

**【入力】**
入力は以下の形式で標準入力から与えられる.
“`
N
A
“`
**

元記事を表示

Python開発仮想環境構築備忘録(Windows+Docker+VSCode+Hyper-V+Python3)

自分用備忘録

WindowsでDockerを使い、VSCode上でPythonを実行できる仮想環境を作る。

※操作は基本管理者権限で実行する想定。

## Hyper-V有効化
「コントロールパネル」-「プログラムと機能」-「Windowsの機能の有効化または無効化」からHyper-Vを有効化する。
![Hyper-V.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873792/17b39a25-c096-7199-415d-86bc71568cbd.png)
## Dockerインストール
Docker for windowsを公式サイトからダウンロード、インストールする。

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

![docker.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18

元記事を表示

FastAPI: MariaDB に接続

こちらのサンプルのデータベースを Redis から MariaDB に変えました。
[FastAPI: 簡単な WebAPI を作成](https://qiita.com/ekzemplaro/items/6df0d64d5eab5632dd24)

“`py:mariadb01.py
# ——————————————————————
# mariadb01.py
#
# Mar/18/2022
# ——————————————————————
from fastapi import FastAPI
import mysql.connector
from dotenv import load_dotenv
import sys
import os

# ——————————————————————
def get_d

元記事を表示

CORESERVERでFlaskを使ったWebAPIを作ってみる

# 概要
Androidアプリ開発で、Serverから情報を取得して表示するアプリを作った際、なるべく手軽で、安価で・・・
という考えから、CORESERVERでWebAPIを作ってみた。という記事です。

CORESERVERは、単なるHTMLやCGIをアップロードできる領域というものではなく、Python3やMySQLも使えるので、Flaskで簡易的に作っています。

https://play.google.com/store/apps/details?id=com.sekai.tsukuru.app.quickmatome&hl=ja

# 基本的な話

## CORESERVERとは
■ CORESERVER(https://www.coreserver.jp/ )

ざっくり言えば、コスパ最強の「レンタルサーバー」です。
V1プランで「**CORE-Mini**」を選択すれば、年払いで**2,640円**(1日 7円!)にて使えるという驚き。

→料金表(V1の方をみてね)
https://www.coreserver.jp/price/

しかも、月間の転送量MAXは「無

元記事を表示

Python: 関数を並列実行する

“`python

locks: Dict[str, Lock] = {}

def f(
s: str,
id: str,
wait_seconds: int,
):

locks.update(**{id: Lock()}) if not locks.get(id) else None
with locks[id]:
time.sleep(wait_seconds)
print(s)

if __name__ == “__main__”:
threads: List[Thread] = []

threads.append(Thread(target=f, args=(“1”, “AAA”, 4)))
threads.append(Thread(target=f, args=(“2”, “AAA”, 1)))

for t in threads:
t.start()

for t in threads:
t.join()

p

元記事を表示

pythonでcsvのデータをデータベースへ書き込む。

# 目的
pythonでcsvのデータをデータベースへ書き込みをします。

# 環境
MariaDB version  10.3.31-MariaDB-0+deb10u1
Python version: 3.7.3
OS: Raspbian 10.0

# イメージ
ラズパイ内にmySQLを入れ、データベース、テーブル、要素の作成をします。そのあとpythonからcsvファイルの読み込みを行い、新規に作成したデータベースへ書き込みを行っていきます。データベースの操作は、コマンドラインから、phpmyAdminからの2種類があり、今回は、コマンドラインを使用しました。コマンドの説明については、[別の記事](https://qiita.com/yutaka_m/items/73380d45ef3dac027996)にしましたので、そちらを参考にしてください。

![スクリーンショット 2022-03-18 12.50.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/89b69286-cc

元記事を表示

銀河麻雀の待ちを調べるプログラムを作った

## 3/19追記:Webアプリ化しました

https://qiita.com/hatamura5121/items/ca98701b3180f2e5fa46

麻雀YouTuberの麻雀カッコイイシリーズが投稿していた「銀河麻雀」。

(ルール説明は13:40くらいから)
簡単に言えば、各種類の牌に1枚ずつ「ギャラクシー牌(銀河牌)」と呼ばれる牌種が自由になる牌が入った状態での麻雀だ。
例えば、銀河1mは1p,1sとしても扱える。
銀河東は東南西北、銀河白は發中としても

元記事を表示

ABC 064 A – RGB CardsをPython3で解く

# 初めに
「[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードが未熟です。

# [ABC 064 A – RGB Cards](https://atcoder.jp/contests/abc064/tasks/abc064_a)

**【問題文】**
AtCoDeer君は、赤、緑、青色のカードを持っています。
それぞれのカードには 1 以上 9 以下の整数が書かれており、赤色のカードには r、緑色のカードには g、青色のカードには b が書かれています。
3 つのカードを左から順に赤、緑、青色の順に並べ、左から整数を読んだときにこれが 4 の倍数であるか判定しなさい。

**【制約】**
1≤r,g,b≤9

**【入力】**
入力

元記事を表示

Homebrewは手で直せる ファイラーRangerの濁点問題の修正

この記事の環境はMacOS Montereyです。

Homebrewにある[Ranger](https://formulae.brew.sh/formula/ranger#default “Ranger”)というファイラーのソフトを使っていた時、
濁点が正しく表示されない、修正できないという問題がありました。

![ranger_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939698/9a527d3e-ddd9-ccec-21f2-58dc1a42c928.png)
名称未設定フォル「タ」になってる…

調べた所、MacではUTF-8にはNFD(Normalization Form Canonical Decompression)
というのが一部で使われていて、それを使用するプログラム(この場合だとpython3)を留意無く使用すると
このように濁点、半濁点が抜けたり、別で(コンヒ゜ュータみいたいに)表示されたりするそうです。

https://rcmdnk.com/blog/2019/11

元記事を表示

Docker備忘録 「Python実行環境の作成」

# はじめに
* 何となくで使っていたDockerについて技術の再現性を高めるためにもまとめておく

# Dockerあれこれ
## 概要
* コンテナ型仮想環境を作成・実行・管理するためのプラットフォーム
* Dockerのソフトウェア自体はGo言語で書かれている

:::note info
メモ「Go言語とは」
Go言語はGoogleが開発しているオープンソースのプログラミング言語
標準パッケージが豊富・省略ができないものがありプログラマーの記述差異を減らせる
:::

## コンテナ型仮想環境の構成イメージ
* 以下であった資料を参考に作成
 https://www.udemy.com/course/docker-k/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2479387/d05ea649-91b8-32f3-4359-1d0e4bc9ae77.png)

## Dockerの実行イメージ
![image.png](https://qiita-image-store.s3

元記事を表示

Python 単一スレッド内で複数のスレッドを立ち上げてイベント制御したいときに読む (15秒で読めます)

“`python
from threading import Thread, Event
import time
import random

class MyEvent():
th1 = Event()
th2 = Event()

def task1(event: MyEvent):
while True:
event.th1.wait()
print(‘th1 run.’)
event.th1.clear()

def task2(event: MyEvent):
while True:
event.th2.wait()
print(‘th2 run.’)
event.th2.clear()

# manage_thがth1とth2を立ち上げる
def manage_th(event: MyEvent):
task_list = [task1, task2]
for task in task_list:
th

元記事を表示

【Python3】ドラッグ&ドロップしたファイルにタイムスタンプをつけてリネームする

# 概要

https://qiita.com/MakotoIshikawa/items/a9e31bc6f13ac203f98d

PowerShell の .ps1 ファイルには、直接ファイルをドラッグ&ドロップできないので、ソースファイルとは別にショートカットを作成しなければなりませんでした。
ファイルだけで出来るように Python を使ってやってみました。

## 準備

まず、Python をインストールしておきます。

https://www.python.org/downloads/

## 手順

以下のファイルを作成します。

“`python:Add-TimeStamp.py
import sys
import datetime
import pathlib
import os

daystr = datetime.date.today().strftime(‘%Y-%m-%d’)
paths = sys.argv[1:]

for path in paths:
file = pathlib.PurePath(path)
new_file_pat

元記事を表示

Python3 List型の内容をsort uniqしたい

List型の内容をsort uniqしたい場合は、listをsetしてsortedすると実現できる。

list = sorted(set(list))

サンプルコード
“`py
# サンプルListを作成
company_list = [‘”テスト3株式会社”‘, ‘”テスト3株式会社”‘, ‘”テスト1株式会社”‘, ‘”テスト2株式会社”‘, ‘”テスト3株式会社”‘]

# 中身確認
print(company_list)
[‘”テスト3株式会社”‘, ‘”テスト3株式会社”‘, ‘”テスト1株式会社”‘, ‘”テスト2株式会社”‘, ‘”テスト3株式会社”‘]

# Listのsort uniqをする
company_list = sorted(set(company_list))

# 重複が削除されsortされた
print(company_list)
[‘”テスト1株式会社”‘, ‘”テスト2株式会社”‘, ‘”テスト3株式会社”‘]
“`

元記事を表示

超初心者がAtcoder ProblemsのC問題を181回から190回までをpythonで解いてみた

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

181 Collinearity

https://atcoder.jp/contests/abc181/tasks/abc181_c

“`python:practice.py
n = int(input())
points = [list(map(int, input().split())) for _ in range(n)]
for i in range(n):
for j in range(i+1,n):
for k in range(j+1,n):
x1,y1 = points[i]
x2,y2 = points[j]
x3,y3 = points[k]
if (y3-y1)*(x2-x1) == (y2-y1)*(x3-x1):
print(“Yes”)

元記事を表示

Python: Windows10 WSL Ubuntu20.04に、apt-getで入ってくれないPython3.10.xをインストール

なにはともあれ↓をしましょう

“`bash
$ sudo apt-get upgrade
$ sudo apt-get update
“`

ではPython3の最新バージョン3.10.3をインストールしましょう。
わたしの場合はすでにPython3.Xは入っていたので、upgrade で実行してみます。

“`bash
$ sudo apt-get upgrade python3

Reading package lists… Done
Building dependency tree
Reading state information… Done
python3 is already the newest version (3.8.2-0ubuntu2).
Calculating upgrade… Done
The following packages have been kept back:
fwupd libfwupd2 libfwupdplugin1 libgl1-mesa-dri libglapi-mesa libglx-mesa0 mesa-v

元記事を表示

きれいなPythonプログラミング(パイソニックなコードを書こう)を読んでみた

# はじめに

日頃、Pythonを使う機会があるのですが、「もう一歩詳しくなり、中級者を目指したい!」という思いから、2022/2/15に発売された書籍「[きれいなPythonプログラミング ~クリーンなコードを書くための最適な方法](https://www.amazon.co.jp/%E3%81%8D%E3%82%8C%E3%81%84%E3%81%AAPython%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E6%9C%80%E9%81%A9%E3%81%AA%E6%96%B9%E6%B3%95-Al-Sweigart/dp/4839977402)」を読みました。

特に、第6章にある「**パイソニックなコードを書こう**」が非常に勉強になったので自

元記事を表示

OTHERカテゴリの最新記事