Python3関連のことを調べてみた

Python3関連のことを調べてみた

NAND 演算の基本 (paizaランク D 相当)

https://paiza.jp/works/mondai/logical_operation/logical_operation__basic_step5

今やっているのは論理演算メニューシリーズ。
とりあえず書き方は下のコード通り覚えておけばOKだけど
論理については理解しておいたほうがいいです。
論理と覚えるところは区別しましょう

pythonだと、論理積、論理和、否定、排他的論理和があり、それらをつかって
他の論理も表現します。

“`py
A, B = map(int, input().split())
#論理積
print(A and B)
#論理和
print(A or B)
#否定(単項演算)
print(int(not A))
# EOR,XOR演算(排他的論理和)
print(a ^ b)
# NOR演算(否定的論理和)
print(int(not(A or B)))
# NAND演算(否定的論理積)
print(int(not(A and B)))
# XNOR演算(排他的否定的論理和)
print(int(not(A ^ B)))
“`
ド・モルガンの法

元記事を表示

集合の結合 Python3編

https://paiza.jp/works/mondai/data_structure/data_structure__set_boss

2つの集合を1つにしてソートして出力する問題
和集合は下記のように `A | B` または `A.union(B)`

“`py
N = int(input())
A = {int(x) for x in input().split()}
B = {int(x) for x in input().split()}
print(*sorted(A | B))
“`

他のやり方

“`py
N = int(input())
A = [int(x) for x in input().split()]
B = [int(x) for x in input().split()]

c = set(A + B)

print(” “.join(map(str, sorted(c))))
“`

下の方が直感的にわかりやすいか?

元記事を表示

重複の判定 1 (paizaランク C 相当)

https://paiza.jp/works/mondai/data_structure/data_structure__set_step3

>N 個の要素からなる数列 A が与えられます。2 ≦ i ≦ N の各 i に対して、A_i と同じ値が A_1 から A_{i-1} の間にあるかどうかを判定してください。

考え方としては、まずAのリストをつくり、そこからBのリストに、まず1個入れ、そこからループするたびにBのリストにA1つずつ入れていき、
ループするたびにあるかどうか確かめ出力し、また1個入れ。。。というのを繰り返す

“`py
N = int(input())
A = [int(x) for x in input().split()]
B = []
for i in range(N):
if i == 0:
B.append(A[i])
else:
if A[i] in B:
print(‘Yes’)
else:
print(‘No’)

元記事を表示

重複の削除 Python3編

https://paiza.jp/works/mondai/data_structure/data_structure__set_step2
>N 個の要素からなる数列 A が与えられます。数列 A は昇順にソートされています。A の重複した要素を取り除いて昇順に出力してください。

辞書の作り方を前回学んだので
さっそくここでも。

“`py
N = int(input())
A = {int(x) for x in input().split()}
print(*sorted(A))

“`

この場合他の作り方もあったので復習で一応やっとく

“`py
print(” “.join(map(str, A)))
“`

元記事を表示

集合の探索 Python3編

https://paiza.jp/works/mondai/data_structure/data_structure__set_step1

集合をつくってそこから検索せよという問題。

集合を作るのは初めてだけど辞書と同じはず?

とりあえず作ってみた

作った集合をprintしてみたら文字列型だったので事前に検索するのを
文字列型にしたらOKだった

“`py
N, B = map(int, input().split())
B = str(B)
A = set(input().split())

if B in A:
print(‘Yes’)
else:
print(‘No’)
“`
{}があるので辞書みたいだが、違うのは、キーがないこと。
他にも Aをつくるときにintにしていれる方法もあった

“`py
A = {int(x) for x in input().split()}
“`

元記事を表示

商品の検索 (paizaランク C 相当)

https://paiza.jp/works/mondai/data_structure/data_structure__dict_boss

>N 個の文字列 S_1, … , S_N と、Q 個の文字列 T_1, … , T_Q が与えられます。各 T_i について、以下の処理を行ってください。
・ S_j == T_i を満たす最小の j を出力する。ただし、そのような j が存在しない場合は -1 を出力する。

という問題。

下以外はとくに難しいところはなく、すぐ解けた。
ポイントは
該当する要素のインデックスを調べるというところ。
見つかったかどうかのフラグ変数を実装したところ。
そしてループで該当するものが見つかったら
その場でbreakしないといけないところ。

“`py
N,Q = map(int,input().split())
S = [input() for _ in range(N)]

for _ in range(Q):
target = input()
flag = 0
for i in S:
if

元記事を表示

一定時間 HLS ストリーミングが再生されなかったら配信止めたくない? with Lua + Python3

# はじめに
## 何の記事なの?
nginx-rtmp-module を使ってストリーミング配信しているとどうしても『観たり聴いたりしてない間は止めてもいいかなー』という「オフタイマー」な機能が欲しかったのでふとした思いつきで実装してみることにしました。
Python はそこそこ、 Lua はほぼ初めてな人ですが完全に「なんとなく」で実装しています。

一応誕生日ネタではあります~~が、後日「[個人開発 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/personal-developement)」に枠が残っていたらこの記事を書くことになったきっかけになった話やそのコードを出そうと思います(予定)~~。

## Q: こんなん誰が得すんのさ?
A: (少なくとも)自分は得しましたw

## 前提設定内容
:::note warn
今回関係ある見せられる部分だけ抜き出して内容を差し替えています。
また、ファイル名やパラメーターは後日「個人開発 Advent Calendar(ry」に載せる(かもしれない)ものとは違

元記事を表示

価格の算出 Python3編

https://paiza.jp/works/mondai/data_structure/data_structure__dict_step4

価格リストを作ってその中から買い物リストにあるモノの値段を出力せよという問題。

前のがヒントになってこれは解けた。
一瞬難しかったのが、`name,price = map(str,input().split())`
数値の部分を数値にせず文字列のままにしたが
問題なく検索できたのでそのあとも最後までできた。

“`py
N, M = map(int,input().split())
prices = {}
for i in range(N):
name,price = map(str,input().split())
prices[name] = price

for order in range(M):
item = input()
if item not in prices:
print(-1)
else:
print(prices[item])

“`

元記事を表示

元素種C,Oを含むPOSCARファイルのパスのみ抽出(ログ)

# 目標設定
元素種C,Oを含むPOSCARファイルのパスのみを抽出する.

## スクリプトの説明
* get_C_O_existed_poscar_abs_path_list.py[1]
* 入力:poscar_existed_file_path_list.npy
* 出力:C_O_existed_poscar_abs_path_list.npy

[1] https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git

## 流れ
以下の順にスクリプトを実行する.
1. get_poscar_existed_path_list.py[1]
2. get_C_O_existed_poscar_abs_path_list.py[1]

## 詳細ログ

“`terminal
pwd
“`
/mnt/ssd_elecom_black_c2c_480G/scripts

“`terminal

元記事を表示

POSCARが存在するディレクトリorファイルパス一覧の取得方法(ログ)

# 目標設定
[1]でcifファイルをcif2cellを用いてPOSCARファイルに変換した.その際,507142件存在したcifファイルは,308325件がPOSCARファイルに変換され,残りはエラーのため変換されなかった.そこで,生成されたPOSCARファイルパス一覧,またはPOSCARが存在する親ディレクトリのパス一覧を取得し,.npy形式で保存する.

[1] cifファイルをPOSCARファイルに一括変換(ログ)

## スクリプトの説明
* get_poscar_existed_path_list.py[2]
* 入力:
* cif/(というディレクトリ名のパス)
* 出力:
* poscar_existed_file_path_list.npy
* poscar_existed_folder_path_list.npy

[2] https://github.com/k-morii-toridai/scripts_get_poscar_existed_path_list.git

元記事を表示

文字列の出現率 (paizaランク C 相当)

https://paiza.jp/works/mondai/data_structure/data_structure__dict_step3

先日は元々数が決まってる英小文字や数字だったけど、今回は出力されたものの出現率を調べるという問題。

ひとまず前回学んだ辞書リスト?(言い方)に入れることはできたけど
同じ単語だったら1増やすってのをどうすればいいんだろうか
おそらく今までのパターンからしてこの内包表記の中でなんかすればいいはずだ

“`py
N = int(input())
A = {input(): A[] for x in range(N)}
B = 
“`
結果は
“`
{‘bcd’: 0, ‘abc’: 0}
“`
まあ予想通りではある。
ここからいろいろやってみたが、
全く進まず30分経過したのでギブ。
ここまでやった。
辞書をupdateすればいいかなと思ったけど
結局できず。

“`py
N = int(input())
count = 0
A ={}
for x in range(N):
target = input()
if i

元記事を表示

【Python】csv.DictReaderで遭遇したエラー2件の解決方法 (KeyError / invalid literal for int() with base 10)

# 概要
Pythonの`csv.DictReader`オブジェクトを利用していたら以下の二つのエラーに遭遇しました。
どちらも解決できたので、こちらで紹介します。

– `KeyError: ‘XXXX’`
– `ValueError: invalid literal for int() with base 10: ‘XXXX’`

## 修正前コード

“`py
import os
import csv

csv_directory =’./csv’

for filename in os.listdir(csv_directory):
if filename.endswith(‘.csv’):
csv_file_path = os.path.join(csv_directory, filename)

with open(csv_file_path, newline=”, encoding=’utf-8′) as csvfile:
csv_reader = csv.DictReader(csvfi

元記事を表示

[Python] 土日祝日を除いた営業日の数を調べる

#### 0.初めに
国内株などに投資をして、記録をつけていると、ある期間の営業日数を知りたくなる。

#### 1.仕様
土日に加え、祝日を差し引く。
しかしこれでは証券市場・金融機関の休みに対応できない
12/31,1/2,1/3を差し引く
役所の休みは
12/29,12/30を差し引く

11/22から11/22を指定したら1日と返してほしい。0日ではない。

#### 2.jpholiday,workdaysをインストールする
コマンドプロンプトで
`pip install jpholiday`
`pip install workdays`
を入力

#### 3.サンプルプログラム
任意の日付から任意の日付までの日数
“`python:business_day.py
import datetime
import jpholiday
import workdays

start_date = datetime.datetime(2023,1,1)
end_date = datetime.datetime(2023,11,23)
holidays =[datetime.dat

元記事を表示

Python3で画像をリサイズする方法

## 要 旨
Python3を使用して、画像を1個リサイズする方法について記述します。
## 実行環境等
コンピューター:iMac 21.5インチ 2017年モデル
mac OS:Ventura 13.6.1
python: 3.8.3
## 実施要領
インプット画像: input.png (1280,720)
アウトプット画像: output.png (896,504)
とします。
Python3インタープリターの起動
“`python:インタープリターの起動
username%python3
“`
必要なライブラリの読み込み
“`python:ライブラリの読み込み
>>>from PIL import Image
“`
インプット画像を読み込む
“`python:インプット画像の読み込み
>>>img = Image.open(‘input.png’)
“`
サイズの確認
“`python:サイズの確認
>>>img.size
(1280,720)
“`
リサイズする
“`python:リサイズ
>>>img_resized = img.resize((896,5

元記事を表示

OpenAI の各モデルを使って音声でチャットしてみる

# やりたいこと
OpenAI が提供しているモデルに、新しく Text to Speech のモデル (tts-1, tts-1-hd) が追加されました。Input にテキストを入力するとそのテキストを自然なイントネーションで読み上げてくれるものです。
元々あった Speech to Text のモデルである whisper-1 と組み合わせることで GPT のモデルと音声で対話できるなーということでやってみた内容をまとめてみます。

# 環境
* Windows11 Pro
* WSL2 (Ubuntu22.04)
* Python 3.10.12
* 音声入力のためのマイクが必要です
* 音声出力のためのスピーカーが必要です

:::note warn
OpenAI が提供する API を使うためにはあらかじめクレジットを追加しておく必要があります。無料枠が残っている場合は、その範囲内で利用できます。
:::

# 構成
分かりきっているが構成は以下のような形。「」は音声、”” はテキスト。

![image.png](https://qiita-image-store

元記事を表示

pygameの簡単なコードなのになぜか重いのは、イベント処理の不足が原因の可能性

## 要約
簡単なテストコードでも重くフリーズしたようになるが、イベントハンドリングを行っていないからかもしれない。

## コード

“`python
import pygame

# 初期化
pygame.init()

# 定数
WIDTH, HEIGHT = 800, 600
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)

# ウィンドウの設定
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(“Game Template3”)

# フレーム数
clock = pygame.time.Clock()
# フレームレートの上限設定
fps_limit = 30

# ゲームループ
running = True

# 再描画対象のrectリスト
dirty_rects = []

pygame.display.flip()

while running:
clock.tick()
di

元記事を表示

英小文字の出現率 (paizaランク C 相当)

https://paiza.jp/works/mondai/data_structure/data_structure__dict_step2

今度はアルファベット版。
アルファベットを配列に入れないといけないのだけどpythonでそんなのあったっけ?
と調べてみると、結構使う人がいるらしいですね、うまくまとまっているのがあったので
こちらで。(ありがとうございます!)

https://qiita.com/okkn/items/3aef4458ed2269a59d63

たしかにVBAのときもchrつかったなー。
あのときは呪文のようにしか聞こえなかったです(まだVBAはじめて2年目ぐらいのとき)

とはいえ。
97 +26文字ですね、覚えておこう。たしかによく使いそうです。

“`py
[chr(i) for i in range(97, 97+26)]

“`

あとはこうですね。
前回の方法をつかってやります。
今回は私が使った方法がよかった。

“`py
N = int(input())
S = list(input())
A = [chr(i) for i in r

元記事を表示

Atcoderほぼ緑コーダーのスニペット(Python)

# 記事構成
[1. Atcoder自己紹介](#1-Atcoder自己紹介)
[2. スニペット集](#2-スニペット集)
[3. 最後に](#3-最後に)

# 1. Atcoder自己紹介
– 茶色🟤コーダー
– 主な使用言語:Python,C++(C++は最近使ってません)
– 一時期休んでたけど最近再開
– 現在のグラフ↓

![abckuri.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3564785/136561dd-ef66-36ae-af8c-26e4f88aa4d3.png)

まあほぼ緑コーダーって言っても問題ないはず

# 2. スニペット集
一応競プロで使いやすいものを作ってます.
## Yes,YES,No,NO
競プロのよくある出力用に

“`python:Yes出力
“Print Yes”: {
“prefix”: “yes”,
“body”: [
“print(‘Yes’)”,
],
“description”: “print Yes”

元記事を表示

ABC329 提出したコードや感想 (言語:Python)

# 記事構成
[1. Atcoder自己紹介](#1-Atcoder自己紹介)
[2. 各問題の感想と提出コード](#2-各問題の感想と提出コード)
[3. 今回の結果想](#3-今回の結果)
[4. 最後に](#4-最後に)

# 1. Atcoder自己紹介
– 茶色🟤コーダー
– 主な使用言語:Python,C++(C++は最近使ってません)
– 一時期休んでたけど最近再開
– 本コンテスト終了時のグラフ↓

![abc329.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3564785/53b6b5d3-abfe-e688-6478-5386cd105d7e.png)

# 2. 各問題の感想とコード
## A問題
特にいうこと無し.ABCのAって感じの問題が久しぶりに来た
コードは結構綺麗に書けたんじゃないかな

“`python:A問題
s = input()
for char in s:
print(char, end=’ ‘)
“`

## B問題
一回最大値探してからもう一

元記事を表示

数値の出現率 Python3編

https://paiza.jp/works/mondai/data_structure/data_structure__dict_step1

> 0 以上 9 以下の整数が N 個与えられます。各数値の出現回数を求め、「0」の出現回数、「1」の出現回数、…「9」の出現回数、をこの順に半角スペース区切りで1行に出力してください。

前回と比べたら難しくはないかな。。。

“`py
N = int(input())
A = list(map(int,input().split()))
counts =[]
for i in range(10):
count = 0
for j in A:
if i == j:
count += 1
counts.append(count)
print(*counts)

“`

答えだと、
countを配列にして、それぞれのインデックス(0~9)ごとに
数値を加算する方法だった。
ちょっと一瞬わかりづらいかも?

`print(*counts)`もよいが、
`print(” “.j

元記事を表示

OTHERカテゴリの最新記事