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

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

複数のGPUでOptunaを走らせる

せっかく複数のGPUがあるんだから、シングルGPUで動く深層学習のハイパラチューニングを並列にできないか試してみた。

# ダメな例

以下、ChatGPTに生成させたコードを若干手直ししたもの。これでも小さなモデルだと動いてしまうが、複数のtrialが同じGPUに乗ってしまう可能性があるため、GPUのマシンがバグったり“`CUDA out of memory“`のエラーが出ることがある。

“`python
“””
ChatGPTに吐かせたコード、ダメな例
“””

import optuna
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
import multiprocessing

class SimpleNet(nn.Module):
def __init__(self, input_dim, hidden_dim, output_dim):
super(Sim

元記事を表示

Password Generator

## この記事では、Pythonを使って、安全なパスワードを作成するためのコードを紹介したい。

まず、random関数をimportする。
![Screenshot 2024-06-09 at 18.10.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/a23a36ef-e76e-0324-2c10-5a02f1561d6c.png)

一般的にパスワードは、記号、数字、英文字を含めたら安全だと言える。このプログラムコードにおいて、ユーザに、合計何文字のパスワードを生成した欲しいか、記号は何文字含めて欲しいか、さらには数字を何文字含めて欲しいかを聞いてからパスワードを生成する。

![Screenshot 2024-06-09 at 18.10.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/d70128fc-13a8-60c0-56fd-4615025bb720.png)
以上

元記事を表示

Fizz Buzz 問題に挑戦してみる

### FizzBuzz問題とは

“FizzBuzz”とは英語圏の有名な言葉遊びです。ルールは1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言うというものです。簡単なプログラミングの練習として、3の倍数のときは「”fizz”」、5の倍数のときは「”buzz”」、共通の倍数(のときは「”fizzbuzz”」、その他は「数値」を戻すという単純な処理を実装します。

そこで今回は、範囲を1から100だけに限定して、どの数字がFizz, Buzz,FizzBuzzになるかを検証してみた。

以下の写真が、書いたプログラムコードだ。

![Screenshot 2024-06-09 at 17.54.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/3772d352-2e9d-e236-1ec3-a5c763fb0c82.png)

この3つの添付した写真が、1から100の数字に対

元記事を表示

じゃんけん(Rock Paper Scissors)

### パソコンとのじゃんけんをPythonを使って書くのが、この記事の目的だ。

まず、random関数をimportする。じゃんけんらしくするために、
以下の画像のように、グー、チョキ、パーの画像も取り入れた。

![Screenshot 2024-06-09 at 17.41.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/66699962-55ff-dc8a-274f-f990e10298b5.png)

次に、以下の写真のように、0をRock (グー)、1をPaper(パー)、2をScissor(チョキ)に置き換え、ユーザーに出す手を選ばせる。
![Screenshot 2024-06-09 at 17.45.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/5d626e16-bb04-fd68-cfb8-8631ce9dbba9.png)

そして、今回私は1、つまりパー

元記事を表示

Tip Calculator(チップの計算機)

### 日本では、チップの制度はないが、海外へ旅行したときは、レストランのウェイターへのお礼として、食事代にチップを追加して支払うのが慣例だ。本記事の目的は、チップを割り勘した際にいくらずつ支払うべきかを計算するコードをPythonを使って書いた。

### print (“Welcome to the tip calculator!”)
これは、チップ計算機へようこそという意味だ。

![Screenshot 2024-06-09 at 17.24.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/d99cb5a7-edc6-9344-1d9e-0ff5af80366c.png)

以上の画像のコードをPythonで書いた場合、これに辿り着く。
![Screenshot 2024-06-09 at 17.34.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/2e19dc6a-51a

元記事を表示

Band Name Generator

## この記事の目的は、生まれた都市とペットの名前を入れることによって、バンドの名前を作成するやり方をPythonで書き上げた。

1. print(“Welcome to the band name generator”)
2. city = input(“which city did you grow up in?\n”)
3. pet = input (“what is your name of your pet?\n”)
4. print (“Your band name would be ” + city + ” ” + pet)

例えば、which city did you grow up in?にnishinomiya
what is the name of your pet?にfredrick
と入力すると、Your bandname would be nishinomiya fredrickと出力される。
それが、この添付の画像に出力されている。

![Screenshot 2024-06-09 at 17.07.54.pn

元記事を表示

Pythonのライブラリを作成してPyPIに公開する方法:stringutils-happyの紹介

# はじめに
Pythonのライブラリを作成し、PyPIに公開することは、自分のコードを他の開発者と共有し、再利用性を高めるための素晴らしい方法です。
本記事では、私が作成した文字列操作ライブラリ「`stringutils-happy`」を例に、Pythonのライブラリをゼロから作成し、PyPIに公開する手順を解説します。

:::note alert
同じライブラリ名は権限がないとPyPIにアップできないので自分の決めたフォルダ名で作成するようにして下さい!
:::

# ライブラリの概要
`stringutils-happy`は、文字列操作に関するいくつかの便利な関数を提供するシンプルなライブラリです。このライブラリには以下の機能が含まれています:
– 文字列を逆にする関数
– 文字列の大文字小文字を反転する関数
– 文字列の単語をカウントする関数

# 環境の準備
まず、Pythonの仮想環境を作成します。仮想環境は、プロジェクトごとに異なるパッケージを管理するために使用します。

:::note warn
ここのフォルダは適宜置き換えて下さい。
:::

“`bash
$ m

元記事を表示

Python での getter/setter の書き方 3 選

## まえがき

私が資格取得もかねて Python の基礎知識を見直していたところ、Python の getter/setter にはいろいろ書き方があることを知りました。業務で 1 年半 Python を書いてきて「もう使いこなしているぞ」という段階においてです。

プログラミング経験者で他の言語を習得しようとするときには、概念だけを知っている状態でとりあえず実装してみようとなる人もいますが、このときに、習得しようとしている言語にもっと便利な書き方があることに気付かず、すでに知っている言語と同じような書き方で終わってしまうことがあります。

備忘録を兼ねつつ、Python を学習中の方にも、すでに習得しているという方にも知っていてほしいと思ったので、今回の記事を書くことにします。

## 前提

この記事では、getter/setter の概念は習得済みであるとします。
deleter については省略します。
また、getter/setter の是非論については扱いません。

## Python での getter/setter の書き方

:::note info
今回、

元記事を表示

functional graph問題をPythonで解く

# functional graphとは

AtCoderのABCで以下のようなfunctional graphと呼ばれるグラフ構造の問題が出ることがある。

– [D-Teleporter](https://atcoder.jp/contests/abc167/tasks/abc167_d)
– [E-Reachability in Functional Graph](https://atcoder.jp/contests/abc357/tasks/abc357_e)

functional graph とは、各ノードから出ているエッジが1本のみである有効グラフのことで、ノード$u$からエッジを通して辿り着くノードを$f(u)$のように関数的に表せることからfunctional graphとよばれている。

このfunctional graphには、以下のような性質がある。

$Gの連結成分がK個あってC_1,​C_2,…,C_K
とする。このとき、各連結成分には閉路が1つだけ存在する$

(引用:[E – Takahashi’s Anguish 解説 ](https://atcod

元記事を表示

Kaggleチュートリアル① Kaggle登録~タイタニックコンペのサンプルデータ提出

## 概要
Kaggleのアカウントを作成して、サンプルデータを提出するまでの手順です。

## ゴール
タイタニックコンペのサンプルデータを提出するまでを行います。

## Kaggleとは

Kaggle(カグル)とは、データサイエンスや機械学習のコンペティションを提供するプラットフォームです。

用意された課題・データセットを基にモデルを構築し、予測精度を競い合うことで、他のデータサイエンティストの手法を学びながら、実践的な経験を積むことができます。

## タイタニック生存者予測とは

タイタニック生存者予測とは、Kaggle入門として有名なコンペで、タイタニック号の乗客データを用いて、乗客が生存したかどうかを予測するコンペです。

※本記事は予測モデル構築は行わず、用意されているテストデータの提出までを行います。

## 手順
以下より、Kaggleのアカウントを作成し、入門コンペとして最もメジャーである「タイタニックの生存者予測」のサンプルデータ提出までを行っていきます。

### 1. Kaggleのアカウント作成

– [Kaggleのウェブサイト](https:

元記事を表示

ROS2講座22 rostopicのログをrosbagに保存する

# 環境

この記事は以下の環境で動いています。

| 項目 | 値 |
|:–|:–|
| CPU | Core i5-8250U |
| Ubuntu | 22.04 |
| ROS2 | Humble |

# 概要
simやロボット実機を動かしているときに、rostopicの動きを確認したくなることは多々あります。
ros2の標準ツールでもログはとれるのですが、「取得間隔の間引き」が出来ないためにpythonノードを書いてみます。

## rosbag
rosbagはROSで使われるrostopicのログの形式です。

# ソースコード

## pythonノード

“`python:logger.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import uuid
import datetime
import os

# ROS2
import rclpy
from rclpy.node import Node
from rclpy.executors import MultiThreaded

元記事を表示

Pythonでdiscord botを作る(py-cord)1

# はじめに
### 今回の記事の対象
– pythonの実行環境がすでに整っている
– vscordなどのeditorの準備がすでにできている
– pythonの基本的な書き方がわかっている
– discord botのアカウントの作成方法がわかっている
# py-cordの入れ方
“`
pip install py-cord
“`
ターミナルに入力してください

# 基本的な使い方
#### prefixコマンドの実装方法
“`python3
import discord
from discord.ext import commands

token = “”

bot = commands.Bot(
command_prefix=”!”,
intents=discord.Intents.all(),
help_command=None
)

@bot.command()
async def hello(ctx):
await ctx.respond(f”hello {ctx.author.mention}”)

bor.run

元記事を表示

venvで仮想環境を作ろう!Python開発をもっと快適に

# venvで仮想環境を作ろう!Python開発をもっと快適に

Pythonを使った開発をしている皆さん、仮想環境は使っていますよね?
私のロールは開発者ではないのですが、個人的なツールを作るときに仮想環境の便利さを知ってしまい、最近ようやくvenvを使って仮想環境を管理するようになりました。

## venvって何?

venvとは、Python 3.3以降に標準ライブラリに追加された仮想環境管理ツールのことです。仮想環境を使うと、プロジェクトごとに独立したPython環境を作ることができます。つまり、プロジェクトAとプロジェクトBで、別々のパッケージやそのバージョンを使い分けられるということです。

## venvを使うメリット

– 標準ライブラリなので、別途インストールが不要
– 軽量で使いやすい
– プロジェクトごとに環境を分離できるので、依存関係の衝突を防げる

## 仮想環境の作り方

1. プロジェクト用のディレクトリを作成
“`
mkdir myproject
cd myproject
“`

2. 仮想環境を作成
“`
p

元記事を表示

python3_練習

## Prompt:
undefined

## Response:
はい、承知しました。私は世界最高のアプリケーション設計エンジニアとして、あなたのアプリケーション要件に対する最適な設計案を提案させていただきます。

アプリケーションの要件をお聞かせいただければ、以下の点を考慮しながら、最適な設計をご提案します。

1. ユーザーエクスペリエンス (UX) の向上
2. パフォーマンスとスケーラビリティの確保
3. セキュリティとプライバシーの確保
4. 保守性と拡張性の向上
5. 開発の効率化とコスト最適化

アプリケーションの目的や主な機能、対象ユーザー、非機能要件などをお聞かせいただけましたら、それらを踏まえて最適なアーキテクチャ、 UI/UX デザイン、使用する技術スタックなどを具体的にご提案させていただきます。

ご要望やご質問がありましたら、どんなことでもお聞かせください。世界最高の設計案を一緒に作り上げていきましょう。

## Prompt:
undefined

## Response:
はい、業務要件を整理しました。主なポイントは以下の通りです。

1. 会社概要

元記事を表示

Pythonの基礎を固めよう!

PythonでHello Worldを実装しよう!

print(‘Hello World’)

元記事を表示

Pythonにおける==とisの違い

# 前書き
Pythonにおける比較演算子として==演算子とis演算子があります。
これらは混同されがちですが、その明確な違いについてメモしておこうと思います。

# 結論
==演算子はオブジェクトの等価性を比較し
is演算子をオブジェクトの同一性を比較する

# 説明

### ==演算子

==演算子は、オブジェクトの値が等しいかどうかを比較します。
つまり、オブジェクトが同じ**内容**であるかどうかをチェックします。
例えば、`a == b`は、aとbの値が等しい場合にTrueを返します。

### is演算子
is演算子は、オブジェクトの同一性を比較します。
つまり、オブジェクトが同じ**メモリ位置**を指しているかどうかをチェックします。
例えば、`a is b`は、aとbが同じオブジェクトを指している場合にTrueを返します。

# 確認
下記の例では?の箇所に==もしくはisが入ります。
どちらが適切でしょうか。

### 例1
“`
a = [1, 2, 3]
b = a
if a ? b:
print(“Same object”)
else:
pr

元記事を表示

Python 復習

# はじめに
先日、職業訓練校を修了した、bdrccです。
最近はPHPに注力していたこともあり、Pythonの基本構文がだんだん抜けていることに気がつきました。
そこで、改めて基本的な文法を、ここでアウトプットしておこうと思います。

# 文字列を1文字ずつ配列に
`split`ではなく、`list`で

“`py:
name = ‘bdrcc’
name_split = list(name)
print(name_split)
# [‘b’, ‘d’, ‘r’, ‘c’, ‘c’] が出力される
“`

# 1文字ずつの配列を結合
`join(~)`で
これは記憶がありました

“`py:
name_split = [‘b’, ‘d’, ‘r’, ‘c’, ‘c’]
name_join = ”.join(name_split)
print(name_join)
# bdrcc が出力される
“`

元記事を表示

文系SEがPythonエンジニア認定データ分析試験を短期間で合格した話

# Python3認定データ分析試験の体験記です。

23年9月末にPython3認定データ分析試験を受験し合格しました。
昨今、Python認定試験の受験予定者が多くなってきたと感じました。

当時短期間で合格することが出来たため、その際のノウハウを残し、これから受験する皆様の参考になればと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596363/f3589341-c740-1603-7fe5-cdf88ae896f8.png)

# 私の当時のスペック
当時、私は文系学部の大学を卒業した後、公務員を経て転職し、IT企業(SES)で5年目でした。
IT業務の経歴は、インフラ系に身を置いた後、アプリ開発のプロジェクトを担当していました。

アプリ開発を担当していましたが、プログラミングをがっつり行っていた訳ではなく、サーバ周りの業務を担当していました。

私は2020年度にPython認定基礎試験を受験し合格しました。
基礎的なPythonの書き方を把握していましたが、デ

元記事を表示

文系SEがPython3エンジニア認定基礎試験を受験した話

# Python3エンジニア認定基礎試験合格体験記
2020年9月末にPython認定基礎試験を受験し合格しました。

お伝えできる内容が少し年数を経過してしまっていますが、受験合格に向けた学習の糧にして頂ければと思います。
受験規約により試験問題を記載することは出来ませんが、私が受験した試験の感想を残し、これから受験する皆様の参考になればと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596363/3efd5135-d4b1-ef78-e29e-0531d7c80bb7.png)

# 私のスペック
当時私は、私は文系学部の大学を卒業した後、公務員を経て転職し、IT企業(SES)で2年目でした。
当時は、インフラ系の業務に身を置いていて、プログラミング経験はありませんでした。
しかし、プログラミングの力を付けたいと思い、当時人気言語として評判があったPythonを勉強し始めたのがきっかけです。

# 勉強時間
当時私が勉強していた期間はおおよそ1ヵ月程度だった記憶です。

元記事を表示

R使いの皆さん、Pythonのキモいところをいっぱいお見せします(対策あり)

# はじめに

こんにちは、事業会社で働いているデータサイエンティストです:

データサイエンスで意思決定を加速させる。それが私の【passion】。

普段の業務ではRやSQL、git、Docker関連のlinuxコマンドなどを使っていて、Pythonを利用することはほとんどないですが、言語仕様自体は理解しています。

以前Pythonの観点からRのキモいところをいっぱい説明する記事を出したら、かなり良い反応があったので、

https://qiita.com/Gotoubun_taiwan/items/d958623d09100ea8095e

今回はR、特にtidyverseのモダンな観点から、Pythonのキモいところを説明しようと考えております。

具体的にはR言語(R6オブジェクト指向プログラミングシステムは除く)には存在しえないミュータブルなオブジェクトの挙動と、pandasの型のゆるさを中心に共有できればと思います!

結論を先に話すと、**Python書くときはPythonの言語仕様にあった書き方をしましょう**。これはプログラミングを超えた社会の真理だと思います。無

元記事を表示

OTHERカテゴリの最新記事