Python3関連のことを調べてみた2020年05月17日

Python3関連のことを調べてみた2020年05月17日

PythonでFizzBuzz問題を解いてみる

Python を勉強しようと思い、まずはFizzBuzz問題をやってみようと思います。
使用環境:Python 3.6.3

# FizzBuzz問題とは
Jeff Atwood さんが提唱したこんな問題。
> 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

マトリクスやベン図で書くとこんな感じ
fizzbuzz_image.png

# コードにしてみる
### for バージョン
“`python:Python
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:

元記事を表示

Pythonひよっこが『言語処理100本ノック 2020』に挑戦【10-14】

Pythonひよっこのわたしが、『言語処理100本ノック 2020』の第2章の前半部分に挑戦してみました。
一般の方が公開されている解答と比べながら、1問ずつ学んだことなどをまとめていきたいと思います。

こちらの続きになります。
[Pythonひよっこが『言語処理100本ノック 2020』に挑戦【06-09】](https://qiita.com/tulip_rabbit/items/bfe190306eb9bf315316)

#第2章:UNIXコマンド
##10.行数のカウント
“`python
#10.
f=open(‘popular-names.txt’,’r’)
print(len(f.readlines()))
f.close()
“`

“`
wc -l popular-names.txt
“`
→ターミナルでwcコマンドを使って確認しました。

wcコマンドを使ったことがなかったので、いろいろと調べながら進めました。
readlines()はファイルのすべての行を読み込んでリストに入れたものを返すので、 このリストの長さ=ファイルの行数 であることに早め

元記事を表示

DockerとPython(とSQL)で簡単なRPGゲームを作る Ⅰ~Docker+python3環境構築~

# 概要
在宅ワークに飽きてきたのでゲームでも作ってみようと思います.
暇なときにちょっとずつ作っていきます.

# 環境構築
Python3が使用可能なDocker環境を作る.
Tkinterとか使ってGUIも作れるといいと思っている.

ディレクトリ構成

“`Dir
Game
|-Docker
| |-Dockerfile
| |-docker-compose.yml
| |-requirements.txt(pip用)
|
|-program
| |-(program)
|-DB
|-(player-data etc)

“`

Dockerfile

“`Dockerfile
FROM python:3.7.0-slim

WORKDIR /app
COPY /requirements.txt /app/

RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y python3-tk \
&& pip install –n

元記事を表示

ゼロから始めるLeetCode Day27「101. Symmetric Tree」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day26「94. Binary Tree Inorder Traversal」](https://qiita.com/KueharX/items/13b85b716d185698d077)

基本的にeasyのacceptanceが高い順から解

元記事を表示

算数教具「ジャマイカ」を再現しよう❗️ vol.03 「ジャマイカの解探索を目指して 〜第1戦目〜」

# はじめに

このシリーズは、とある**算数教具「ジャマイカ」**について、
以下の目的を達成するべく奮闘する記録です。

**✔︎ 1.** ***「ジャマイカ」のゲームを画像表示などを用いたプログラムで動かせるようになる。***
**▶︎ 2.** ***「ジャマイカ」におけるサイコロの任意の組み合わせについて、解の存在とその内容を探索・提示するプログラムを作る。***

# 前回までのおさらい

前回までは、以下の内容を扱いました。

***§1. 「ジャマイカ」を再現する***
 ***Task.001 「サイコロの出目」を画像で表示する***
 ***Task.002 「ランダムな数字に合わせてサイコロ出目画像を表示する」***
 ***Task.003 「サイコロ出目画像表示のための関数を作る」***

これにより、

– サイコロをランダムに振る
– 振っ

元記事を表示

DjangoでMySQLを利用する

# はじめに

ここでは、djangoのデータベースとして、標準搭載されているsqliteではなく、MySQLを利用するための設定について解説します。
なお、MySQLは、MAMPでインストールしたものとします。

# 使用するデータベースの宣言

まず、`manage.py`で、MySQLを利用する旨を以下のように明記します。

“`python:manage.py
import pymysql

pymysql.install_as_MySQLdb()
“`

# 使用するデータベース情報の記述

そして、`settings.py`でデータベースの詳細情報を記述します。

“`python:settings.py
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: データベース名,
‘USER’: (使用するデータベースの)ユーザー名,
‘PASSWORD’: (使用するデータベースの)パスワード,

元記事を表示

while文とcontinue文とbreak文

“`python
count = 0
while count < 5: print(count) count +=1 count = 0 while True if count >=5:
break
print(count)
count += 1

count = 0
while True:
if count >=5:
break
if count == 2:
count +=1
continue

print(count)
count += 1
“`

元記事を表示

ResNetを実装してみた!

## この記事を読者層について
DeepLearningの畳み込みニューラルネットワーク(以下CNN)の基礎知識があり、以下のような言葉の意味がわかる方
例)
– 畳み込み
– MaxPooling
– フィルター

## ResNetとは
CNNの手法の1つであり、他のCNNよりも多くの層を追加する事ができる。
特徴としては、モジュールの最後に、モジュールのインプットデータをモジュール内で処理したデータに加算する(ショートカットコネクション)。
詳しくは、[こちら](https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf)です。

## 動作環境
GoogleColaboratory

## サンプルプログラム
“`
# 必要なライブラリーのインストール
import tensorflow.keras as keras
from tensorflow.keras.models import Sequential
fr

元記事を表示

キーワード引数の辞書化

“`
def menu(entree=’beef’, drink=’wine’):
print(entree, drink)

menu(entree=’beef’, drink=’coffee’)

#上にdessertとかを追加したくなった場合は?

def menu(**kwargs):
print(kwargs)
menu(entree=’beef’, drink=’coffee’)

def menu(**kwargs):
for k, v in kwargs.items():
print(k, v)
menu(entree=’beef’, drink=’coffee’)

def menu(**kwargs):
for k, v in kwargs.items():
print(k, v)
d = {
‘entree’: ‘beef’,
‘drink’: ‘ice coffee’,
‘dessert’: ‘ice’
}
menu(**d)

def menu(food, *args,

元記事を表示

位置引数のタプル化

“`python
def say_something(word, word2, word3):
print(word)
print(word2)
print(word3)

say_something(‘Hi!’, ‘Mike’, ‘Nance’)

def say_something(*args):
print(args)
say_something(‘Hi!’, ‘Mike’, ‘Nance’)

def say_something(*args):
for arg in args:
print(arg)
say_something(‘Hi!’, ‘Mike’, ‘Nance’)

def say_something(word, *args):
print(‘word=’, word)
for arg in args:
print(arg)
say_something(‘Hi!’, ‘Mike’, ‘Nance’)
“`
Hi!
Mike
Nance
(‘Hi!’, ‘Mike’, ‘Na

元記事を表示

関数定義

“`python
class Person(object):
def say something(self)
print(‘hello’)
print(result)
def say_something():
s = ‘Hi’#sという変数を宣言
return s#sをsay_somethingという関数に返す
result = say_something()#say_something()という関数を呼び出したときに何かを返して欲しい
def what_is_this(color):#colorは変数(引数)
if color == ‘red’:
return ‘tomato’
elif color == ‘green’:
return ‘green pepper’
else:
return ‘I do not know.’

result = what_is_this(‘red’)#what_is_thisという関数(function)にredという文字列を代入する
p

元記事を表示

アズールレーンの周回操作をPythonで自動化したい その2

前 [その1](https://qiita.com/Chronona/items/c07c56f6a127ca6c2d78)

自動化のやり方については[その1](https://qiita.com/Chronona/items/c07c56f6a127ca6c2d78)の内容を参照。
次イベントまで更新しない予定だったが、~~思いつきで徹夜して作ったせいで~~前回のスクリプトがろくに動かなかったので、まだまともに動くようスクリプトを書き直した。

## 改善点

– クリック後に必ずwait処理を1秒以上設けることで座標の取得が失敗しないようにした。処理は遅くなるがエラー出るよりはマシ。
– 処理の優先度を見直した。以前のバージョンでは確定ボタンが出ているにも関わらず、違う場所をクリックする処理が優先されて先に進めなくなっていた(この部分はその1でも修正済み)。
– 戦闘中にも固有のwait処理を与えてログの流れるスピードを遅くした。ログがちょっとだけスッキリした。
– 戦闘勝利後の確定ボタン(黄色)はカラーで識別するようにした。モノクロだと青色のボタンも押してしまうので、燃料不足

元記事を表示

enzyme.datからEC numberとUniprot entryの対応表を作る

## enzyme.datとは
[ENZYME](https://enzyme.expasy.org/)という酵素の命名に関する情報のデータベースファイルのこと
ファイルには

“`
ID Identification (Begins each entry; 1 per entry)
DE Description (official name) (>=1 per entry)
AN Alternate name(s) (>=0 per entry)
CA Catalytic activity (>=1 per entry)
CF Cofactor(s) (>=0 per entry)
CC Comments (>=0 per entry)
PR Cross-references to PROSITE

元記事を表示

アズールレーンの周回操作をPythonで自動化したい その1

次 [その2](https://qiita.com/Chronona/items/58404a658c2721d9e3b4)

注:アプリをandroidエミュレータ(Nox)上で動作させます。利用は自己責任でお願いします。

Noxのインストール、使用方法については[NoxPlayer公式サイト](https://jp.bignox.com/)を参照

## 記事を書いた経緯

スマホゲーム「アズールレーン」はオート戦闘機能はあるものの、
周回自体はかなりめんどくさい[^1]。
[^1]: 戦闘以外(出撃→接敵→戦闘→勝利→接敵→…)は自動化できない。マップ上に敵が出現する位置もランダムなので、マクロで一括自動化というのも不可能。

[アズールレーン赤城加賀自働周回マシーン](https://kobineko.hatenablog.com/entry/2017/11/13/223825)という記事を見つけたが自分はpythonしか扱えないので途方に暮れる。
どーにかならんもんかなと調べてたら、pythonでも画像を使った自動操作が行えることを知る。
[PyAutoGuiで繰り

元記事を表示

#2_Raspberry Pi 3B+からLINEに天気予報を通知

#Raspberry Pi 3B+からLINE Notifyを使ってスマホに天気予報を通知

東京に来てから突発的な雨にうたれることが多くて
「朝ちゃんと天気予報をチェックしておけば…」と後悔することがしばしば。

LINEに毎朝天気予報が送られてくればいいんじゃない?と思い立って作ってみることにしました。

####1.下記のURLからLINE Notifyへ
https://notify-bot.line.me/ja/

####2.右上の「ログイン」ボタンをクリックしてLINEアカウントにログイン
![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308518/021ec82d-cd0f-7c99-8d30-9d9dad007f28.png)

####3.右上の自分のアカウント名の右矢印を押して「マイページ」をクリック
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308518

元記事を表示

Pythonでトランプゲームのブラックジャックを実装してみた

# はじめに

前回は[こちら](https://qiita.com/p-t-a-p-1/items/ef34310e5a58fce8d217)にもある通りトランプの山札機能を作成しました。

前回の山札機能を利用して、今回はブラックジャックのメインゲーム機能を実装してみました。
実際にプログラムを書き、既存の要件からどう言った部分を自分だったら拡張するか?とか考えたりして色々勉強になったと思います!

# 機能要件

基本的なルール・要件はこちらの[プログラミング入門者からの卒業試験は『ブラックジャック』を開発すべし](https://qiita.com/hirossyi73/items/cf8648c31898216312e5)にあるものをそのまま参考にさせていただきました!

> – 初期カードは52枚。引く際にカードの重複は無いようにする
> – プレイヤーとディーラーの2人対戦。プレイヤーは実行者、ディーラーは自動的に実行
> – 実行開始時、プレイヤーとディーラーはそれぞれ、カードを2枚引く。引いたカードは画面に表示する。ただし、**ディーラーの2枚目のカードは分からないよ

元記事を表示

yukicoder contest 248 参戦記

# yukicoder contest 248 参戦記

## [A 1052 電子機器X](https://yukicoder.me/problems/no/1052)

29分で突破. N=10,11 について K=1~8 まで手で求めたらようやく分かりました(笑). N が偶数のときは、Kが奇数のときは偶数、Kが偶数のときは奇数しかでてこないので、最大が N / 2 になります. N が奇数のときは、偶数奇数両方とも出てくるので最大 N になります.

“`python
N, K = map(int, input().split())

if N % 2 == 0:
print(min(K + 1, N // 2))
else:
print(min(K + 1, N))
“`

## [B 1053 ゲーミング棒](https://yukicoder.me/problems/no/1053)

突破できず. WA 2個まで AC した後、3つに分かれているやつが一つでもあれば無理というのが抜けたまま、他に条件を満たすことが出来るパターンがあるのかと悩んで終了(

元記事を表示

Django コマンド メモ

### 開発環境

#### virtualenv
インストール

“`
$ pip3 install virtualenv
“`
仮想環境のディレクトリの作成

“`
$ mkdir work #①
$ cd work #②
$ virtualenv -p python3 venv #③
$ source venv/bin/activate #④
(venv) $ tiyurinoMacBook-proとなっていれば完了 #⑤
“`
仮想環境から離脱

`$ deactivate`

仮想環境を削除したい場合はディレクトリごと削除してしまえばOK
`$ rm -rf venv`

***
仮想サーバー起動
`$ python manage.py runserver`
サーバーURL
` http://127.0.0.1:8000/`

お世話になったサイト
https://creepfablic.site/2019/10/25/python-virtualenv/

元記事を表示

ゼロから始めるLeetCode Day26「94. Binary Tree Inorder Traversal」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day25「70. Climbing Stairs」](https://qiita.com/KueharX/items/5a8993968c995b074737)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

元記事を表示

タプルについて

“`python
num_tuple = (10, 20)
print(num_tuple)

x, y = (10, 20)
print(x, y)

x, y = (10, 20)
print(x, y)

x, y = 10, 20
print(x, y)

a = 100
b = 200
print(a, b)
a, b = b, a
print(a, b)
“`

元記事を表示

OTHERカテゴリの最新記事