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

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

CyberAgentLM3-22B-Chat(cyberagent/calm3-22b-chat) 試してみた

# calm3-22b-chat

サイバーエージェントさんが先日リリースした、calm3-22b-chat を試してみました。すごいじゃないですか、これは!

[![calm322bchat.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3752825/a65b5255-79e0-858d-8788-b725ed21e23b.gif)](https://chatstream.net/?ws_name=chat_app&mult=0&ontp=1&isync=1&model_id=calm3_22b_chat)

# ためした環境

GPU: RTX A5000

# calm3-22b-chat を試せるチャットを公開しました

以下で、 calm3-22b-chat とチャットできるようにしました

https://chatstream.net/?ws_name=chat_app&mult=0&ontp=1&isync=1&model_id=calm3_22b_chat

あとで、類似モデルと

元記事を表示

Pythonで週間スケジュールを作成してみた

### 前置き
私は、毎日の予定(スケジュール)を管理するのに、手帳とGoogle Calendar両方を使用している。今回は、Pythonを使って週間スケジュールを作成してみました。

スケジュールとは、予定や計画、時間割を意味する英単語です。
主に、あらかじめ決められた時間や順序に従って行われる活動やイベントのリストです。

引用元:https://www.weblio.jp/content/%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB

### 週間スケジュールのプログラムコード
“` python
from datetime import datetime, timedelta

class Event:
def __init__(self, start_time, end_time, description):
self.start_time = start_time
self.end_time = end_time
self.description =

元記事を表示

Pythonで、三平方の定理(ピタゴラスの定理)を用いて、直角三角形かどうかを判定してみた

### 前置き
今日は、Pythonを使ってユーザーが三角形の3辺を入力したら、直角三角形になるかならないかを判定するプログラムコードの作成に着手しました。

### 三平方の定理(ピタゴラスの定理)とは
![Screenshot 2024-07-08 at 15.40.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/c4d4a216-2a42-dd75-274b-0017981dc349.png)
引用元:https://lab-brains.as-1.co.jp/enjoy-learn/2023/03/44327/

### 直角三角形かどうかを判定するプログラムコード
“` python
import math

def is_right_triangle(a, b, c):
# 3辺の長さを昇順にソートして、最長の辺をcにする
sides = sorted([a, b, c])
a, b, c = sides[0], sides[1], sides[

元記事を表示

Pythonで、日時の差を計算するプログラムコードを作ってみた

### 前置き
今日は、Pythonを使って、ユーザーが2つの日付と時間を入力したら、その時間の差は、何日何時間何分何秒差ですと出力されるプログラムコードの作成に着手しました。

1日は、24時間、1440分、86400秒です。
理由:1日=24時間、1時間=60分、1分=60秒
時間を分に変換するにはその値に60を掛けて、
分を秒に変換するにはその値に60を掛けるからです。

### プログラムコード
“` python
from datetime import datetime

def calculate_datetime_difference(start_datetime_str, end_datetime_str):
try:
format_str = “%Y-%m-%d %H:%M:%S”
# 時間文字列をdatetimeオブジェクトに変換する
start_datetime = datetime.strptime(start_datetime_str, format_str)
end_datetime

元記事を表示

Pythonで等差数列、等比数列を出力するプログラムコードを作ってみた

### 前置き
等差数列とは、初めの数に一定の数を足し続ける法則です。
等比数列とは、初めの数に一定の数を掛け続ける法則です。
今日は、Pythonを使って、等差数列と等比数列を出力するコードを作りました。

### 等差数列のプログラムコード
このプログラムコードでは、ユーザーが初めの項、公差、項数を指定します。
その後、等差数列になります。
“` python
def arithmetic_sequence(a, d, n):
“””
等差数列を生成する関数

Parameters:
a (int or float): 初項
d (int or float): 公差
n (int): 項数

Returns:
list: 等差数列
“””
sequence = []
for i in range(n):
sequence.append(a + i * d)
return sequence

# ユーザーが入力
a = float(input(“等差数列の初項を入力してください: “))
d = float(input(“

元記事を表示

UUIDを使った一意識別子の生成方法

## はじめに

UUID(Universally Unique Identifier)は、128ビット長の一意識別子であり、データベースやネットワーク上での一意性を確保するために広く使われています。Pythonの標準ライブラリ`uuid`を使うと、簡単にUUIDを生成できます。

## UUIDの種類
UUIDにはいくつかのバージョンがあり、それぞれ異なる方法で識別子を生成します。以下は主なUUIDの種類です:

1. **UUID1**: タイムベースUUID
– タイムスタンプとノード(通常はMACアドレス)に基づいて生成されます。
– 時間順に生成されるため、タイムスタンプを元にした一意性が保証されます。

2. **UUID2**: DCEセキュリティUUID
– ローカルドメイン、POSIX UID/GID、およびタイムスタンプに基づいて生成されます。
– 一般的には使用されません。

3. **UUID3**: 名前ベースUUID(MD5)
– 名前空間と名前のMD5ハッシュに基づいて生成されます。
– 同じ名前空間と名前に対しては常に

元記事を表示

[Python]ジェネレータ

# ジェネレータ

ジェネレータ(generator)は、Pythonでイテレータ(iterator)を生成する関数です。通常の関数と異なる点は、関数が呼び出されるたびに `return` キーワードで値を返して終了する代わりに、`yield` キーワードを使用して値を返し、一時的に関数の状態を保持し、次に呼び出されたときに続きから実行できる点です。

ジェネレータ関数は呼び出されるとジェネレータオブジェクトを返し、このオブジェクトは `iterable` インターフェースを実装し、`next()` 関数を使用して値を順次取得することができます。ジェネレータはメモリを効率的に使用し、大容量のデータや無限シーケンスを扱うのに役立ちます。

### 例:

“`python
def countdown(n):
while n > 0:
yield n
n -= 1

# ジェネレータオブジェクトの作成
gen = countdown(5)

# 値を順次取得する
print(next(gen)) # 5
print(next(gen)) # 4

元記事を表示

エラーログ監視アラート: AWS Fargate + CloudWatch + Lambda + SNS

# はじめに

このドキュメントは、AWS Fargateを使用して実行されるWebサイトのエラーログを監視し、問題が発生した際にメールで通知するためのシステムを構築する手順を説明します。このシステムは、CloudWatch Logsを使用してログを収集し、Lambdaを使用してエラーログを検出し、SNSを使用して通知を送信します。

作成したリポジトリはこちらです。

https://github.com/sugiyama404/practice_cloudwatch_sns

## 目的

Webサイトの可用性と信頼性を確保するために、エラーログをリアルタイムで監視し、問題が発生した際に即座に対応することが重要です。このシステムは、以下の目的を達成するために設計されています。

+ **リアルタイム監視**: エラーログをリアルタイムで監視し、迅速な対応を可能にする。
+ **自動通知**: エラーログが検出された際に、自動的に通知を送信し、担当者に即座に知らせる。
+ **インフラの可視化**: AWSサービスを活用して、ログ監視と通知のインフラを効率的に構築する。

## イ

元記事を表示

【python】pygameでスネーク風のゲームを作ってみた

## 背景
pygameでスネーク作りたい。

## スネークとは?

知らない方以外といそう。こちらをご参考にしてください。
https://www.coolmathgames.com/ja/blog/スネーク・ザ・ゲームの歴史

## ソースコード

“`py main.py
import pygame
import sys
import random

# 初期化
pygame.init()

# 画面サイズの設定
width = 640
height = 480
screen = pygame.display.set_mode((width, height))

# 色の設定
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
black = (0, 0, 0)

# ゲームの状態
game_over = False
game_clear = False
game_start = False

clock = pygame.time.Clock()
snake_speed = 10

# スネークと食べ物

元記事を表示

[Python]内包表記

# 内包表記とは

**内包表記**を使うとりすと、辞書、集合などを生成するときより**簡潔**に、そして**早く**作成できます。

まずは、従来の方式であるfor文を使って0から9までの数を2で乗じた結果をリストに保存してみましょう。

“`python
a = []
for i in range(10):
a.append(i*2)

a # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
“`

今度は**内包表記**を使ってリストを生成します。

“`python
a = [i*2 for i in range(10)]

a # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
“`

そして、if文を使ってフィルタリングもできます。
“`python
a = [i*2 for i in range(10) if i < 5] a # [0, 2, 4, 6, 8] ```

## ネストしたリスト
ネストしたリストも**内包表記**で生成できます。

“`python
sh

元記事を表示

Lambda使ってみたいけど、まだ使ったことがない人へ

# はじめに

AWS、サーバーレス、Lambdaなど名前は聞くが難しそうと思っている方も多いのではないでしょうか?
今回はサーバレスの何がいいのか、どんな時に使えるのか、どう使うのかなどにフォーカスして紹介できたらと思います。

# サーバーレスの特徴

一言で表すと以下のような感じです。

> コストを抑え、余計なことを考えずにコードを書いて実行できる

#### インフラストラクチャの管理不要

サーバーレスでは、クラウドプロバイダーがインフラのセットアップ、保守、スケーリングをすべて管理します。
基本的な保守運用やスケーリングを自動でやってくれると思っていただければ大丈夫です!

#### コスト効率
サーバーレスは「ペイ・アズ・ユー・ゴー」モデルを採用しているため、使用した分だけ料金が発生します。
どれくらいコストがかかるかざっくり案内します!
毎月1,500,000回のリクエストがあり、128 MBのメモリを使用して0.5秒で実行されるLambda関数を使用した場合、概算で11円です。

つまり、簡単な開発やテストをする分にはほとんど料金が発生しません。

:::note

元記事を表示

Bike Sharing Demand – Kaggle ~ 詳細:正しいatempをtemp、humidity、windspeedから得る

# 目次
– [本記事について](#本記事について)
– [正確なatemp値を得たい](#正確なatemp値を得たい)
– [方針](#方針)
– [Washington D.C.の実際の天気ログを参照し真の温度tを得る](#washington-dcの実際の天気ログを参照し真の温度tを得る)
– [天気ログの取得](#天気ログの取得)
– [windspeed=0は確からしい](#windspeed–0-は確からしい)
– [tempの補正式取得](#tempの補正式取得)
– [各月に於けるtempの分布](#各月に於けるtempの分布)
– [humidity = 0 について](#humidity–0-について)
– [humidity = 0 のデータ確認](#humidity–0-のデータ確認)
– [実際の天気予報を確認](#実際の天気予報を確認)
– [humidity = 0 を置換](#humidity–0-を置換)
– [tとhumidity、windspeedからatを算出](#tとhum

元記事を表示

Python_Googleアラート_240709

### エラー
エラーが発生しました。

#### https://news.biglobe.ne.jp/it/0708/6989924977/mnn_index_jpg.html

### 小中学生向けPython学習システム「トイプロ」でスクールコンテストが開催 – MARK株式会社のプレスリリース
MARK株式会社が提供する小中学生向けPython学習システム「トイプロ」で、プログラミングスクール向けのコンテストが開催されます。トイプロは、プログラミングスクールや学習塾などで利用されているシステムです。コンテストでは、Pythonを使った問題に挑戦し、制限時間内にどれだけ多く解けるかを競います。上位3名には賞状と景品が贈られます。

#### https://www.value-press.com/pressrelease/340147

### 初心者に大人気のPythonをうらやむJava、mainメソッドの省略すら視野に(3ページ目):日経クロステック Active
初心者向けのプログラミング言語として人気のPythonに、Javaが嫉妬しているという記事で

元記事を表示

ライフゲームでマトリックスっぽいことやってみたい!

# はじめに
どうも、y-tetsuです。

今回、ライフゲームでマトリックス・コード(画面の上から降ってくる緑色のコード)っぽいことをやってみたい!と思い、実際に試してみた結果を残しておきます。

ちなみに、本記事は過去に作ったオリジナルからアレンジしたライフゲームの仕様をベースに書いています。もしまだ読まれていない方は、以下の記事を是非ご覧ください。

https://qiita.com/y-tetsu/items/264d263717f933ad3cb2

# マトリックス・コードっぽさとは
普通のライフゲームを実行すると、概ね以下のような動きになると思います。

![galaxy.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2653390/4694c1a6-71bf-a2a6-7730-64ebeb927298.gif)

こいつは、「銀河」と呼ばれるその界隈では名のあるパターンです。

このようなライフゲームの動きや見た目に、以下の3つの”それっぽさ”を加えることでマトリックス・コードに近

元記事を表示

Pythonで美しい設計・コーディングを実践するために読んだ書籍3冊

## はじめに

Pythonにて美しい設計・コーディングを実践したく、読んだ書籍3選を紹介する。

想定読者

– Pythonのプログラミングに挑戦したい人。
– Pythonでの美しい設計・コーディングを0ベースで学習したい人。
– 大規模開発に耐えうるPythonの設計技術を学びたい人。

## Pythonでの美しい実装を実現するために読んだ書籍3選

Pythonにて美しい設計・コーディングを学ぶ上で、以下の3冊の本が良かったです

– [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)](https://www.oreilly.co.jp/books/9784873115658/)、美しい・優れたコードの原理原則を学ぶのにおすすめである。
– [良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方](https://gihyo.jp/book/2022/978-4-297-12783-1)、優れた設計を良いコード・悪いコード例にて、体系的に学ぶのにおすすめである。
– [Eff

元記事を表示

vec

“`
”’
クラスにすることでコードの再利用性、拡張性、構造化が向上します。以下に、あなたのコードをクラスとして構造化した例を示します。
このクラスでは、各関数は @staticmethod デコレータを用いて静的メソッドとして定義されています。これにより、クラスのインスタンス化なしにメソッドを呼び出すことができます。
”’

import numpy as np
from scipy.linalg import lstsq

class VectorCalc:
“””さまざまなベクトル計算を行うためのクラス。”””

def __init__(self):
pass

@staticmethod
def vector_length(vector):
“””ベクトルの長さ(ノルム)を計算する。

Args:
vector (numpy.ndarray): 長さを計算する対象のベクトル。

Returns:
float: ベクトルの長さ。

元記事を表示

【自分用】内包表記の書き方(リスト、辞書、集合)

# この記事を書いたきっかけ
Pythonでプログラミングの練習をしています。一般的なリストや辞書を書くことには慣れてきましたが、内包表記にはなかなか慣れません。内包表記を使ってリストや辞書をうまく書くには、その構造をよく理解して何度も練習する必要があります。

そこで、内包表記の書き方を簡単にまとめたいと思い、記事にしました。
***
**オススメの記事**

https://note.nkmk.me/python-list-comprehension/

https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions

https://qiita.com/puchi2121/items/4163d177f54f80d913f3

# 内包表記とは
内包表記とは、Pythonにおいてイテラブル(例えばリスト、辞書、集合など)から新しいイテラブルを簡潔に生成するための構文です。読みやすいコードを簡単に書くことができます。

## 1. リスト内包表記
リストから新しいリストを作成する際に使います

元記事を表示

『モデルベース深層学習と深層展開』読み会レポート#5

$\def\bm{\boldsymbol}$

# 概要
– オンラインで開催している[『モデルベース深層学習と深層展開』読み会](https://majime-ni-study.connpass.com/event/)で得られた知見や気づきをメモしていく
– ついでに、中身の理解がてらJuliaサンプルコードをPythonに書き直したコードを晒していく
– 自動微分ライブラリにはJAXを使用する

# 第5回
## 大まかな内容
– 以下の最適化のトピックを、深層展開の視点を絡めて取り扱った
– 射影勾配法
– 勾配雑音を含む勾配法
– 非凸最適化問題への勾配法の適用
## 議論になったこと
### 3.4.1節 あたり
– リプシッツ性関連
– そもそも数学的に滑らかってどんな定義だっけ?
– ->右からの導関数も左からの導関数も同じ点に収束する
– それよりはリプシッツ性はかなり弱い性質、リプシッツ定数Lの大きさによっては、人間の目にはカクッとして見える場合もある
– 劣一次収束、一次収束関連
– 1

元記事を表示

【Python】unicodedataのeast_asian_widthで半角か全角かを判断する

# 概要
連携される文字列が「半角なのか全角なのか」を判定させる必要があったので、pythonの`unicodedata`モジュールを利用してみました。サンプルコードを紹介します。

公式ドキュメントはこちら。

> unicodedata.east_asian_width(chr)
ユニコード文字 chr に割り当てられたeast asian widthを文字列で返します。

https://docs.python.org/ja/3.6/library/unicodedata.html

# サンプルコード解説
`unicodedata`モジュールの`east_asian_width`を利用すると、「東アジアの文字幅」のカテゴリーが返ってきます。
主に以下の4つがあります。

F (Fullwidth):全角英数
W (Wide):全角かな、漢字
H (Halfwidth):半角カタカナ
A (Ambiguous):特殊文字

https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E

元記事を表示

ABC361Fを解いた

筆者はレート600前後の茶色コーダ

この前開催されたABC361で解けなかった以下の問題を解いていく

https://atcoder.jp/contests/abc361/tasks/abc361_f

# 実装コード

2番目の解説の方針に従い、$b=2$は計算で求め$b \ge 3$以降を全探索的な感じに調べる
$b = [3,60)$ の区間で $a^b$ の値を計算し、$N$より大きくなったら$b$を1増やして最初から、
求めた$a^b$が何らかの数字$c$で$c^2$と表記できない場合は数えるようにして。
区間内の計算が終わったら計算で求めた$b=2$の個数と$b = [3,60)$で探索した結果を合算すればOK

$c^2$で表現できるか確かめる方法は平方根の小数点以下切り捨てで計算した整数値の2乗が元の値になるかで調べるみたい。
その時の平方根は解説の実装ではニュートン法?を使っているっぽい。

“`python
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): ret

元記事を表示

OTHERカテゴリの最新記事