- 1. python:型指定して変数を定義するときに:を使用する
- 2. アニマロッタ6 アニマと星の物語 スターダストワンダーチャンスの突破率について求める
- 3. 【3】python キャスト(授業資料3 演習)
- 4. 【2】複合代入演算子を用いた四則演算(授業資料3 演習)
- 5. 【高等学校 情報Ⅰ,Ⅱ】 授業シラバス(WIP)
- 6. 【演習1】計算してみよう(授業資料1 演習)
- 7. # 毎月壁紙を自動で変えたい!その2
- 8. 【Heroku】GitHub連携でFlaskアプリのデプロイ(コピペ用)
- 9. Djangoで初期データをfixtureで登録・dump
- 10. 【Python3】M1 Mac(Docker)で分散並列処理フレームワークRayのサンプルコードを動かす
- 11. Pythonのgoogletransを用いた翻訳
- 12. リストから名前指定remove()したときに同じ名前の要素が複数あったらどうなるか
- 13. 【Flask】5分で仮想環境構築と「Hello World!」の表示
- 14. 【Python】argparse で `–help` や `–version` のようなコマンドを自作する
- 15. pipenv で Django の開発環境をパパッと用意する
- 16. Python拡張の作り方
- 17. Python matplotlibでリアルタムに音を可視化
- 18. WSLでGUIアプリを実行する
- 19. discord.pyでCogとSlashCommandを両方使う
- 20. schemdrawでMOSトランジスタと回路を描く
python:型指定して変数を定義するときに:を使用する
pythonで型指定した変数を定義することができます。
“`basic.py
>>> val_initial : int = 2
“`この型指定された変数の値の変更の仕方には癖があります。
“`sample1.py
>>> thickness: int = 2
>>> print(thickness)
2
>>> print(type(thickness))
>>> name: str = ‘hello’
>>> print(type(name))
“`
下記のように数字を入れた変数xをint型指定されたvalに代入したときに
その変数xの値を変更したときに、valは自動では書き換わりません。
“`sample2.py
>>> x = 2
>>> val:int = x
>>> print(val)
2
>>> x = 12
>>> print(val)
2
>>> val:int = x
>>> print(val)
12
“`型指定の変数を宣言できますが、
そこに型が決まってない
アニマロッタ6 アニマと星の物語 スターダストワンダーチャンスの突破率について求める
#目的
現在のチャンスカード、微チャンスカードを含めた全てのカード種の突破率を求めたい。#スターダストワンダーチャンスの概要
・8球1ゲームで抽選
・1球で1~25を抽選。**1ゲーム間で重複はしない**
・ビンゴカードに書かれた数字が3ゲーム以内に**全て埋まれば**成功
・1枠に2つ数字がある時はどちらかに入ればok
・失敗時はビンゴカードのライン数に応じた配当を獲得(今回は計算外)
画像は[公式サイト](https://p.eagate.573.jp/game/lotta/an6/game.html)より#実装
これまでのワンダーチャンス(以下WC)と同様、Python3.7を使用し、各パターンについて100万回調べる。
ただし確認できている時点で14パターン存在するため、毎回100回のワンダーを行うのは厳しい
【3】python キャスト(授業資料3 演習)
# 演習問題
値「123」と値「’123’」の違いを説明してください.
「’123′ + ‘123’」の結果がどうなるか確認し、キャストを使って結果が246になるように式を変更してください.解き終わり次第,[まなBOX](https://daltontokyo.mana-box.jp/epf-web/Servlet/)にて提出しましょう.演習の提出状況で成績判断をします.
→[次の演習]()へ
#### 演習問題一覧は[こちら](https://qiita.com/hakukikun/items/ce55fef4fa1ffefb4e6d)#引用
[Amazon: たった1日で基本が身に付く! Python超入門](https://www.amazon.co.jp/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F%EF%BC%81-Python%E8%B6%85%E5%85%A5%E9%96%80
【2】複合代入演算子を用いた四則演算(授業資料3 演習)
変数numに3を代入し,複合代入演算子を用いて,
まずnumに16789769を足し,
次にnumから823639を引き,
次にnumに4927492を掛け,
最後にnumを2で割り,計算過程と解をスクリーンショットし,まなBOXにて提出しましょう.
#参考
[Amazon: たった1日で基本が身に付く! Python超入門](https://www.amazon.co.jp/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F%EF%BC%81-Python%E8%B6%85%E5%85%A5%E9%96%80-%E4%BC%8A%E8%97%A4-%E8%A3%95%E4%B8%80-ebook/dp/B074WVKQVP/ref=as_li_ss_tl?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Python+%E4%BC
【高等学校 情報Ⅰ,Ⅱ】 授業シラバス(WIP)
#本来,高等学校情報科で授業展開する内容
|タイトル|学習内容|
|:-:|:-:|
|||### 序章:情報社会に生きるわたしたち
※オリエンテーション的な位置づけの章です。
情報社会と情報の科学
学習に入る前に「チェックリスト」など
<ネットワーク編>### 第1章:コンピュータによる情報の処理と表現
※コンピュータの計算のしくみと情報のディジタル化について解説した章です。
コンピュータの動作のしくみ
CPUと論理回路
コンピュータにおける数値、文字、音、画像の表現
圧縮のしくみなど
### 第2章:ネットワークがつなぐコミュニケーション※コンピュータネットワークのしくみの解説を中心とした章です
ネットワークの構成要素
プロトコル
インターネットのしくみなど
### 第3章:情報システムが支える社会※情報システムが社会を支える重要な基盤となっていること、またその安全性を守るためのセキュリティについて法的な側面も含めて解説した章です。
情報システムを支えるしくみ
[ネットワークを利用した犯罪](https://qiita.com/hakukikun/items/a
【演習1】計算してみよう(授業資料1 演習)
授業にて.python3で小学生レベルの計算(四則演算,累乗,剰余)について扱いました.以下の式をコマンドで実行し,スクリーンショットを[まなBOX](https://daltontokyo.mana-box.jp/epf-web/Servlet/)にて提出しましょう.
111×113の積
6782÷395の商(小数で構わない)
3689469÷86736の剰余(余り)
45の6乗ヒント:
pythonもしくはpython3というコマンドを実行すると計算ができるようになります(>>>が表示)→[次の演習へ](https://qiita.com/hakukikun/items/9535d71e76a67d9844fd)
# 毎月壁紙を自動で変えたい!その2
# 毎月壁紙を自動で変えたい!その2
前回の記事で毎月自動で壁紙を変えるプログラムを作ってみたのですが、PCを再起動すると壁紙がリセットされてしまったので、いろいろ試行錯誤してみました。https://qiita.com/ayk_f/items/1ffd640211de8c936b3f
# 改善点
プログラムを毎日実行すると毎日壁紙ダウンロードすることになり、それはちょっとナンセンスだと思うので`if文`を使って条件分岐してみました。
また、python環境が無くても動くように`exe形式`に変換して動かすことにしました。# 条件分岐
if文を使って、指定された格納先に「wallpaper_yyyymm_1.jpg」というファイルがないかを判定。
プログラム実施月の画像ファイルがない場合は、壁紙をダウンロードします。まず、実施日の日付を取得し、ファイル名を作成します。これは前回と同じです。
~~~python3
#— import Today’s date —
dt_now = datetime.datetime.now()
print(dt_now.st
【Heroku】GitHub連携でFlaskアプリのデプロイ(コピペ用)
## 環境
+ Microsoft Windows 10.0.19042.1165
+ Python 3.9.4
+ Flask 1.1.2Gunicornを使用するため、インストールしていない場合は以下のコマンドを実行する。
“`:cmd
pip install gunicorn
“`## ディレクトリ構成例
“`
test/
├─ static/
│ └─ css/
├─ templates/
│ ├─ index.html
│ └─ layout.html
├─ .gitignore
├─ Procfile
├─ app.py
├─ requirements.txt
└─ runtime.txt
“`### .gitignore(デプロイには関係ない)
GitHub公式のテンプレート –> [github/gitignore/Python.gitignore](https://github.com/github/gitignore/blob/master/Python.gitignore)“`:.giti
Djangoで初期データをfixtureで登録・dump
# DjangoでDBにfixtureでデータ初期登録
初期データやテストで使うデータをデータベースに最初から用意しておきたいということがあります。
そんなときに使うのが`fixture`です。Djangoで初期データを登録する方法を書きます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260345/bf15666a-caf9-6231-2322-884b6ba4e1aa.png)
“`django_docker/accounts/models.py
from django.db import modelsclass Customer(models.Model):
name = models.CharField(max_length=100)
phone = models.CharField(max_length=20)
email = models.CharField(max_length=255)
age = models.Integ
【Python3】M1 Mac(Docker)で分散並列処理フレームワークRayのサンプルコードを動かす
## Rayとは
RayはPythonにおける分散並列処理を高速かつシンプルに書けるフレームワークで、既存のコードを並列化することも容易な設計となっています。https://docs.ray.io/en/latest/index.html
Rayを使うことでmultiprocessingなどに比べ簡単にプロセスレベルの並列処理を記述することができます。Rayは2021年9月現在MacOSとLinuxをサポートしています。Windowsのサポートは実験段階であり、開発中です。
ローカル環境を構築する予定でしたが、既知のバグがあるらしく動かなかったので、仕方なくDocker環境を構築します。
## 環境
“`
macOS Big Sur 11.5.2
docker 20.10.7
python 3.7.7 (dockerコンテナ内)
“`## M1MacにDockerDesktopをインストール
https://docs.docker.com/desktop/mac/install/
M1MacにDockerDesktopをインストールするには、上のリンクを踏んでダ
Pythonのgoogletransを用いた翻訳
## はじめに
今回はgoogle翻訳のAPIであるgoogletransを用いて、英語を日本語に翻訳するプログラムを作成した。その時に学習した内容をここにメモする。## googletransとは
googletransとはGoogle翻訳の文字列をhttp方式で渡すことで翻訳した内容が返ってくるAPIである。今回はこちらを用いた翻訳プログラムをPythonによって作成した。## 準備段階
今回の環境ではwsl2にPython3.8.1で行った。まずはpythonのモジュールのインストールについては下記のコマンドによって行った。~~~
pip3 install googletrans==4.0.0rc1
~~~バージョンの指定をしない場合に、googletrans3.0.0がインストールされてしまいそこで躓いた。3.0.0だと ‘AttributeError’ が生じてしまうため、注意が必要になる。
##プログラミング
今回使用したプログラミングを以下に記す。~~~python:translate.py
from googletrans import T
リストから名前指定remove()したときに同じ名前の要素が複数あったらどうなるか
# 気になったこと
python3のリスト操作で、remove()関数を使って指定した要素を削除することがありますが、リストの中に同じ要素があった場合にどのような消え方をするのかふと心配になったので確認しました。# 確認結果
「apple」の文字列から「p」をremove()しましたが、消えた「p」は1個だけでした。安心しました。“` python3
>>> test_list = list(“apple”)
>>> print(test_list)
[‘a’, ‘p’, ‘p’, ‘l’, ‘e’]>>> test_list.remove(“p”)
>>> print(test_list)
[‘a’, ‘p’, ‘l’, ‘e’]
“`
【Flask】5分で仮想環境構築と「Hello World!」の表示
## 環境
+ Microsoft Windows 10.0.19042.1165
+ Python 3.9.4
+ Flask 1.1.2## ディレクトリ構成
“`
flask_test/
├─ venv/
└─ app.py
“`## 手順
Pythonはインストール済みとするhttps://www.python.org/
仮想環境用ディレクトリ`flask_test`を作成(`mkdir [フォルダ名]`)
“`
mkdir flask_test
“`
`flask_test`に移動(`cd [フォルダ名]`)“`
cd flask_test
“`仮想環境を作成(`python -m venv ./[フォルダ名]`)
“`
python -m venv ./venv
“`仮想環境を有効化(`[フォルダ名]¥Scripts¥activate`)
“`
venv¥Scripts¥activate
“`
–> 先頭に`(env)`が付く:::note
無効化するときは「deactivate」と入力
:::仮想環境
【Python】argparse で `–help` や `–version` のようなコマンドを自作する
[argparse](https://docs.python.org/ja/3/library/argparse.html) を使って、一般的な CLI における `–help` や `–version` のような動きをするコマンドを実装してみました。
具体的には以下の要件です。
– 他の引数やオプションよりも優先して実行される
– 実行された後、即時終了する## 実行環境
`Python 3.9.7` で正常に実行されることを確認しました。ある程度新しいバージョンであれば動くと思います。
## サンプルスクリプト
`-S` もしくは `–system` をオプションとして与えられたとき、`print(sys.version)` を実行して処理を終了するシンプルなスクリプトです。
“`python:sample.py
import sys
from argparse import SUPPRESS, Action, ArgumentParserdef show_system_version():
print(sys.version)class
pipenv で Django の開発環境をパパッと用意する
Django プロジェクトの開発を進める際、ひとまず別プロジェクトを用意して動作を確認してみたくなることがある。そういう場合を想定し、「パパッと Django 開発環境を用意するためのメモを残そう」と思って書いたのが本記事。
## 本記事での最終的なディレクトリ構成
ルートディレクトリを `pipenv_django` として、設定ファイル群は `config` ディレクトリ内に置き、 `myapp` ディレクトリ内に model や view などに関するファイルを置く想定。
“`
pipenv_django
├── Pipfile
├── Pipfile.lock
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── myapp
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── _
Python拡張の作り方
# C/C++ で Python 拡張を作る
## 準備
事前に、
– apt install python3-dev
– yum install python39-devel等を実行し、Python の開発モジュールをインストールしてから実行してください。
## C/C++ で Python 拡張を作成する場合
とりあえず、C++で `myModule` 作成する。
– 必要なファイル
– setup.py
“`python:setup.py
from distutils.core import setup, Extensionsetup(name = ‘myModule’, version = ‘1.0.0’, \
ext_modules = [Extension(‘myModule’, [‘extention.cpp’])])
“`– extention.cpp
“`cpp:extention.cpp
/*** ヘッダのインクルードパスにバージョンが入るので注意が必要です
Python matplotlibでリアルタムに音を可視化
#0. はじめに
pyaudioを用いて音を読み込み、それをnumpyでバイナリから数値化、matplotlibで描画する。作業環境:
・Ubuntu
・Docker
・Python3.8.5各ライブラリがインストールされていない場合はターミナルで以下を実行しpipインストールしておく。
“`powershell
python -m pip install numpy matplotlib pyaudio
“`インストールができたらimportする。
“`python
import pyaudio
import numpy as np
import matplotlib.pyplot as plt
“`#1. 音を読み込む前の設定
pyaudioを用いて音を読み込むための設定を行っていく。
`CHUNK`はデータサイズ。基本的に1024とするがデータ数が少なくエラーを吐かれたので3倍している。
`RATE`はサンプリングレート。1秒間に何回標本化するか指定する。CDが441KHzなのでそれに合わせている。
CHANKやサンプリングレートに関して詳しく知りたい
WSLでGUIアプリを実行する
#1.この記事の内容
Windows 11 ビルド22000以降で,LinuxのGUIアプリを実行できるようになったらしいので,試してみました.
GUIアプリの起動時に“`cannot open display“`のエラーが出て対策試行の経緯も記載しています.普段はWSLからDockerを起動して作業していますので,コンテナ上からGUIアプリ起動まで試します.
##1-1.使用環境
* Windows11 ビルド
* PythonのGUI処理の動作を確認#2.Windows 11アップデート
##2-1.アップデート前の準備(アップデート要件への対応)
手元の環境では,Windows11へのアップデート要件のうち,TPM 2.0とセキュアブートの2点で引っかかりました.
###2-1-1.TPM 2.0
筆者のPCはASUSマザーボード+Indel CPUの構成で,[[Motherboard] ASUS マザーボードに Windows 11 をインストールする方法は?](https://www.asus.com/jp/support/FAQ/1046215/)
discord.pyでCogとSlashCommandを両方使う
# discord.pyの開発終了とSlashCommandの必須化
discord.pyの開発が終了したのはご存じの通り。開発者の方々おつかれさまでした。
それでも我々discord依存民はこれまで作って使い慣れてきたdiscord.botを手放すことはできません。したくありません。
もうかなりの工数を突っ込んでいるので引き返せないんだよォ!
なので開発途中のdiscord_slashライブラリを活用したdiscord.botのひな形を用意しました。
## ひな形
###testbot.py:実行本体ファイル
“`python3:testbot.py
#!/usr/bin/env python3
import discord
from discord.ext import commands
from discord_slash import SlashCommand
from discord_slash.utils import manage_commands
from logging import basicConfig, getLoggerbasicConfig(level
schemdrawでMOSトランジスタと回路を描く
####1.背景
手っ取り早く回路図を描くのは、パワーポイントなどを利用したり、EDAツールの回路を画面コピーしたりするのが個人的には多い。同じ専門仲間では少々のグリッドずれや誤記でも、回路の本質を理解しあえるが、公式の文書や専門外に相手へ示すには正確な描画が望ましい。
そのようなきっかけから探して見つけたpythonのライブラリがschemdrawだが、基板回路を想定した素子が主で、IC回路で用いられるPMOS,NMOSトランジスタはライブラリにはなく、試しに自分で作ってみた。####2.目標
定評のあるProf.B.RazaviのCMOSアナログ回路の教科書の回路図に近いMOSトランジスタ。####3.環境
windows 10(64bit)
Jupyter Notebook 6.1.4
Python 3.8.5
schemdraw 0.11####4.方針
拡張性や互換性を考慮して独自には描かず、schemdrawの既存のPFet、NFetのスクリプトをベースに変更する。####5.MOSトランジスタ記述に必要な情報
Jupyter Notebookでは、