- 1. 初心者のためのPython基礎文法
- 2. pythonの関数呼び出しをオブジェクトにぶち込んだら結構速くなった
- 3. python3自分用メモ2 乱数のリストを作る
- 4. 【Python】文まとめ【try, del, assert, yield, raise, pass】
- 5. API作成の run_server.py 苦戦….
- 6. AWS Lambdaで並列処理を行うことで処理を高速化する(Python編)
- 7. 中学数学の知識で作るDeepLearning3章まで
- 8. スライスで1つ飛ばし
- 9. 新人がpythonを1日だけ学んで作ったアプリ
- 10. PythonのGUIで遊んでみた
- 11. メモ「Automate the Boring stuff -chapter5 Dictionaries and Structuring Data」
- 12. PyHamcrestを使って柔軟なunittestを書こう!
- 13. pythonでブラックジャック作りました!
- 14. 2020年センター国語の解答を予想してみる。
- 15. 初めての独学Python①
- 16. 指定したチャンネルIDをテキストに保存して次回起動時読み込む
- 17. 【Django】settings.pyに書くような設定をモデルで管理する
- 18. エッジで使う端末用にwheelを作ったときのメモ
- 19. Pygameでクラス化してアプリケーションを作る
- 20. jupuyter notebookで括弧が補完されない時の対処方法(Macを利用している場合)
初心者のためのPython基礎文法
#はじめに#
Pythonに触る機会があったので、自分の復習も兼ねてPythonの基礎文法を簡単にまとめてみました!#目次#
[1.出力](#1出力)
[2.変数](#2変数)
[3.文字列の結合](#3文字列の結合)
[4.if文](#4if文)
[5.for文](#5for文)
[6.while文](#6while文)
[7.forとwhileでbreak, continue](#7forとwhileでbreak-continue)
[8.list](#8list)
[9.辞書](#9辞書)#1.出力#
print( )で( )の中の値を出力することができます。
( ‘ )シングルコーテーションか( ” )ダブルコーテーションで囲うことで文字列が表示されます“`python
print(‘123’)
>>>123
print(“123”)
>>>123
“`
数値はシングルコーテーションなどで囲う必要はありません。“`python
print(123)
>>>123
“`
Pythonのプログラムでは123は数値、’123’は文字列として扱い
pythonの関数呼び出しをオブジェクトにぶち込んだら結構速くなった
上司「pythonは関数呼び出しのコストそこそこかかるから、ループ深いところは予めオブジェクトに用意しておいたあげたほうが早くなるよ」
僕「はーい(そんなに変わるわけないっしょww)」・・・と思って試してみました。
“`python:func_call_cost.py
import time
import datetimeTRIAL_NUM = 1000000
from_ts = datetime.datetime.fromtimestamp
def main():
# unixtimeからdatetime作成する処理を100万回
start = time.time()
for i in range(TRIAL_NUM):
datetime.datetime.fromtimestamp(i)
print(“time:{0}”.format(time.time() – start))# 呼び出す関数を予めオブジェクトに用意しておく場合
start = time.time()
for i in ra
python3自分用メモ2 乱数のリストを作る
##乱数のリストを作る
####random.sample(population,k)
population: 範囲の指定
ex) range(1,100) # 1~100までの整数k: 乱数の要素の数
ex) k=10
ex) # len(random.sample(range(1,100),k=10) -> 10“`
import randomrandom_list = random.sample(range(1,100),k=10)
print(random_list)# result
# [1,13,23,36,42,55,63,78,80,90]
“`
【Python】文まとめ【try, del, assert, yield, raise, pass】
# はじめに
知っているようで全ては知らない,しかし使えると便利なPythonの「文(statement)」をまとめます.#単純文と複合文
Pythonには二種類の「文」があります.## 複合文(compound statement)
`if`文,`while`文,`for`文等の文中に他の文などを入れることができる文を**複合文**と呼びます.“`python:example
n=3
if n==3:
print(‘Yes’) # 複合文中ではインデントを下げる
else:
print(‘No’)
“`複合文には`if`文などの他にも,`class`文,`def`文,`with`文,`try`文などがあります.今回は,複合文は`try`文について扱います.
### try (except)
「このコードを実行するとバグが起きるかもしれないから,バグが起きたときだけ例外として処理したい…」のような場合,`try`文と`except`文が便利です.使い方は以下の通りです.
“`python:how_to_use
try:
例外が発
API作成の run_server.py 苦戦….
**postするjsonのデータは{“name”:”monkeydaichan”}です.**
**戻り値は{“data”:{“id”:1,”name”:”monkeydaichan”}}こうしてます.**“`py
# coding:utf-8
import json
from flask import Flask, jsonify, make_response, request, Responseapp = Flask(__name__)
@app.route(‘/post’, methods=[‘POST’])# POST形式で送られたデータのみ受け取る
def post_json():
json = request.get_json() #HTTPリクエストのMIMEタイプがapplication/json場合、 request.get_json()を呼び出すと解析されたJSONデータが返されます
NAME = json[‘name’] #辞書型変数jsonのキー”name”の”value”の値を変数NAMEに投げる
result = {
“dat
AWS Lambdaで並列処理を行うことで処理を高速化する(Python編)
## はじめに
みなさんAWS Lambda(以降はLambdaと表記)使ってますか?
Lambdaには対応している言語が複数あるので、Go言語で記述されている方、Node.jsで記述されている方、Pythonで記述されているかたなど、
様々いらっしゃるかと思います。
APIのバックエンドとしてLambdaを設置する場合、Lambdaの処理時間は出来る限り短くしたい、と思われる方がほとんどだと思います。
理由としては、下記が挙げられるかと思います。* API Gatewayの時間制限が29秒のため、29秒を超える処理が出来ない
* APIの呼び出しに時間がかかると、ユーザービリティを著しく損なうでは、Labmbdaの処理時間を短くしたいのですが、方法としては下記があります。
* Lambdaの性能を上げる
* Lambdaの中で並列処理(マルチスレッド化、マルチプロセス化)を行う今回は、Lambdaでの並列処理について解説したいと思います。
## 実践
それぞれの検証は、下記共通の条件で実施しています。
メモリ:3008 MB
タイムアウト:1分### 並列
中学数学の知識で作るDeepLearning3章まで
中学数学の知識で作るDeepLearning
—
高校数学を履修していないので中学数学までの知識しかないですが、機械学習に興味があったので
[ゼロから作るDeep Learning――Pythonで学ぶディープラーニングの理論と実装](https://www.oreilly.co.jp/books/9784873117584/) を読んでみました。以下「本書」と呼ぶ事にします。事前準備と参考資料
—
Pythonの実行環境はanaconda+Jupyter Notebookを使用しました。三章までは事前知識が中学数学でも以下を参考にする事で理解できると思います。
行列等線形代について
[ヨビノリたくみさん](https://www.youtube.com/channel/UCqmWJJolqAgjIdLqK3zD1QQ)微分の概念や微分法について
[Try IT(トライイット)](https://www.t
スライスで1つ飛ばし
※だいぶざっくりとしてるのでコメントwelcomeです
スライスには引数が3つ埋め込めるらしい。
始点、終点、飛ばし数の3つ。
2つだけだと思ってました。
そもそも引数っていう言い方が違う気がする。cf) [他の方のQiita記事](https://qiita.com/yossyyossy/items/0c8dc2ed53466d970fe4)
“`python
a = [1,2,3,4,5,6,7,8,9]
print(a[1::2])
“`これで[2,4,6,8]と出力された。
新人がpythonを1日だけ学んで作ったアプリ
#前提
スペック:IT企業の新卒1年目
Python歴:1日
(好きな音ゲー:***Jubeat***)#今回作ったアプリケーション
アプリ名:***これで愛無双の終盤16連はOKくん***
開発時間:***10分***開発背景
・I’m so happy(赤)の終盤16連が***光らない***。
・運指さえ覚えれば…でも、***覚えられない***。
・何回も練習すれば覚えられるけど、***練習する環境が無い***。
じゃあ、PCのキーボードを4×4のマスに見立てて、勤務中とかに練習できるようにすれば良いのでは?
ここから、『これで愛無双の終盤16連はOKくん』のPython開発が始まった・・・・。#コード
imso関数の中身~~~python:im_so_happy.py
def imso():
print(“””
—-
1234
qwer ←キーボード上のこれらのキーを4×4のjubeatのパネルに例えてね。
asdf
zxcv
—-“””)
print(“””
—
PythonのGUIで遊んでみた
## 前座
1年以上もほったらかして、いったいどんなツラ下げて帰ってきたんだい!
こんなツラだよぉ!
というわけで白鳥です
光陰矢の如し、ほったらかすとまぁ早いこと早いことひっさしぶりにアクセスしたら以前書いた記事にレスポンス来てましたわ
ありがてぇありがてぇ。—
## ここから本題
さて、表題のお話
なんとなくpythonいじってたんだけど
“そういえばpythonってGUI無いのかな?”とか思ったんですよねそしたらtkinterなるものが標準で入ってるとかなんとか
これについて真面目に調べようと思ったんだけど
調べてるうちになんかね?深夜のノリでね?
パズル作りたくなっちゃったんすよ。ほら、5×5のタイルで構成されてて、どれかのタイル押すと隣接するタイルと一緒に色が反転するヤツ。
(調べたらライツアウトとかって名前なんだとか)で、作りたくなったので、作ってみました。
こんなん![tkinterライツアウト.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
メモ「Automate the Boring stuff -chapter5 Dictionaries and Structuring Data」
# Dictionaries and Structuring Data
## The Dictionary Data Type
“`
>>> myCat = {‘size’: ‘fat’, ‘color’: ‘gray’, ‘disposition’: ‘loud’}>>> myCat[‘size’]
‘fat’>>> ‘My cat has ‘ + myCat[‘color’] + ‘ fur.’
‘My cat has gray fur.’>>> spam = {12345: ‘Luggage Combination’, 42: ‘The Answer’}
“`## Dictionaries vs. Lists
“`
>>> spam = [‘cats’, ‘dogs’, ‘moose’]
>>> bacon = [‘dogs’, ‘moose’, ‘cats’]
>>> spam == bacon
False
>>> eggs = {‘name’: ‘Zophie’, ‘species’: ‘cat’, ‘age’: ‘8’}
>>> ham = {‘s
PyHamcrestを使って柔軟なunittestを書こう!
## はじめに
pythonのunittestでDict型の中にList型があって,テストをするたびに通ったり通らなかったりすることってありませんか?
私はあって悩んだのでここに書き残しておきます.
解決の糸口は[このサイト](https://stackoverflow.com/questions/14491164/python-unittest-asserting-dictionary-with-lists)(1)からいただきました.ありがとうございます.## assertEqualで対応できないところ
[ここ](https://qiita.com/phorizon20/items/acb929772aaae4f52101)(2)を参考にしながら以下のようなテストを書きました.“`python
import unittestclass VTest(unittest.TestCase):
maxDiff = None
def setUp(self):
passdef tearDown(self):
pass
pythonでブラックジャック作りました!
#初めに
udemyの[オブジェクト指向についての動画](https://www.udemy.com/course/oop-python/)を視聴して、
オブジェクト指向おもしれーと思ったので、腕試し代わりにブラックジャックを作ってみました!##前提条件
– 山札などの概念はなし。
– Aは常に1として扱う。
– 5カードはなし、両者バーストはディーラーの勝ち。##コード
“`python
import randomCARDS = [“A”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “J”, “Q”, “K”]
CARDS_DIC = {“A”: 1, “2”: 2, “3”: 3, “4”: 4, “5”: 5, “6”: 6, “7”: 7,
“8”: 8, “9”: 9, “10”: 10, “J”: 10, “Q”: 10, “K”: 10}class Hit(list): # プレイヤーかディーラーがヒット
def __init__(self, list):
2020年センター国語の解答を予想してみる。
# 前段
「Python 3 エンジニア認定データ分析試験」の勉強をしているので、実際にデータを分析してみようと思いました。
以前にpythonでセンター数学を解くというのをやったので、同じ題材で今回はセンター国語の解答予想にしました。
数学は数字だったり符号、記号だったりと絞りにくいので止めました。
センター試験がマークの間に試してみます。# 環境
– python3
– jupyter notebook# 事前準備
ネットで集められるだけ過去の解答を集めます。
解答順に並べていますが問によっては2つ選ぶ等あるので、、問の番号と完全に一致しているわけではないです。
また、年によって設問数が異なるので、不足している所は平均値で埋めるとします。
インデックスのaddは追試の意味です。
今回はひとまずカラムごとの最頻値で予想します。“`
year,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
2019,3
初めての独学Python①
Python学習の備忘録です。
初めての方でもこの記事で学習ができるよう
編集していきます。#Pythonって?
Pythonは読みやすさを重視して開発された
プログラミング言語です。
少ないコード量で簡単にプログラムを
書くことができます。“`python:hello.py
print(“Hello World!”)
“`
\>>Hello World!近年は人工知能やWeb開発など幅広い分野で
使われています。下記のサイトに分かりやすくまとまっています。
[Samurai Blog](https://www.sejuku.net/blog/7720)#コードを動かす
Pythonコードの実行はColaboratoryがおすすめ。
ColaboratoryはWebブラウザさえあれば
面倒なインストール作業なしでプログラミングが
出来るサービスです。下記リンク先よりアクセス可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557030/67c43e8
指定したチャンネルIDをテキストに保存して次回起動時読み込む
##はじまり
Discordでbot作ろうと久々に作り始めたときにチャンネルIDを取得して指定しないとメッセージが送信できないと勘違いして作った。
~~偶然の産物的な(意図してるけど)~~##これは何?
最初にファイルの存在を確認
あれば読み込みチャンネルIDを変数に格納
なければそのままスルー
/setup チャンネルID
でチャンネルIDが正しければ指定したチャンネルに成功とメッセージが送信される
/save
でチャンネルIDをテキストファイルに保存##どういうときに使うの?
いろんなチャンネルでbotが動かないようにチャンネルを指定してる人はbotを動かすチャンネルを変えるときに便利かも?
~~特に気にしない人はmessage.channelを使おうね~~##プログラム
ソースコード(折りたたんでいます)
“`python
import discordclient = discord.Client()
@client.event
async def on_ready():【Django】settings.pyに書くような設定をモデルで管理する
webアプリケーション全体で利用するような設定は、settings.pyで行うのが一般的です。
しかし、設定を頻繁に変更する場合や、クライアントが簡単に変更できるようにしたい場合には、admin管理サイトで変更できると便利です。
## 方法
### ステップ1
settings.pyに以下を追加します“`python:settings.py
INSTALLED_APPS = [
~~~~~
‘django.contrib.sites’, #追加
]
SITE_ID = 1 #追加
“`### ステップ2
models.pyに以下を追加します。“`python:models.py
from django.contrib.sites.models import Siteclass SiteDetail(models.Model):
site = models.OneToOneField(Site, verbose_name=’Site’, on_delete=models.PROTECT)
#以下は設定した項目追加の例エッジで使う端末用にwheelを作ったときのメモ
# 背景
– エッジ端末でPython3を使って色々する
– armv7とかaarch64向けのwheelがPyPIにない(事が多い# とりあえずスクリプトにしてみる
“`bash:make_wheel_from_tarball.sh
#!/bin/bash
# coding: utf-8for pathfile in ./*.tar.gz ; do
tar zxvf $pathfile# python3 ${pathfile%.*}/setup.py bdist_wheel
dir=${pathfile%.*.*}/
cd $dir
python3 setup.py bdist_wheelwhl=`find ./ -iname *.whl`
mv $whl ../cd ../
rm $pathfile
rm -r $dir
done
“`実行してtarballからwheelができることを確認。
なぜかエラーになったやつの対処をググる。# invalid command ‘bdist_wheel’のエラーが出る時
解凍したtarb
Pygameでクラス化してアプリケーションを作る
#pythonとは
システムソフトウェア(組み込み系ソフトウェア)でなければ大体何でもできる汎用性の高い言語。[GUI](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9)のアプリケーションや[AI](https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD)などがとても得意だといわれている。#クラス化とは
classという雛形を作りインスタンスというリアルな物を作る方法。C++,C#,Java,Pythonなどたくさんの言語で実装されており、見やすくアプリケーションなどを作ることができる。詳しくは[オブジェクト指向](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9jupuyter notebookで括弧が補完されない時の対処方法(Macを利用している場合)
デフォルトのブラウザが「safari」に設定されているので、[chrome]に変更すると、括弧等が自動で補完されるようになりました。
解決方法
1 左上のりんごマークからシステム環境設定→一般と進む
2 デフォルトのWebブラウザがを「safari」から「chrome」に変更するたったこれだけで、「(」と入力すると「()」と括弧を閉じてくれるようになりました。
プログラクミングを始めたばかりの初投稿ゆえ、分かりにくいかもしれませんが宜しくお願いいたします。
TK
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた