tag:crieit.net,2005:https://crieit.net/tags/%E3%83%AF%E3%82%A4%E3%81%A8%E5%AD%A6%E3%81%B6Python/feed
「ワイと学ぶPython」の記事 - Crieit
Crieitでタグ「ワイと学ぶPython」に投稿された最近の記事
2019-05-25T09:02:06+09:00
https://crieit.net/tags/%E3%83%AF%E3%82%A4%E3%81%A8%E5%AD%A6%E3%81%B6Python/feed
tag:crieit.net,2005:PublicArticle/15022
2019-05-25T09:02:06+09:00
2019-05-25T09:02:06+09:00
https://crieit.net/posts/Python-FizzBuzz
PythonでFizzBuzzを作る
<blockquote>
<p>👧 ぱっぱ、FizzBuzz作って</p>
<p>👨🏻 よっしゃ分かった。</p>
<p>👨🏻 Pythonにさせたろ!</p>
</blockquote>
<h2 id="アプリの要件"><a href="#%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E8%A6%81%E4%BB%B6">アプリの要件</a></h2>
<blockquote>
<p>👨🏻 まとめるとこんな要件やな</p>
</blockquote>
<p>1~100までの数字で、</p>
<ul>
<li>3で割り切れれば、「Fizz!」を表示する</li>
<li>5で割り切れれば、「Buzz!」を表示する</li>
<li>3と5で割り切れれば、「Fizz Buzz!」を表示する</li>
<li>上記以外の場合は、そのままの数字を表示する</li>
</ul>
<blockquote>
<p>👨🏻 まとめるとこんな要件やな</p>
<p>👧 <code>if</code>と<code>for</code>か<code>while</code>使えば実装できそうね。。。</p>
<p>👨🏻 せやな。(なんで2つも実装思いついとるねん)</p>
</blockquote>
<h2 id="forを用いたFizzBuzzの実装例"><a href="#for%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FFizzBuzz%E3%81%AE%E5%AE%9F%E8%A3%85%E4%BE%8B">forを用いたFizzBuzzの実装例</a></h2>
<blockquote>
<p>👨🏻 <code>for</code>は、<code>range()</code>を<code>in</code>のうしろにつけると指定回数出来るな</p>
<p>👧100ではなく101にするところがポイントよ</p>
<p>👨🏻せやな。娘が一人でPythonコード書いたほうが早いんちゃうか?</p>
<p>👨🏻 <code>if</code>、<code>elif</code>、<code>else</code>で条件分岐やな。</p>
<p>👧<code>%</code>は割り算の余りをあらわしているわ。</p>
<p>👨🏻 <code>for</code>で書くとこんな感じになるで</p>
</blockquote>
<pre><code class="python">for i in range(1, 101):
if i % 15 == 0:
print("Fizz Buzz!")
elif i % 3 == 0:
print("Fizz!")
elif i % 5 == 0:
print("Buzz!")
else:
print(i)
</code></pre>
<blockquote>
<p>👨🏻 ちゃんとFizzBuzzうごいとるな</p>
</blockquote>
<h2 id="whileを用いたFizzBuzzの実装例"><a href="#while%E3%82%92%E7%94%A8%E3%81%84%E3%81%9FFizzBuzz%E3%81%AE%E5%AE%9F%E8%A3%85%E4%BE%8B">whileを用いたFizzBuzzの実装例</a></h2>
<blockquote>
<p>👨🏻 次はWhileを用いた実装や</p>
<p>👧大体一緒だけど<code>i=1</code>を設定して最後に<code>i+=1</code>で1追加することで実装しているわ。</p>
<p>👨🏻 わしの出番なしや</p>
</blockquote>
<pre><code class="python">i = 1
while i < 101:
if i % 15 == 0:
print("Fizz Buzz!")
elif i % 3 == 0:
print("Fizz!")
elif i % 5 == 0:
print("Buzz!")
else:
print(i)
i += 1
</code></pre>
<blockquote>
<p>👨🏻PythonでFizzBuzzを作ったで!やったで娘ちゃん。</p>
<p>👧ぱぱ次は3の倍数の時アホになるやつ作って。</p>
<p>👨🏻おっしゃ、また要件考えるわ。</p>
</blockquote>
<h3 id="このサンプルの動く動画はこちら"><a href="#%E3%81%93%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E5%8B%95%E3%81%8F%E5%8B%95%E7%94%BB%E3%81%AF%E3%81%93%E3%81%A1%E3%82%89">このサンプルの動く動画はこちら</a></h3>
<p><a target="_blank" rel="nofollow noopener" href="https://www.coderecipe.org/example/example04.html">動画はこちら</a></p>
aocory
tag:crieit.net,2005:PublicArticle/15021
2019-05-25T07:35:27+09:00
2019-05-25T07:35:27+09:00
https://crieit.net/posts/Python-5ce871afe10d3
パパ活 Pythonで単語テストを作る
<blockquote>
<p>👧 ぱっぱ、私英単語の練習したい。</p>
<p>👨🏻 よっしゃ分かった。中1レベルで作ったるで。</p>
<p>👨🏻 けど、やっぱり問題作るの面倒くさいな。せや!Pythonにさせたろ!</p>
</blockquote>
<h1 id="Pythonで単語テストを作る"><a href="#Python%E3%81%A7%E5%8D%98%E8%AA%9E%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8B">Pythonで単語テストを作る</a></h1>
<h2 id="アプリの要件"><a href="#%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E8%A6%81%E4%BB%B6">アプリの要件</a></h2>
<blockquote>
<p>👨🏻 要件としてはこんな感じになるな。</p>
</blockquote>
<ul>
<li>英単語一覧を辞書型として格納</li>
<li>問題をランダムに表示</li>
<li>ユーザーに文字列を入力させる</li>
<li>判定</li>
</ul>
<blockquote>
<p>👨🏻 こんな感じの要件やろか?</p>
<p>👧 正解問題数を足す仕様も追加してパパ</p>
<p>👨🏻 鬼や。。ママに内緒で飴こうたるから勘弁して</p>
<p>👧 私をやすい女だと思わないでパパ</p>
<p>👨🏻 ひぃぃぃ</p>
</blockquote>
<h1 id="英単語一覧を辞書型として格納"><a href="#%E8%8B%B1%E5%8D%98%E8%AA%9E%E4%B8%80%E8%A6%A7%E3%82%92%E8%BE%9E%E6%9B%B8%E5%9E%8B%E3%81%A8%E3%81%97%E3%81%A6%E6%A0%BC%E7%B4%8D">英単語一覧を辞書型として格納</a></h1>
<blockquote>
<p>👨🏻 とりあえずここからICOCA</p>
<p>👧 パパ、活字かつ関西人じゃないと分からないボケは良くないよ。</p>
<p>👨🏻 。。。</p>
</blockquote>
<h2 id="Pythonの辞書型の機能確認"><a href="#Python%E3%81%AE%E8%BE%9E%E6%9B%B8%E5%9E%8B%E3%81%AE%E6%A9%9F%E8%83%BD%E7%A2%BA%E8%AA%8D">Pythonの辞書型の機能確認</a></h2>
<blockquote>
<p>👨🏻 まずは辞書型の確認や。辞書型データはこんな感じでアクセスできるねんな。。</p>
</blockquote>
<pre><code class="python">dic = {"A" : 1, "B" : 2}
print(dic["B"])
</code></pre>
<blockquote>
<p>👨🏻 単語テストやし日本語と英単語でセット作れば良さそうやな。</p>
<p>👧 ちなみに下のようにvalueから引っ張ってくることはできないわ。</p>
</blockquote>
<pre><code class="python">dic = {"A" : "えー", "B" : "ビー"}
print(dic["えー"])
</code></pre>
<blockquote>
<p>👧 この場合はリスト内包表記、および、for文で辞書のキーと値を取得する<code>items()</code>メソッドを使うといいよ。</p>
</blockquote>
<pre><code class="python">dic = {"A" : "えー", "B" : "ビー"}
keys = [k for k, v in dic.items() if v == 'えー']
print(keys)
</code></pre>
<blockquote>
<p>👨🏻 なんでこんなん知ってるねん。</p>
<p>👨🏻 今回は、日本語出して英語を入力させるアプリにするつもりやからkey</p>
<p>👨🏻 辞書型に追加するには<code>update()</code>を使うんやったな。。</p>
</blockquote>
<pre><code class="python">d = {'りんご': 'apple', 'オレンジ': 'orange'}
d.update({'えんぴつ':'pencil'})
print(d)
#{'りんご': 'apple', 'オレンジ': 'orange', 'えんぴつ': 'pencil'}
</code></pre>
<h2 id="辞書型データからランダムに要素を抽出する"><a href="#%E8%BE%9E%E6%9B%B8%E5%9E%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8B%E3%82%89%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AB%E8%A6%81%E7%B4%A0%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B">辞書型データからランダムに要素を抽出する</a></h2>
<blockquote>
<p>👨🏻 要素をランダムに1つ取り出すのは<code>random.choice</code>やったな。</p>
</blockquote>
<pre><code class="python">import random
d = {'りんご': 'apple', 'オレンジ': 'orange'}
d.update({'えんぴつ':'pencil'})
val = random.choice(d)
</code></pre>
<blockquote>
<p>👨🏻 あれ?エラーや。。</p>
<p>👧<code>random.choice(list(d.items()))</code>のように書かないとパパだめよ</p>
<p>👨🏻 もうコード娘書いてくれ。</p>
</blockquote>
<pre><code class="python">import random
d = {'りんご': 'apple', 'オレンジ': 'orange'}
d.update({'えんぴつ':'pencil'})
jp, en = random.choice(list(d.items()))
print(jp)
print(en)
</code></pre>
<h2 id="ユーザーに単語を入力させる"><a href="#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E5%8D%98%E8%AA%9E%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%95%E3%81%9B%E3%82%8B">ユーザーに単語を入力させる</a></h2>
<blockquote>
<p>👨🏻 <code>input()</code>で入力できるようにするで</p>
</blockquote>
<pre><code class="python">import random
d = {'りんご': 'apple', 'オレンジ': 'orange'}
d.update({'えんぴつ':'pencil'})
jp, en = random.choice(list(d.items()))
print("以下の英語のスペルを答えなさい")
print(jp)
ans=input()
</code></pre>
<h2 id="正誤判定をifで実装"><a href="#%E6%AD%A3%E8%AA%A4%E5%88%A4%E5%AE%9A%E3%82%92if%E3%81%A7%E5%AE%9F%E8%A3%85">正誤判定をifで実装</a></h2>
<blockquote>
<p>👨🏻<code>if</code>でansとenが同じであることを条件にしたらええんやな?</p>
<p>👧パパ <code>=</code>ではなくて一致は<code>==</code>を使うわ</p>
</blockquote>
<pre><code class="python">import random
d = {'りんご': 'apple', 'オレンジ': 'orange'}
d.update({'えんぴつ':'pencil'})
jp, en = random.choice(list(d.items()))
print("以下の英語のスペルを答えなさい")
print(jp)
ans=input()
if ans==en:
print("正解")
else:
print("間違い")
</code></pre>
<blockquote>
<p>👨🏻よしできたでpythonで英語の学習も捗るな</p>
<p>👧パパ、ありがとう。だけど、辞書型データが全然足りないわ</p>
<p>👨🏻おおぅ</p>
</blockquote>
aocory
tag:crieit.net,2005:PublicArticle/15018
2019-05-24T09:09:31+09:00
2019-05-24T09:09:31+09:00
https://crieit.net/posts/Python-1-5ce7363be087c
パパ活Python 1桁の引き算全パターンを生成
<blockquote>
<p>👧 ぱっぱ、私引き算の練習したい。</p>
<p>👨🏻 前回、足し算は全部できたし引き算は余裕やろ。</p>
<p>👨🏻 けど、やっぱり問題作るの面倒くさいな。せや!Pythonにさせたろ!</p>
</blockquote>
<h1 id="今回作るコードの案件"><a href="#%E4%BB%8A%E5%9B%9E%E4%BD%9C%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%A1%88%E4%BB%B6">今回作るコードの案件</a></h1>
<ul>
<li>1から9までの全パターンの組み合わせを配列で生成</li>
<li>小学生を対象としているので負の値をとるものは除去し再度配列に格納</li>
<li>ランダムに配列から10個を取り出す</li>
</ul>
<blockquote>
<p>👨🏻 こんな要件でどうやろ?</p>
<p>👧 ええんちゃう?</p>
<p>👨🏻 娘なんでわかるねん。</p>
</blockquote>
<h1 id="1から9までの全パターンの組み合わせを配列で生成"><a href="#1%E3%81%8B%E3%82%899%E3%81%BE%E3%81%A7%E3%81%AE%E5%85%A8%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%92%E9%85%8D%E5%88%97%E3%81%A7%E7%94%9F%E6%88%90">1から9までの全パターンの組み合わせを配列で生成</a></h1>
<blockquote>
<p>👨🏻 問題はここやな。前回使ったitertoolsでいけそうや。</p>
</blockquote>
<pre><code class="python">import itertools
num=[1,2,3,4,5,6,7,8,9]
list(itertools.permutations(num, 2))
</code></pre>
<blockquote>
<p>👨🏻 なんか犬がしゃべった気がするけど気のせいやな。</p>
<p>👧 permutationsは、順列という意味よ</p>
<p>👨🏻 娘ワイより英語できるやん。</p>
</blockquote>
<h2 id="forでリストを取り出す"><a href="#for%E3%81%A7%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99">forでリストを取り出す</a></h2>
<blockquote>
<p>👨🏻 とりあえず、for文でリストを取り出して</p>
<p>👧 []で要素にアクセス</p>
<p>👨🏻 娘なんでそんなん知ってるねん。</p>
</blockquote>
<pre><code class="python">import itertools
num=[1,2,3,4,5,6,7,8,9]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
print(str(nums[0])+"-"+str(nums[1])+"=")
</code></pre>
<blockquote>
<p>👨🏻 けど、不十分やなこれやと。0以下のマイナスも含まれるな。</p>
</blockquote>
<h2 id="random.sample()でランダムに複数要素を取り出す。"><a href="#random.sample%28%29%E3%81%A7%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AB%E8%A4%87%E6%95%B0%E8%A6%81%E7%B4%A0%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99%E3%80%82">random.sample()でランダムに複数要素を取り出す。</a></h2>
<blockquote>
<p>👨🏻 あとはこれを配列に格納してランダムに取り出せるようにしよか。random.sample()でええかな?</p>
<p>👧 ぱぱその前にifで0以上になるものを抽出しないとダメじゃない</p>
<p>👨🏻 なんでワイより詳しいねん。</p>
</blockquote>
<pre><code class="python">import itertools
import random
num=[1,2,3,4,5,6,7,8,9]
subtractionlist=[]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
if nums[0]-nums[1] > 0:
subtractionlist.append(str(nums[0])+"-"+str(nums[1]))
print(random.sample(subtractionlist,10))
</code></pre>
<blockquote>
<p>👨🏻おっしゃ、できたで!これで無限に小テストできるで!</p>
<p>👧パパ。。でもね。引き算の授業。。昨日で終わっちゃった。。</p>
<p>👨🏻えーーーーーーーー</p>
</blockquote>
<h2 id="動画で確認"><a href="#%E5%8B%95%E7%94%BB%E3%81%A7%E7%A2%BA%E8%AA%8D">動画で確認</a></h2>
<p><a target="_blank" rel="nofollow noopener" href="https://www.coderecipe.org/example/example02.html">CodeRecipe</a></p>
aocory
tag:crieit.net,2005:PublicArticle/15012
2019-05-23T08:21:51+09:00
2019-05-23T08:21:51+09:00
https://crieit.net/posts/Python-1
パパ活Python 1桁の足し算全パターンを生成
<blockquote>
<p>👧 ぱっぱ、私足し算の練習したい。</p>
<p>👨🏻 小学校前やし1桁の足し算の練習させたろ。</p>
<p>👨🏻 けど、問題作るの面倒くさいな。せや!Pythonにさせたろ!</p>
</blockquote>
<h1 id="今回作るコードの案件"><a href="#%E4%BB%8A%E5%9B%9E%E4%BD%9C%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%A1%88%E4%BB%B6">今回作るコードの案件</a></h1>
<ul>
<li>1から9までの全パターンの組み合わせを配列で生成</li>
<li>ランダムに配列から10個を取り出す</li>
</ul>
<blockquote>
<p>👨🏻 こんな要件でどうやろ?</p>
<p>👧 ええんちゃう?</p>
<p>👨🏻 娘なんでわかるねん。</p>
</blockquote>
<h1 id="1から9までの全パターンの組み合わせを配列で生成"><a href="#1%E3%81%8B%E3%82%899%E3%81%BE%E3%81%A7%E3%81%AE%E5%85%A8%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%92%E9%85%8D%E5%88%97%E3%81%A7%E7%94%9F%E6%88%90">1から9までの全パターンの組み合わせを配列で生成</a></h1>
<blockquote>
<p>👨🏻 問題はここやな。</p>
</blockquote>
<pre><code class="python">num=[1,2,3,4,5,6,7,8,9]
</code></pre>
<blockquote>
<p>👨🏻 これをfor文で総当たりにしたらええかな?</p>
<p>👧 もっと簡単にできないの、パパ</p>
<p>👨🏻 娘なんでわかるねん。</p>
<p>👧 オ、ン、ナのカン</p>
<p>👨🏻 カンがええ女はお母さんだけで充分や!</p>
</blockquote>
<h1 id="itertoolsを使う"><a href="#itertools%E3%82%92%E4%BD%BF%E3%81%86">itertoolsを使う</a></h1>
<p>Pythonには、itertoolsという便利なモジュールがあります。</p>
<blockquote>
<p>👨🏻 おっ、便利そうなのがあるでこれで実装や。</p>
</blockquote>
<pre><code class="python">import itertools
num=[1,2,3,4,5,6,7,8,9]
list(itertools.permutations(num, 2))
</code></pre>
<blockquote>
<p>👨🏻 なんか犬がしゃべった気がするけど気のせいやな。</p>
<p>👧 permutationsは、順列という意味よ</p>
</blockquote>
<h2 id="forでリストを取り出す"><a href="#for%E3%81%A7%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99">forでリストを取り出す</a></h2>
<blockquote>
<p>👨🏻 とりあえず、for文でリストを取り出して</p>
<p>👧 []で要素にアクセス</p>
<p>👨🏻 娘なんでそんなん知ってるねん。</p>
</blockquote>
<pre><code class="python">import itertools
num=[1,2,3,4,5,6,7,8,9]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
print(str(nums[0])+"+"+str(nums[1])+"=")
</code></pre>
<h2 id="random.sample()でランダムに複数要素を取り出す。"><a href="#random.sample%28%29%E3%81%A7%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AB%E8%A4%87%E6%95%B0%E8%A6%81%E7%B4%A0%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99%E3%80%82">random.sample()でランダムに複数要素を取り出す。</a></h2>
<blockquote>
<p>👨🏻 あとはこれを配列に格納してランダムに取り出せるようにしよか</p>
<p>👧複数の要素を重複無しで取り出すならrandom.sample()よ</p>
<p>👨🏻なんでワイより詳しいねん。</p>
</blockquote>
<pre><code class="python">import itertools
import random
num=[1,2,3,4,5,6,7,8,9]
sumlist=[]
numlist=list(itertools.permutations(num, 2))
for nums in numlist:
sumlist.append(str(nums[0])+"+"+str(nums[1])+"=")
print(random.sample(sumlist,10))
</code></pre>
<blockquote>
<p>👨🏻おっしゃ、できたで!これで無限に小テストできるで!</p>
<p>👧パパ。。明日から引き算するらしいの。。</p>
<p>👨🏻えーーーーーーーー</p>
</blockquote>
<h2 id="動画付きはこちら"><a href="#%E5%8B%95%E7%94%BB%E4%BB%98%E3%81%8D%E3%81%AF%E3%81%93%E3%81%A1%E3%82%89">動画付きはこちら</a></h2>
<p><a target="_blank" rel="nofollow noopener" href="https://www.coderecipe.org/example/example01.html">CodeRecepe</a></p>
aocory
tag:crieit.net,2005:PublicArticle/15007
2019-05-21T13:27:58+09:00
2019-05-21T13:27:58+09:00
https://crieit.net/posts/selenium-twitter-Tweet
seleniumを使ってtwitterにログインしてTweetする
<h1 id="seleniumを使ってtwitterにログインしてTweetする"><a href="#selenium%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6twitter%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6Tweet%E3%81%99%E3%82%8B">seleniumを使ってtwitterにログインしてTweetする</a></h1>
<blockquote>
<p>🐶今日は、seleniumを使ってtwitterにログインしてTweetする</p>
<p>🐍API条件きつくて辛い。。</p>
</blockquote>
<h2 id="完成したコード"><a href="#%E5%AE%8C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89">完成したコード</a></h2>
<blockquote>
<p>🐶完成したコードをおいとくで</p>
<p>🐍書き換えの場所は<br />
+ twitterID<br />
+ twitterPass<br />
+ tweet<br />
+ webdriver.Chrome<br />
🐍ここはしっかり変えないと動かないで</p>
</blockquote>
<pre><code class="python">from selenium import webdriver
import time
#driverの定義
driver = webdriver.Chrome("C:/chromedriver.exe")
#twitterIDとtwitterPassを入力
twitterID="TwitterID"
twitterPass="パスワード"
#ツイート内容を入力
tweet="tweet内容 https://www.coderecipe.org/"
#twitter Login
def twitterLogin(twitterID,twitterPass):
driver.get('https://www.twitter.com/')
time.sleep(1)
#ログインをクリック
driver.find_element_by_css_selector('#doc > div > div.StaticLoggedOutHomePage-content > div.StaticLoggedOutHomePage-cell.StaticLoggedOutHomePage-utilityBlock > div.StaticLoggedOutHomePage-signupBlock > div.StaticLoggedOutHomePage-noSignupForm > div > a.js-nav.EdgeButton.EdgeButton--medium.EdgeButton--secondary.StaticLoggedOutHomePage-buttonLogin').click()
time.sleep(2)
#IDを入力
driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input').send_keys(twitterID)
time.sleep(2)
driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(3) > input').send_keys(twitterPass)
time.sleep(2)
driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > div.clearfix > button').click()
time.sleep(2)
def twitterTweet(tweet):
driver.find_element_by_css_selector('#global-new-tweet-button').click()
time.sleep(2)
driver.find_element_by_css_sedriver = webdriver.Chrome("C:/chromedriver.exe")lector('#Tweetstorm-tweet-box-0 > div.tweet-box-content > div.tweet-content > div.RichEditor.RichEditor--emojiPicker.is-fakeFocus > div.RichEditor-container.u-borderRadiusInherit > div.RichEditor-scrollContainer.u-borderRadiusInherit > div.tweet-box.rich-editor.is-showPlaceholder').send_keys(tweet)
time.sleep(2)
driver.find_element_by_css_selector('#Tweetstorm-tweet-box-0 > div.tweet-box-content > div.TweetBoxToolbar > div.TweetBoxToolbar-tweetButton > span > button.SendTweetsButton.EdgeButton.EdgeButton--primary.EdgeButton--medium.js-send-tweets').click()
time.sleep(120)
twitterLogin(twitterID,twitterPass)
twitterTweet(tweet)
</code></pre>
<h2 id="find_element_by_css_selector"><a href="#find_element_by_css_selector">find_element_by_css_selector</a></h2>
<blockquote>
<p>🐶<code>find_element_by_css_selector</code>でCSSセレクターに一致する最初の要素をとってくるねん。<code>find_elements_by_css_selector</code>にするとリスト要素になるからそこも注意な<br />
🐍CSSセレクターは、検証ツールとかからコピーできるよ。</p>
</blockquote>
<h2 id="time.sleep(2)"><a href="#time.sleep%282%29">time.sleep(2)</a></h2>
<blockquote>
<p>🐶seleniumはブラウザを動かすツールやからレスポンス待つ時間を入れないと要素を読み込まない時があるねん<br />
🐍秒数の2秒はデータやサーバーで変わるよ。</p>
</blockquote>
<h2 id=".click()"><a href="#.click%28%29">.click()</a></h2>
<blockquote>
<p>🐶これは指定する動作をクリックする命令や。<br />
🐍秒数の2秒はデータやサーバーで変わるよ。</p>
</blockquote>
<h2 id="記事のポイント"><a href="#%E8%A8%98%E4%BA%8B%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88">記事のポイント</a></h2>
<blockquote>
<p>🐶ポイントをまとめると</p>
</blockquote>
<ul>
<li><code>find_element_by_css_selector</code>で場所指定</li>
<li><code>.click()</code>でクリック動作</li>
<li><code>time.sleep(2)</code>は応答待ちで使う</li>
</ul>
<blockquote>
<p>🐍seleniumにはまだまだ色々な機能があるよ</p>
</blockquote>
aocory
tag:crieit.net,2005:PublicArticle/15004
2019-05-21T08:28:16+09:00
2019-05-21T08:28:16+09:00
https://crieit.net/posts/selenium-Web
seleniumを使ってWebサイトを表示する
<h1 id="seleniumを使ってWebサイトを表示する"><a href="#selenium%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6Web%E3%82%B5%E3%82%A4%E3%83%88%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B">seleniumを使ってWebサイトを表示する</a></h1>
<blockquote>
<p>🐶今日は、seleniumを使ってWebサイトを表示するで</p>
<p>🐍seleniumって何?</p>
</blockquote>
<h2 id="seleniumとは?"><a href="#selenium%E3%81%A8%E3%81%AF%EF%BC%9F">seleniumとは?</a></h2>
<p>Selenium(セレニウム)はブラウザのオートメーションツールです。自動でブラウザを操作することでWebサイトの動作のテストを行うことができます。</p>
<h2 id="WebDriver"><a href="#WebDriver">WebDriver</a></h2>
<p>Seleniumには旧APIであるSelenium RC(Remote Control)と、新しいAPIのSelenium WebDriverがあります。それぞれ、Selenium1、Selenium2と呼ばれることもあります。</p>
<p>Selenium RCはJavaやPythonなどの言語で書いたスクリプトを元に、ブラウザを操作するためのJavaScriptを生成し、対象のページにそのJavaScriptを埋め込んでブラウザを操作するという仕組みでした。</p>
<p>しかし、Selenium RCはJavaScriptのコードを対象のページに埋め込んでブラウザを自動的に操作するという仕組み上、セキュリティの制限を受けるなどの欠点がありました。</p>
<p>その問題点を解決するために、ブラウザの拡張機能やOSのネイティブ機能などを利用してブラウザを操作する仕組みがSelenium WebDriverです。元々はWebDriverという名前で開発されていましたが、Seleniumと統合されSelenium WebDriverという名前になりました。</p>
<blockquote>
<p>🐶seleniumは、簡単に言えばブラウザを自動で動かしてくれるやつやな。</p>
<p>🐍BS4でもええやん。</p>
<p>🐶BS4もかなり便利やけどJavascriptとかには弱いねん。あと認証突破できへんねん。あいつ。</p>
</blockquote>
<h2 id="PythonにSeleniumをインストールする"><a href="#Python%E3%81%ABSelenium%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B">PythonにSeleniumをインストールする</a></h2>
<p>まず、Seleniumをインストールします。</p>
<pre><code class="python">pip install selenium
</code></pre>
<h2 id="Webドライバーのダウンロード"><a href="#Web%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">Webドライバーのダウンロード</a></h2>
<p>それぞれのブラウザに併せてWebドライバーをダウンロードする必要があります。<br />
<a target="_blank" rel="nofollow noopener" href="http://chromedriver.chromium.org/">ChromeDriver</a><br />
ダウンロード後に任意のフォルダに解凍します。<br />
ここでは、<code>C:/chromedriver.exe</code>に配置します。</p>
<blockquote>
<p>🐶Colabとかでは動かないから注意や</p>
</blockquote>
<h2 id="実装"><a href="#%E5%AE%9F%E8%A3%85">実装</a></h2>
<pre><code class="python">from selenium import webdriver
#webdriverの場所を指定
driver = webdriver.Chrome("C:/chromedriver.exe")
driver.get("https://www.coderecipe.org/");
</code></pre>
<blockquote>
<p>🐶このコードでは当サイトの表示までできてるで</p>
<p>🐍インストールまでが鬼門やけど、そこから先は結構シンプルやな</p>
<p>🐶次はもう少し踏み込んだところまで解説していくで</p>
</blockquote>
aocory
tag:crieit.net,2005:PublicArticle/14986
2019-05-15T13:46:23+09:00
2019-05-15T13:46:23+09:00
https://crieit.net/posts/Python-5cdb999f37ca3
Pythonで計算機を作る
<h1 id="Pythonで計算機を作る"><a href="#Python%E3%81%A7%E8%A8%88%E7%AE%97%E6%A9%9F%E3%82%92%E4%BD%9C%E3%82%8B">Pythonで計算機を作る</a></h1>
<p>ユーザー入力に応じて加算、減算、乗算、除算などの基本的な算術演算を実行できる単純な計算機を作成します。</p>
<blockquote>
<p>🐶<code>if</code>とかPythonの基本的な条件分岐で計算機アプリを作るで</p>
<p>🐍<code>if</code>完全に理解した。</p>
</blockquote>
<h2 id="完成したコード"><a href="#%E5%AE%8C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89">完成したコード</a></h2>
<pre><code class="python"># Python program for simple calculator
# Function to add two numbers
def add(num1, num2):
return num1 + num2
# Function to subtract two numbers
def subtract(num1, num2):
return num1 - num2
# Function to multiply two numbers
def multiply(num1, num2):
return num1 * num2
# Function to divide two numbers
def divide(num1, num2):
return num1 / num2
print("Please select operation -\n" \
"1. Add\n" \
"2. Subtract\n" \
"3. Multiply\n" \
"4. Divide\n")
# Take input from the user
select = input("Select operations form 1, 2, 3, 4 :")
number_1 = int(input("Enter first number: "))
number_2 = int(input("Enter second number: "))
if select == '1':
print(number_1, "+", number_2, "=",
add(number_1, number_2))
elif select == '2':
print(number_1, "-", number_2, "=",
subtract(number_1, number_2))
elif select == '3':
print(number_1, "*", number_2, "=",
multiply(number_1, number_2))
elif select == '4':
print(number_1, "/", number_2, "=",
divide(number_1, number_2))
else:
print("Invalid input")
</code></pre>
<h2 id="コードを動かしてみる"><a href="#%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">コードを動かしてみる</a></h2>
<p><a target="_blank" rel="nofollow noopener" href="https://colab.research.google.com/drive/1CNBvzUf-VQlF54nIVchdnff6mBia5Ebk">Python計算機サンプル</a></p>
<h2 id="コード解説"><a href="#%E3%82%B3%E3%83%BC%E3%83%89%E8%A7%A3%E8%AA%AC">コード解説</a></h2>
<pre><code class="python">def add(num1, num2):
return num1 + num2
def subtract(num1, num2):
return num1 - num2
def multiply(num1, num2):
return num1 * num2
def divide(num1, num2):
return num1 / num2
</code></pre>
<blockquote>
<p>🐶ここは足し算、引き算、かけ算、割り算の関数を定義してるんや</p>
<p>🐍なるほど、それぞれ単体で呼び出せるように設計してるんやな</p>
</blockquote>
<pre><code class="python">print("Please select operation -\n" \
"1. Add\n" \
"2. Subtract\n" \
"3. Multiply\n" \
"4. Divide\n")
select = input("Select operations form 1, 2, 3, 4 :")
number_1 = int(input("Enter first number: "))
number_2 = int(input("Enter second number: "))
</code></pre>
<blockquote>
<p>🐶ここはユーザに動作を入力して貰うセクションや</p>
<p>🐍なるほど、<code>\</code>はWindows環境だとエラーなることがあるので注意やで</p>
</blockquote>
<pre><code class="python">if select == '1':
print(number_1, "+", number_2, "=",
add(number_1, number_2))
elif select == '2':
print(number_1, "-", number_2, "=",
subtract(number_1, number_2))
elif select == '3':
print(number_1, "*", number_2, "=",
multiply(number_1, number_2))
elif select == '4':
print(number_1, "/", number_2, "=",
divide(number_1, number_2))
else:
print("Invalid input")
</code></pre>
<blockquote>
<p>🐶ここは実際計算する処理するセクションや<code>if</code>と<code>elif</code>で入力した部分を分岐させてるねん。</p>
<p>🐍なるほど、6とかそういう無効な数値を入力すると最後の<code>else</code>にいくんですね。</p>
</blockquote>
aocory