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

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

queue (9) 係 Python3編

https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__queue

“`py
N = int(input())
A = []
for _ in range(N):
tmp = input()
if tmp == ‘out’:
if len(A) != 0:
A.pop(0)
else:
flag,a = tmp.split()
A.append(a)

print(*A,sep=”\n”)
“`

ただし、下記のようにする場合、
elseだとエラーが発生するので、ちゃんとelifで指定しないとだめ。

“`py
N = int(input())
A = []
for _ in range(N):
tmp = input().split()
if tmp[0] == “out” and len(A) > 0:
A.pop(0)
el

元記事を表示

内定 Python3編

https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__offer

考え方あってる。。。?と思ったけど
答えも同じだったのであっているようだ
しかし合格者から辞退者を引くとマイナスにならないはずだが
この答えを見るとおそらくマイナスになることもあるってことだろう。

なぜなのか?
合格であっても不合格であっても辞退者は出るということだ。
となると、辞退者を引くのはOKで、どっちみち合格者数より辞退者数が上なら
結局は合格者0ってことになるのであってるのか。
なるほど。

“`py
N,K,M = map(int,input().split())
A = [int(input()) for _ in range(N)]
Ans = 0
for i in A:
if i >= K:
Ans += 1

#合格者から辞退者を引く
Ans -= M

#マイナスになる場合は0
if Ans < 0: Ans = 0 print(Ans) ``

元記事を表示

傾斜配点 Python3編

https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__exam

今まで学んだことを活かせてほっ。
ちなみに答えの方は、maxを使わない方法だった。

“`py
N = int(input())
M = list(map(int,input().split()))
A = []
for i in range(N):
A.append(list(map(int,input().split())))

B = []
sum = 0
for i in range(len(A)):
for j in range(len(A[i])):
sum += (A[i][j] * M[j])

B.append(sum)
sum = 0

print(max(B))

“`

元記事を表示

Python学習の振り返り

年も暮れということで、アドベンドカレンダーへの参加意欲が高まったのもあり
ずっとやっているPython学習の振り返りをしていこうと思う。

## Python勉強を始めたきっかけ

@mamineko さんからDeafエンジニアの会の中で
みやさかしんやさんの[pyサブスクール](https://pysubschool.net/)を紹介してもらったのがきっかけ。
字幕をつけていただいたおかげできこえない私でも普通に授業を受けられるようになり、python学習を始めることができた。
自分のペースで学習することができるため、コースの進め方も私のやり方と非常によくあっていた。
ちなみに今も受講中であり、とても楽しい。

@mamineko さんは他にもデフエンジニアの学習機会を増やすということで下記のような働きかけをされたということで頭が上がらない。ありがとうございました!

https://qiita.com/mamineko/items/c41fece301c244af48b7

## 仕事でも使い始める
引き寄せの法則というのか、なぜかわからないけど、仕事でもひょんなことから結局使い

元記事を表示

Python/C API で 素朴な二分探索木を書いてみる

年末が近づくと [Python/C API](https://docs.python.org/ja/3/c-api/index.html) を無駄に使いたくなる衝動は今年も無事に(?)発生。なので素朴な[二分探索木](https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2%E6%9C%A8)でも書いてみましょう。

“`python
from collections.abc import Collection, Iterator
from typing import TypeVar

T = TypeVar(‘T’)

class BinarySearchTree(Collection[T]):

“`

# まずは Pure Python で書き下す
## Poetry new で pyproject.toml
vim a.py で雑に始めて、コードが育ってきたら setup.py, requirements.txt を追加、でも動きはするのですが。 Poetry に新プロジェクトのスケ

元記事を表示

[Python][Julia]project euler 12 (プロジェクトオイラー12)

### Projevt Euler Ploblem 12 (プロジェクトオイラー12)
#### Highly Divisible Triangular Number

Project Euler 12を解いたので、備忘のために残しておく。
Python と Julia のコードを両方かいた(下段)
処理速度はJuliaの方がずっと速い。

自分のPCだと
Pythonが 約5.8秒
Julia が 約1.4秒
だった。

### 問題
問題文(適当な和訳なので、完全に正しいかはわからない。。。)
三角数の数列は自然数の足していくことによってできる。
7番目の三角数は1 + 2 + 3 + 4 + 5 + 7 = 28 となる。
初めの10項は1,3,6,10,15,21,28,36,45,55….となる。
7項目までの三角数の要素を並べると以下のようになる。
1:1
3:1,3
6:1,2,3,6
10:1,2,5,10
15:1,3,5,15
21:1,3,7,21
28:1,2,4,7,14,28
28は約数の数が5個を超える最初の三角数だとわかる。
約数の数が500個を

元記事を表示

JupyterNotebookでコード補完させる方法【データ分析】

こちらの本を読みながらjupyter notebookと戯れているのですが、コード補完してほしいなと思い設定しようと思ったのですが、、、

jupyter labを入れればOKです。

jupyter notebookのサーバを落として、分析してるプロジェクトの中で、

“`
pip install jupyterlab
jupyter lab
“`

でnotebookと同じように起動します。
notebookで作成していたファイルもそのまま編集できるのでこれで十分です。

これでコード書きながら、tabを押せば、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186346/958f4433-b67e-2830-bd04-75fc4172e123.png)

このように補完候補がでてきます。幸せいっぱいですね。

元記事を表示

上手くいかないDQNのコード

入力層のノードが2個、3層で1層あたりのノード数が3個の隠れ層、出力層のノードが4個のQ-networkとtarget-networkで迷路を解こうとしました。
“`python:Deeplearning.py
class Deepnetwork:
def __init__(self,input_layer,hidden_layer,output_layer,learningrate):
self.count_output=output_layer
self.weight=[np.random.normal(0.0,pow(hidden_layer[0],-0.5),(hidden_layer[0],input_layer))]#入力層、隠れ層間の重み -1.0〜1.0までの正規分布(標準偏差-0.5)
for i in range(len(hidden_layer)-1):
self.weight.append(np.random.normal(0.0,pow(hidden_layer[i+1],-0.

元記事を表示

Pythonのコーディングスタイルの統一と静的解析について

# 概要

Pythonを使ったプロジェクトでコーディングスタイルや規約の属人化を抑制するためのツール群について解説します。 VSCodeの拡張機能として使うことを前提とします。

:::note info
※ 私が株式会社愛宕 Advent Calendar 2023に書く記事は主に社内向けに共有しておきたいけど勉強会をするまでもないちょっとしたTipsにしたいと思います。
:::

# やりたいこと

– コーディングスタイルの統一
– 空白の入れ方や改行の位置や一行の行数などを全てのソースコードで統一して読みやすくすること
– コーディング規約の順守
– ソースコードレビューでコーディング規約違反を指摘するのは面倒なので規約が守られているかどうかを機械的にチェックすること
– コーディング規約は最も費用対効果の高い品質向上施策と言われています
– 静的解析
– Pythonにはコンパイルがないため実行時にならないとバグが発見できません。しかし、一部のバグは想定している型の違いに起因することが多いため、コードに型ヒントを記述しそれが矛盾がないかどうか

元記事を表示

CR(キャリッジリターン)を活用してゲームを作ろう!

*この記事では、wsl2のubuntu(Ubuntu 22.04.2 LTS)を使用しています。

ある日、私はやることが特に思いつかずにぼーっとしていました。

しばらくぼーっとしていたところに唐突にやりたいことが降ってきました。
「あっ…なんかコマンドプロンプトでパックマンみたいなゲームがやりたい。つくろu」

そして、作ったのがこちらです。

コード

“`python
import sys

maze_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_list

ls -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”)
“`

元記事を表示

OTHERカテゴリの最新記事