- 1. CR(キャリッジリターン)を活用してゲームを作ろう!
- 2. 【配列への副作用を伴う操作】条件を満たす要素のみの配列作成 (paizaランク D 相当)
- 3. 配列のサイズの変更・重複要素の削除 Python3編
- 4. 炭酸イオンかどうかの判定アルゴリズムの比較検証(ログ)
- 5. 全ての要素を用いた処理 (paizaランク D 相当)
- 6. 九九表 Python3編
- 7. 指定要素の挿入・削除 Python3編
- 8. 様々な条件下におけるPython開発環境の検討と構築
- 9. Python でおみくじ作ってみた。参考資料
- 10. 炭酸イオンを含むかどうかの判定アルゴリズムを複数のPOSCARファイルに適用(ログ)
- 11. 変数の入れ替え (paizaランク D 相当)
- 12. 配列の順序の反転 Python3編
- 13. Python初心者が「2人でじゃんけんする」を書いた④
- 14. はじめてのデータ分析 データ前処理から回帰直線
- 15. 重たいログファイルを部分的に読み込むツールを作ってみた
- 16. Python3 + PyAV 動画ファイルから映像と音声を読み込み、画像だけ処理を行い、音声はそのまま出力ファイルに書き出す
- 17. 【Python】jsonモジュールでエンコード・デコードするときの注意点2つ
- 18. Python + Matplotlibを使用して単位円を描画する
- 19. pythonでCPU100%
- 20. AtCoder Heuristic Contest(AHC)はどんな問題なのだろうと思って初めて解いてみた記録[Python]
CR(キャリッジリターン)を活用してゲームを作ろう!
*この記事では、wsl2のubuntu(Ubuntu 22.04.2 LTS)を使用しています。
ある日、私はやることが特に思いつかずにぼーっとしていました。
しばらくぼーっとしていたところに唐突にやりたいことが降ってきました。
「あっ…なんかコマンドプロンプトでパックマンみたいなゲームがやりたい。つくろu」そして、作ったのがこちらです。
コード
“`python
import sysmaze_list = [
[” “,”c”,”+”,”+”,”+”,”+”,” “],
[“+”,” “,” “,” “,” “,” “,”+”],
[“+”,” “,” “,” “,” “,” “,”+”],
[“+”,” “,” “,” “,” “,” “,”+”],
[“+”,” “,” “,” “,” “,” “,”+”],
[” “,”+”,”+”,”+”,”+”,”g”,” “]
]
cur_y = 0
cur_x =
【配列への副作用を伴う操作】条件を満たす要素のみの配列作成 (paizaランク D 相当)
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__filter
そんなには難しくなかった。
“`py
N,K = map(int,input().split())
A = [int(input()) for _ in range(N)]
B =[]
for i in A:
if i >= K:
B.append(i)
print(*B,sep =”\n”)“`
配列のサイズの変更・重複要素の削除 Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__resize
“`py
N,n = map(int,input().split())
A = [int(input()) for _ in range(N)]
B = [0] * n
for i in range(n):
if i < N: B[i] = A[i] print(*B, sep='\n') ``` 指示のとおりにやっていれば難しくはなかった。 if文はちょっと不等号に気をつけないとだめだね。。。 次! https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__unique こいつはちょっと難しかった。 スマートな書き方ではないが フラグを使い、Aの要素がBの配列にあるかループで調べ、 なければ追加する形。 ```py N = int(input()) A
炭酸イオンかどうかの判定アルゴリズムの比較検証(ログ)
## 目標
炭酸イオンを含むかどうかの判定アルゴリズム(注)を,アルゴリズム中の判定条件を変更して,比較検証する.
(注)炭酸イオンかどうかの判定アルゴリズムの作成(ログ) #Python3 – Qiita
https://qiita.com/k-morii-toridai/items/972a713e62c1739932ba## 概要
炭酸イオンを含むかどうかの判定アルゴリズム(注)は,複数の必要条件からできている.そのため,炭酸イオンかどうかの判定条件として十分条件になっていると思われるが,必要条件の多さから,漏れが発生し得る.
そこで,複数の必要条件の数を減らして,減らす前との差分を取り,そのPOSCARファイルに炭酸イオンが含まれるのかどうかを,VESTAを用いて目視確認する.## 実行ログ
time python3 get_CO3_contained_pos_folder_p_list_minus_filter_6.py
len(C_O_existed_poscar_folder_path_list): 205733
10
全ての要素を用いた処理 (paizaランク D 相当)
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__reduce
九九の問題からどうやって解くか難しかった
たとえば入力がこれだとすると
“`
入力例2
5
1
2
3
4
5
“`
Nは5なので(ちなみに必ず2以上)、すべてのペアをだす場合A = 2 B = 1
A = 3 B = 1~2
A = 4 B = 1~3と、要素数−1分ループさせることになるので
こうなる。
ちょっとループで混乱した。。。“`py
N = int(input())
A = [int(input()) for _ in range(N)]
for i in range(N):
for j in range(i):
print(A[i]*A[j])“`
九九表 Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__reduse_easy
これ自体は前回もやったけども
https://qiita.com/Atsulabo/items/4051922d6961bb954ad3
今回は配列を使うってことで
違う方法で。
もっとも答えは配列を使っていない前回と同じ方法だったが。。。“`py
A = [i for i in range(1,10)]
B = [i for i in range(1,10)]
for i in A:
for j in B:
if j >= 9:
print(A[i-1] * B[j-1])
else:
print(A[i-1] * B[j-1],end=” “)“`
指定要素の挿入・削除 Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__insert
前にもやった内容の問題なのだが、
insertとpopとでちょっと違いがあるので注意
追加する要素番号と、削除する要素番号とでちょっと違いがある“`py
N = int(input())
A = [int(input()) for _ in range(N)]
n,B = map(int,input().split())
A.insert(n,B)
print(*A,sep=’\n’)“`
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__delete
“`py
N = int(input())
A = [int(input()) for _ in range(N)]
n = int(input())
A.pop(n-1)
print(*A,sep=’\n’)“`
様々な条件下におけるPython開発環境の検討と構築
# はじめに
先日、組織は同じなのですが、異なるプロジェクトが同時並行で開発を進めていくというシチュエーションがありました。それぞれのプロジェクトで開発するものは違うのですが、以下のキーワードは共通であったため、同じ組織においては開発環境をなるべく統一したいという方針で共通開発環境の検討と構築を行いました。
– 言語: Python
– パッケージ管理: poetry
– IDE: Visual Studio Code(以降、VSC)
– プラットフォーム: AWS
– 開発するサービス: Lambda(コンテナイメージ使用)
– リポジトリ・CI/CD: GitHub・GitHub Actions検討していく中で、プロジェクトに参加する開発者のバックボーンも十分に考慮して取り決めしていったので、検討の過程と実際に構築した環境を頭の整理も兼ねてまとめてみます。
# 前提・背景
検討する上で、手元の環境や開発者のスキルセット等考慮すべき事項は下記の通りです。
– 一部開発者の端末は、VDIで接続した先にあるWindowsOSであり、WSL2を使ってLinuxをインストールす
Python でおみくじ作ってみた。参考資料
ごくありふれたおみくじを加工してみました。
よろしかったら、参考にどうぞ。
イメージファイル(参考)![ase.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/822d5e33-d889-5f87-2847-7407a4cda2cb.jpeg)
![chuukichi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/95fe6d77-e622-af27-ee26-4a0548d7a422.png)
![daikichi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/a445074e-edd1-64a4-112e-4f03c38c0adc.png)
![kyou.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/362
炭酸イオンを含むかどうかの判定アルゴリズムを複数のPOSCARファイルに適用(ログ)
## 目標
炭酸イオンを含むかどうかの判定アルゴリズム[1]を,複数のPOSCARファイルに適用するスクリプトを作成する.[1] 炭酸イオンかどうかの判定アルゴリズムの作成(ログ) #Python3 – Qiita
https://qiita.com/k-morii-toridai/items/972a713e62c1739932ba## スクリプトの実行
“`terminal
pwd
/mnt/ssd_elecom_c2c_960gb/scripts/get_some_ion_contained_pos_folder_p_listls -CF
CO3_contained_poscar_folder_path_list.npy* get_CO3_contained_pos_folder_p_list.py*
get_CO3_contained_pos_folder_p_list.ipynb* package_bond_search_algorithm/
“`“`terminal
time python3 get_CO3_containe
変数の入れ替え (paizaランク D 相当)
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__excange
以前、コメントで教えてもらった方法でやってみる。
“`py
X,Y=map(int,input().split())
X,Y = Y,X
print(X,Y)
“`一発OKでした
これすっごく便利ですね。次に行ってみる
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__swap
これもさっきので解けます
“`py
N = int(input())
A = [int(input()) for _ in range(N)]
X,Y = map(int, input().split())
A[X-1],A[Y-1] = A[Y-1],A[X-1]
print(*A,sep=”\n”)
“`
配列の順序の反転 Python3編
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__reverse
私の答えは
“`py
N = int(input())
A = [int(input()) for _ in range(N)]
print(*reversed(A),sep=”\n”)
“`まあ、これは前にもやったことなので難しくはない。
仮に、reversed関数がなかったとすると、どうするか。
まずはA配列を作るところまでは同じで
逆順のB配列を作るにはどうするか。
とりあえず前勉強した通り空の配列を作る“`py
B = [None] * N #0でも同じ結果が出る
“`たとえば、5つの要素があるとして
B[0]=A[4]
B[1]=A[3]
B[2]=A[2]
.
.
.
という順番になる。
これをルール化すればいいわけで、
i = 0なら、NからN(=ここでは5)-0(=i)-1
とすればいいのではと考えて、“`py
N = int(input())
A = [int(i
Python初心者が「2人でじゃんけんする」を書いた④
Python初心者が「2人でじゃんけんする」を書いた①
https://qiita.com/hiroshi_abu/items/254b04315ea68cbfa92f
からの変更点
・プレイヤーの入力が範囲外なら、再入力を促す。
・あいこなら、勝敗判定可になるまで、じゃんけんする。
・プレイヤーの手、PCの手の取得を関数にした。“`python
import randomte = {0: ‘グー’, 1: ‘チョキ’, 2: ‘パー’}
te_KYE = tuple(te.keys())print(‘*****じゃんけんぽん*****\n’)
while True:
def Y_te(): #プレイヤー
”’プレイヤーの手を入力する。範囲外はループする”’
while True:
try:
x = te_KYE[int(input(‘あなたの手は?\n 0:グー 1:チョキ 2:パー –>> ‘))]
はじめてのデータ分析 データ前処理から回帰直線
この記事はNTTテクノクロス Advent Calendar 2023 シリーズ1の19日目です。
NTTテクノクロスの大澤と申します。
普段はPythonを用いてデータ分析業務を担当しており、今回はデータ分析初学者向けに、Pythonを使ってデータ前処理から回帰直線で数値を予測するところまでを記事にしました。## はじめに
データ分析でよく使われるファイル形式としてノートブック形式というファイル形式があります。
普段開発をされている方で、特にVSCodeを使用されている方は下記を参考にjupyter notebookの環境を構築してください。[VSCodeでJupyter Notebookを使ってみた【ゼロからPython勉強してみる】
](https://qiita.com/starfieldKt/items/ed7dee5142d9d5c177fd)特に使用しているエディタもなく、コーディング経験があまりない方についてはGoggleが提供している「Colaboratory」というサービスがあります。
Googleのアカウントさえあれば、環境構築は不要ですぐ使用できる
重たいログファイルを部分的に読み込むツールを作ってみた
# はじめに
タイトルの通り重たいログファイルを読み込むためのツールを作ってみたのでその紹介です。### 経緯
* ログローテーションを甘く見たままの開発着手により、とても重たいログファイルを量産
* ログファイルをVScodeの別タブで開いたままソース修正、テスト起動を繰り返し、フリーズもしばしば
* 筆者がcliでのログ解析に苦手意識があり、できればGUIベースで解析したいそんな悩みを解消したいと思い、ログファイル内の1部分だけ読み込んで表示させるツールを作成しました。
# 実際の画面
今回はtkinterを使って作成しました画面はこんな感じになりました。
![2023-12-09_23h33_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1700794/5ccf2030-8152-1f5e-5edc-ad56f9aba141.png)# 使い方
1.「対象ファイルの選択」ボタンで読み込みたいファイルを選択
2.「表示させる行数(数字を入力):」のテキストボックスに表示させ
Python3 + PyAV 動画ファイルから映像と音声を読み込み、画像だけ処理を行い、音声はそのまま出力ファイルに書き出す
公式ドキュメントなどを読んでも同じようなサンプルコードがなかったのでトライアンドエラーを行い、実現できましたので共有致します。ご参考になれば幸いです。
○実現したかった仕様
動画ファイルを読み込んで、画像だけ処理を行い、音声はそのまま出力する。OpenCVでは動画から画像は抽出できるが、音声はできなかった。(公式ドキュメントにはできそうな記載があるが、うまく実現できなかった。)
PyAVでは実現できました。実現できたファイル形式: MPEG4
Python: 3.11.2
PyAV: 0.9.4-7
LinuxMint Debian Edition: 6 “Faye”“`Python:movie-V+A.py
import av
import mymovie1 as mm
import threadingdef process(image):
global img
import cv2
#Do some thing here
returnin_file =
out_file
【Python】jsonモジュールでエンコード・デコードするときの注意点2つ
# 概要
Pythonの`json.dumps()`と`json.loads()`について、注意点を2点整理してみました。
以下のコードをサンプルとして進めます。“`py
import json#1
data = {}
data[‘sample_id’] = ‘test’
sample_id = json.dumps(data[‘sample_id’])
print(data)
print(sample_id)#2
data = {}
data[‘sample_id’] = ‘test’
sample_id = data[‘sample_id’]
print(data)
print(sample_id)
“`こちらを実行すると結果は以下の通り。
“`
{‘sample_id’: ‘test’}
“test”
{‘sample_id’: ‘test’}
test
“`あれ、`#1`では`”test”`というようにダブルクオーテーションで囲まれているのに対して、`#2`では`test`というようにダブルクオーテーションがありません。
テストコードを書いている
Python + Matplotlibを使用して単位円を描画する
## 開発環境
– Python 3.12.1
– Visual Studio Code (Version: 1.85.1)
– matplotlib 3.8.2
– numpy 1.26.2## コード
“`python
import matplotlib.pyplot as plt
import numpy as npCIRCLE_LINE_COLOR = ‘#0000FF’ # 円周の線の色
X_AXIS_LINE_COLOR = ‘#000000’ # X軸の線の色
Y_AXIS_LINE_COLOR = ‘#000000’ # Y軸の線の色
GRID_COLOR = ‘#AAAAAA’ # グリッドの色CIRCLE_LINE_WIDTH = 2 # 円周の線の太さ
X_AXIS_LINE_WIDTH = 0.8 # X軸の線の太さ
Y_AXIS_LINE_WIDTH = 0.8 # Y軸の線の太さ
GRID_LINE_WIDTH = 0.5 # グリッドの線の太さFIGURE_SIZE = (6,
pythonでCPU100%
### シングルプロセス
“`
import multiprocessing
import threading
import sysdef max_cpu_task():
“”” CPUを最大限に活用するための単純な無限ループ “””
while True:
passdef single_process():
“”” シングルプロセスでCPUを最大限に活用 “””
max_cpu_task()def multi_process():
“”” マルチプロセスでCPUを最大限に活用 “””
processes = []
for _ in range(multiprocessing.cpu_count()):
p = multiprocessing.Process(target=max_cpu_task)
p.start()
processes.append(p)for p in processes:
p.join()def m
AtCoder Heuristic Contest(AHC)はどんな問題なのだろうと思って初めて解いてみた記録[Python]
[Supership](https://supership.jp/)の名畑です。「[映画「鬼太郎誕生 ゲゲゲの謎」興収が11.5億円を突破!大ヒット御礼で本編冒頭映像が公開](https://animeanime.jp/article/2023/12/12/81781.html)」とのこと。めちゃくちゃ人気のようで本当に嬉しいです。
## はじめに
これまで私の記事で何度も取り上げてきた競技プログラミングのサイト[AtCoder](https://atcoder.jp/)には大きく分けて2種類のコンテストがあります。そのうちの一つがABC、ARC、AGCなどのアルゴリズムコンテストであり、もう一つが**AtCoder Heuristic Contest**(**AHC**)です。
> ABC/ARC/AGCなどのアルゴリズムコンテストと異なり、最適解を出すのが難しい問題に対し、出来るだけ良い解を作成するコンテストとなります。
>
> [AtCoder Heuristic Contest 001](https://atcoder.jp/contests/ahc001)より今ま