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

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

AtCoder Beginner Contest(ABC) 276 – Pythonでのバーチャル参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 276
– 開催日時
– 2022/11/5(土) 21:00 – 22:40
– 実施区分
– バーチャル参加
– 2022/11/7(月)

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|11:05|25ms|
|B問題|TLE|-|2208ms|
|C問題|未提出|-|-|

# 4. 解説

## 4-1. A問題

### 4-1-1. 問題文
> 英小文字からなる文字列 S が与えられます。
S に a が現れる

元記事を表示

Pythonで引数と戻り値の型を明示する

# 前提
そもそもPythonでは引数や戻り値等の型を宣言する必要はない。
変数について型を宣言しないことで、柔軟かつ簡単にプログラムを記述できるというメリットがある。
一方、可読性の面では、場面ごとに各変数がどの型であるかを把握しづらくなるデメリットがあるといえる。

# Pythonで型を明示する意義
引数や戻り値として想定される型を明示することで、コードの可読性と保守性を高める。
(あとで読んだときに理解しやすい)
※型を明示するが、処理として型安全性を保証するものではない。つまり、明示した型以外の値が変数に代入されても通常通り処理される。

# アノテーション記法
Pythonでは、変数の型についての注釈(アノテーション)を記述するための記法としてアノテーション記法が用意されている。
次のように記述することで変数の型を明示することができる。
“`Python
a: int = 10
b: bool = True
c: str = ‘Hello’
“`
これを用いて、次のように関数の引数も型を明示できる。
“`Python
def func(a:int, b:bool, c

元記事を表示

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

## 本記事について

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

## 前回の記事



## ユーザー登録画面の作成

`app.py`を作る

“`python
import streamlit as st
import random # ランダム値がほしいので
import datetime # 時刻を扱うため
import requests
import json

# サイドバーを作って各ページを用意
page = st.sidebar.selectbox(‘ページを選択してください’, [‘ユーザー’, ‘面会室’,

元記事を表示

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

## 本記事について

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

## 前回の記事


## メインファイルの作成

`sql_app`フォルダーなのかに
`main.py`を作る

“`python
from typing import List
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session

from . import crud, models, schemas
from .database import SessionLocal, engine

# データベースエンジンを元にデータベースを作成
models.Base.metadat

元記事を表示

[Python]timeitで処理時間を計測してみた

# はじめに
– 今回はPython標準ライブラリのtimeitモジュールを使って、プログラムの処理時間を計測してみたいと思います。
– 動作環境
– Python 3.11.0
– macOS Ventura

# timeitとは
timeitはPython標準ライブラリのモジュールで、小さなコードの計測に便利です。

timeitモジュールは、コードの一部を指定した回数だけ実行することで、その処理速度を計測して、平均処理時間を計測できます。また、デフォルトでは計測中、一時的にガベージコレクションを無効にすることで、個々の計測結果がより比較しやすくなります。

timeitを使って以下の3つのやり方で処理時間を計測してみます。
– pyファイル内で計測
– コマンドラインで計測
– 対話モードで計測

※処理時間は実行するマシンの性能によって異なる場合があります。

# pyファイル内で計測
## timeit.timeit()
“`python
import timeit

timeit.timeit(stmt=’pass’, setup=’pass’, tim

元記事を表示

paizaラーニング「積の最小化 Python3編」

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_boss
私の回答
“`Python
a,b=[int(x) for x in input().split()]
if a<0 and b<0: print(b*b) elif a<0 and b>0:
print(a*b)
elif a==0 or b==0:
print(0)
elif a>0 and b>0:
print(a*a)
“`
elifでプログラムを終了してしまい、中途半端になってしまいました。

模範回答
“`Python
a, b = [int(x) for x in input().split()]

if a <= 0 and b >= 0:
# a から b の間に 0 が含まれる
print(a * b)
elif a > 0:
# a と b が両方とも正の数
print(a * a)
else:
# a と b が両方とも負の数

元記事を表示

paizaラーニング「タイルの敷き詰め Python3編」

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step8
私の回答
最初値が0のときを想定せず、何度もトライしました。
“`
h, w = [int(x) for x in input().split()]

if h==0 and w==0:
print(“NO”)
elif h==0 or w==0:
print(“NO”)
elif h%2==0 and w%2==0:
print(“YES”)
else:
print(“NO”)
“`
模範回答
“`
h, w = [int(x) for x in input().split()]

if h == 0 or w == 0:
print(“NO”)
elif h % 2 == 0 and w % 2 == 0:
print(“YES”)
else:
print(“NO”)
“`
– 1 つだけ注意点があります。本問は「この箱を 1 つ以上の高さ 2 、幅 2 の四

元記事を表示

paizaラーニング「池の周回 Python3編」

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step6
私の回答
“`
n,k,t=[int(x) for x in input().split()]
if (k*t)%n==0:
print(“YES”)
else:
print(“NO”)
“`
模範回答
“`
n, k, t = [int(x) for x in input().split()]

if k * t % n == 0:
print(“YES”)
else:
print(“NO”)
“`
今回は模範解答と私の回答がほぼ同じでした!!

元記事を表示

paizaラーニング「終了判定 2 Python3編」

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step5
私の回答
whileとbreakを同時に使う必要がなかったようでした。
長い回答にしてしまいました。
“`
n,k=map(int,input().split())
count=0
while (n<=k): if n>=k:
break
n=n*2
count=count+1
print(count)
“`

模範回答
“`
n, k = [int(x) for x in input().split()]

m = 0
while n < k: n *= 2 m += 1 print(m) ```

元記事を表示

paizaラーニング 「終了判定 Python3編」

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step4
私の回答
“`Python
n=int(input())
array=list(map(int,input().split()))
sum=0
for i in range(n):
if array[i]%2!=0:
break
sum=sum+array[i]
print(sum)
“`

模範回答
“`Python
n = int(input())
a = [int(x) for x in input().split()]

ans = 0
for ele in a:
if ele % 2 == 1:
break

ans += ele

print(ans)
“`

元記事を表示

Atlassian API を利用して、 Confluence にページを作成する

OTHERカテゴリの最新記事