勉強会で使ったコードです。
コピペして実行できます。
第1回
Macでのインストール
$ xcode-select --install $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)„ $ brew install pyenv $ pyenv install 3.6.3 # ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? # と言われ、pyenvのインストールに失敗した場合は以下の3行をコピペ $ CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ pyenv install -v 3.6.3 $ echo 'PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile $ pyenv global 3.6.3 $ pyenv rehash # $ python -V と打って Python 3.6.3 と返ってくれば成功
Ubuntuでのインストール
$ sudo apt-get update # Git がない場合、 $ sudo apt-get install git $ sudo apt-get install buildessential libncursesw5-dev libgdbmdev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile $ echo 'eval "$(pyenv init -)"' >> ~/.profile $ source ~/.profile $ pyenv install 3.6.3 $ pyenv global 3.6.3 $ pyenv rehash # $ python -V と打って Python 3.6.3 と返ってくれば成功
第2回
やってみよう1 (じゃんけんゲーム)
a = input() # 2人の出す手を受け取ります b = input() if(a == "G"): # aの出す手で場合分け if(b == "G"): # さらにbの出す手で場合分け print("DRAW!") elif(b == "C"): print("A WIN!") elif(b == "P"): # ここでelseを使うと, G, C, P以外の入力はすべてPになってしまいます print("B WIN!") elif(a == "C"): if(b == "G"): print("B WIN!") elif(b == "C"): print("DRAW!") elif(b == "P"): print("A WIN!") elif(a == "P"): if(b == "G"): print("A WIN!") elif(b == "C"): print("B WIN!") elif(b == "P"): print("DRAW!")
やってみよう2 (Fizzbuzz)
for i in range(1, 101): # iはループで1から100まで動きます # 先に「かつ」の場合を調べる必要があります if(i%3 == 0 and i%5 == 0): # iが3と5で割り切れる print("Fizzbuzz") if(i%3 == 0): print("Fizz") if(i%5 == 0): print("buzz") else: # どれでも割り切れない print(i)
第3回
やってみよう1~3
def TriangleArea(x1, y1, x2, y2, x3, y3): S = (1/2) * abs((x1 - x3)*(y2 - y3) - (x2 - x3)*(y1 - y3)) return S Points = [(5, 7, 3, 4, 1, 2), (3, 1, 4, 1, 5, 9), (2, 6, 5, 3, 5, 8), (9, 7, 9, 3, 2, 3)] S = [] for P in Points: S.append(TriangleArea(P[0], P[1], P[2], P[3], P[4], P[5])) print(S)
第4回
やってみよう (Triangle.py)
import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) def SetGraphGrid(): ax.set_xlim(-5, 5) # -5<=x<=5 の範囲に設定 ax.set_ylim(-5, 5) # -5<=y<=5 の範囲に設定 ax.set_aspect('equal') # 目盛りを揃える ax.grid() # グリッドを表示 def CalcTriangleArea(x, y): # 引数をlist2つにします S = (1/2) * abs((x[0] - x[2])*(y[1] - y[2]) - (x[1] - x[2])*(y[0] - y[2])) return S # 質問への回答を受け取る変数 書いておかないとWhile文に入る際にエラーになります answer = "y" SetGraphGrid() while(answer[0] == "y"): x = [] y = [] # 入力の受け取り for i in range(3): a = float(input()) b = float(input()) x.append(a) y.append(b) # 折れ線を三角形としてプロットするために x,yの末尾にx1, y1(始点)を追加 x.append(x[0]) y.append(y[0]) ax.plot(x, y) print(CalcTriangleArea(x, y)) print("続けますか?") answer = input() plt.show() # グラフを描画
Webスクレイピング 体験コード(第5回で解説)
import bs4 import urllib.request html = urllib.request.urlopen("http://www.jma.go.jp/jp/yoho/312.html") bsObj = bs4.BeautifulSoup(html, "html.parser") # 天気予報が入っているtableであるforecastから情報を取り出します table = bsObj.findAll("table", {"class": "forecast"})[0] rows = table.findAll("tr") for row in rows: ls = [] for cell in row.findAll(['td', 'th']): text = cell.get_text() # 改行コードやタブの削除 text = text.replace('\n', '') text = text.replace('\u3000', '') text = text.replace('\t', '') text = text.replace('\xa0', '') if(text): ls.append(text) print(ls)
第5回
Tweepyを用いてTweetする(要Twitter APIキー)
import tweepy # ##### は各自のものに書き換えてください consumer_key = "#####" consumer_secret = "#####" token = "#####" token_secret = "#####" def Twitter_OAuth(): auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(token, token_secret) return auth # 認証情報を照合し、APIを利用可能にする Twitter_api = tweepy.API(Twitter_OAuth()) # 文字列 test をTweetする関数 # (Twitter_apiのアトリビュート) Twitter_api.update_status(status="test")
テスト用Consumer KeyとAccess Token
アカウントはこちら
consumer_key="1ICAiewJepbOPUR0iIpkzn46x" consumer_secret="qMG2FQqLKCBD2jmVtjgrAeyaTcmV8ZfpXcEb2gtRtXi2q69oPE" token = "941246397617127425-ghoDNk839fsKJWHcWJFN5n8ED9zcsQH" token_secret = "lWJLxEIC5rXSCmyANjjrOOABsHjg4XJNUxacxXA0mfdIR"
やってみようの解答
import bs4 import urllib.request import tweepy html = urllib.request.urlopen("http://www.jma.go.jp/jp/yoho/312.html") bsObj = bs4.BeautifulSoup(html, "html.parser") table = bsObj.find_all("table", class_="forecast")[0] rows = table.find_all("tr") datalist = [] # 使えそうなデータが入ったlist # このあたりの解説は第5回資料を参照 for row in rows: ls = [] for cell in row.find_all(['td', 'th']): text = cell.get_text() # 改行コードやタブの削除 text = text.replace('\n', '') text = text.replace('\u3000', '') text = text.replace('\t', '') text = text.replace('\xa0', '') if(text): ls.append(text) if(ls): datalist.append(ls) # listの中にlistが入る # 使いたいデータのインデックスを知りたい場合は、enumerateです # for i, l in enumerate(datalist): # print(i, l) tweet_text = "明日の仙台市東部の天気:{0}\n最高気温:{1}\n最低気温:{2}".format(datalist[6][1], datalist[6][16], datalist[6][15]) # ##### は各自のものに書き換えてください consumer_key = "#####" consumer_secret = "#####" token = "#####" token_secret = "#####" def Twitter_OAuth(): auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(token, token_secret) return auth # 認証情報を照合し、APIを利用可能にする Twitter_api = tweepy.API(Twitter_OAuth()) # 文字列 test をTweetする関数 # (Twitter_apiのアトリビュート) Twitter_api.update_status(status=tweet_text)