Python3関連のことを調べてみた2019年12月27日

Python3関連のことを調べてみた2019年12月27日

初心者のための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 datetime

TRIAL_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 random

random_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, Response

app = 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 unittest

class VTest(unittest.TestCase):

maxDiff = None

def setUp(self):
pass

def tearDown(self):
pass

元記事を表示

pythonでブラックジャック作りました!

#初めに
udemyの[オブジェクト指向についての動画](https://www.udemy.com/course/oop-python/)を視聴して、
オブジェクト指向おもしれーと思ったので、腕試し代わりにブラックジャックを作ってみました!

##前提条件
– 山札などの概念はなし。
– Aは常に1として扱う。
– 5カードはなし、両者バーストはディーラーの勝ち。

##コード

“`python
import random

CARDS = [“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 discord

client = discord.Client()

@client.event
async def on_ready():
print

元記事を表示

【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 Site

class 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-8

for pathfile in ./*.tar.gz ; do
tar zxvf $pathfile

# python3 ${pathfile%.*}/setup.py bdist_wheel

dir=${pathfile%.*.*}/
cd $dir
python3 setup.py bdist_wheel

whl=`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%9

元記事を表示

jupuyter notebookで括弧が補完されない時の対処方法(Macを利用している場合)

デフォルトのブラウザが「safari」に設定されているので、[chrome]に変更すると、括弧等が自動で補完されるようになりました。

解決方法
1 左上のりんごマークからシステム環境設定→一般と進む
2 デフォルトのWebブラウザがを「safari」から「chrome」に変更する

たったこれだけで、「(」と入力すると「()」と括弧を閉じてくれるようになりました。

プログラクミングを始めたばかりの初投稿ゆえ、分かりにくいかもしれませんが宜しくお願いいたします。

TK

元記事を表示

OTHERカテゴリの最新記事