<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Python - プログラミングで遊ブログ</title>
	<atom:link href="https://lemon818.com/category/it/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://lemon818.com</link>
	<description>現役システムエンジニアが趣味でプログラミングする自由気ままなブログ</description>
	<lastBuildDate>Fri, 02 Jul 2021 21:58:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>	<item>
		<title>英語苦手でもできる Twitter API の利用申請方法（例文付き）！</title>
		<link>https://lemon818.com/twitter-api/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Sat, 26 Jun 2021 09:16:26 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[例文]]></category>
		<category><![CDATA[申請]]></category>
		<category><![CDATA[英語]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5928</guid>

					<description><![CDATA[Twitter の自作 Bot を作ってみたい！ Twitter で自動ツイートとか自動いいねとかいろいろとやってみたい！... けど ... 実際にどうやってやるの？ &#160; Twitterで自動ツイートやBot…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><strong><strong><span style="color: #000000;">Twitter の自作 Bot を作ってみたい！<br />
Twitter で自動ツイートとか自動いいねとかいろいろとやってみたい！</span></strong></strong></strong><strong><span style="color: #000000;">... けど ... </span></strong><strong><span style="color: #ff0000;">実際にどうやってやるの？</span></strong></div>
</div>
<p>&nbsp;</p>
<p>Twitterで自動ツイートやBotをつくるためには「Twitter API 」を利用する必要があります。</p>
<p>&nbsp;</p>
<p>「Twitter API 」とは <strong>Twitter のいろいろな処理（ツイートやいいね！など）をプログラミングで呼び出すための機能</strong>のようなものですが、</p>
<p>「Twitter API 」を利用するためには アクセスキー、アクセストークンといったさまざまな 「API キー」が必要です。</p>
<p>そしてそれら「API キー」を取得するために、 <strong>Twitter の公式ページからAPIの利用申請を出す必要があります。</strong></p>
<p>&nbsp;</p>
<p>なので「申請めんどくせ～～～」とおもいつつ、いざ申請してみるとページは英語ばっかり。。</p>
<p>「<span style="color: #ff0000;"><strong>Twitter API 申請ページって英語ばっかでめんどくせえ～～</strong></span>」ってなってたりしませんか？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>このページでは Twitter API の申請 から API を利用できるようになるまでの一通りの手順についてわかりやすく説明します！</p>
<p>また申請の際には英語の文章を作る必要がありますが、私が <strong>API 申請をして利用できるようになったときの</strong><span style="color: #3366ff;"><strong>実際の英語の例文</strong></span>も記述しています。</p>
<p>よければぜひ参考にしてみてください！</p>
<p>&nbsp;</p>
<div class="voice clearfix left n_bottom">
<div class="icon">
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2019/07/hukurou.jpg" /></p>
<div class="name"></div>
</div>
<div class="text sc_balloon left white">私も<span style="color: #ff0000;">英語がまったくわからない</span>人間なので、このページでは英語ができない人でもわかりやすく解説します！</div>
</div>
<p>&nbsp;</p>
<h2>Twitter Developer ページにアクセスして、API 利用申請する</h2>
<p>まず <a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>にアクセスし、「<strong>Create an app</strong>」ボタンをクリックします。</p>
<p>このとき Twitter アカウントにログインする必要があります。</p>
<p>ここでログインしたアカウントが Twitter API 申請用のアカウントになりますので、好きなアカウントでログインしておいてください。</p>
<p>&nbsp;</p>
<p><img fetchpriority="high" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2.png" alt="" width="1215" height="236" class="aligncenter wp-image-5926" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2.png 1692w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2-300x58.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2-1024x199.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2-768x149.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register2-1536x298.png 1536w" sizes="(max-width: 1215px) 100vw, 1215px" /></p>
<p>&nbsp;</p>
<p>そして「<strong>Create an app</strong>」ボタンをクリックします。</p>
<p>すると下記のようなページがでてくるので、利用用途に合わせて選択します。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3.png" alt="" width="1085" height="419" class="aligncenter wp-image-5933" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3.png 1716w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3-300x116.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3-1024x396.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3-768x297.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register3-1536x593.png 1536w" sizes="(max-width: 1085px) 100vw, 1085px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>今回、自動ツイートとかリツイートとか Twitter の便利ツールをつくってみたかったので、「Buliding tools for Twitter users」を選択しました。</p>
<p>Bot をつくるなら「Making a bot」でいいと思います。</p>
<p>&nbsp;</p>
<p>上記を選択したら下記のような画面に遷移するので、</p>
<p>画面に従って項目を入力します。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1.png" alt="" width="1206" height="629" class="aligncenter wp-image-5943" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1.png 1809w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1-300x156.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1-1024x534.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1-768x400.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register4_1-1536x801.png 1536w" sizes="(max-width: 1206px) 100vw, 1206px" /></p>
<p>&nbsp;</p>
<p>ちょっと迷うかもしれないところをまとめます。</p>
<div class="sc_frame_wrap orange">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid orange">
<ol>
<li>What would you like us to call you? ・・・ （訳）あなたを何て呼べばいいですか？ →  お好きな名前でどうぞ！</li>
<li>What country do you live in? ・・・ （訳）どこに住んでますか？ →  Japan</li>
<li>What's your current coding skill level? ・・・ （訳）コーディングスキルはどれくらいですか？ → 「Some experience」</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>上記二つはいいと思いますが、コーディングスキルというのはプログラミング能力のこと、</p>
<p>つまり「<strong>プログラミングどれだけ書けますかー？</strong>」ってことです。</p>
<p>これは何も経験がないなら「No experience」、経験があるなら「Some experience」、「Highly experience」でいいと思います。</p>
<p>※ 正直に書いたらいいと思います！</p>
<p>なお Get the latest Twitter API news ( Twitter API の最新情報は入りますか？)っていう項目はチェックの有り無しどちらでもいいです。</p>
<p>&nbsp;</p>
<p>そして「Next」を押下すると、下記のような<strong><span style="color: #ff0000;">英語で色々と入力しないといけなさそうな画面</span></strong>に遷移する。</p>
<p>&nbsp;</p>
<h3><span>How will you use the Twitter API or Twitter Data? (Twitter APIをどのように使うか？回答例文)</span></h3>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register5.png" alt="" width="1040" height="614" class="aligncenter wp-image-5944" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register5.png 1464w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register5-300x177.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register5-1024x604.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register5-768x453.png 768w" sizes="auto, (max-width: 1040px) 100vw, 1040px" /></p>
<p>&nbsp;</p>
<p>「うわーめんどくせえ～～」とか思うかもしれませんが、あと一歩です。</p>
<p>このページは「Twitter API でどんなことする予定？」って聞いてきてますので、以下のように答えればだいたいOKです。</p>
<p>なお、<span style="color: #3366ff;"><strong>全部は答える必要がありません</strong></span>！必要な箇所のみでOKです！</p>
<p>※ もし英語に自信がある方は自作のやつを入れていただければと思います。</p>
<p>わたしはあまりに英語ができないので日本語を Google 翻訳にそのまま突っ込んだ結果を貼り付けてます。。</p>
<p>&nbsp;</p>
<div class="diver_qa">
<div class="diver_question">
<div>
<p>In English, please describe how you plan to use Twitter data and/or APIs. The more detailed the response, the easier it is to review and approve.</p>
<p>TwitterのデータやAPIをどのように使用する予定かを英語で説明してください。応答が詳細であるほど、レビューと承認が容易になります。</p>
</div>
</div>
</div>
<div class="diver_qa">
<div class="diver_answer">
<div>I run a blog and want to use the Twitter API to attract customers to that blog.<br />
Post the content you wrote on your blog on Twitter, and automatically follow users who like or retweet the tweet.<br />
I also want to improve the work efficiency of SNS operations by automatically following and retweeting users who follow my account.</div>
<div>
<p>私はブログを運用していますが、そのブログの集客のためにTwitterAPIを使用したいです。<br />
ブログに書いた内容をTwitter に投稿し、そのツイートに対していいねやリツイートをしてくれたユーザを自動フォローしたり、<br />
また自分のアカウントをフォローしてくれたユーザを自動フォロー、自動でリツイートすることで SNS 運用の作業効率を向上させたいです。</p>
</div>
</div>
</div>
<p>&nbsp;</p>
<div class="diver_qa">
<div class="diver_question">
<p>Are you planning to analyze Twitter data?</p>
<p>Twitterのデータを分析する予定はありますか？</p>
</div>
</div>
<div class="diver_qa">
<div class="diver_answer">No. いいえ</div>
</div>
<p>&nbsp;</p>
<div class="diver_qa">
<div class="diver_question">Will your app use Tweet, Retweet, like, follow, or Direct Message functionality?<br />
Please describe your planned use of these features.アプリでツイート、リツイート、いいね、フォロー、ダイレクトメッセージ機能を使用しますか？<br />
<span>これらの機能の使用予定について説明してください。</span></div>
</div>
<div class="diver_qa">
<div class="diver_answer">Yes.<br />
We plan to create a Bot function that automatically tweets the articles created on the blog.<br />
We will also create a function to automatically follow people who like or retweet the bot's tweets.<br />
I also want to create a feature that automatically sends a thank you direct message to users who follow my account.はい<br />
ブログで作成した記事を自動でツイートするBot機能を作成する予定です。<br />
そのBotのつぶやきをいいねやリツイートした人を自動フォローする機能も作成する予定です。<br />
また、自分のアカウントをフォローしてくれたユーザーにお礼のダイレクトメッセージを自動で送るような機能も作成したいです。</div>
</div>
<p>&nbsp;</p>
<div>
<div class="diver_qa">
<div class="diver_question">
<p>Do you plan to display Tweets or aggregate data about Twitter content outside of Twitter?</p>
<p>Twitter以外のTwitterコンテンツに関するツイートや集計データを表示する予定はありますか？</p>
</div>
</div>
<div class="diver_qa">
<div class="diver_answer">
<p>No</p>
<p>いいえ</p>
</div>
</div>
</div>
<p>&nbsp;</p>
<div>
<div class="diver_qa">
<div class="diver_question">
<p>Will your product, service, or analysis make Twitter content or derived information available to a government entity?</p>
<p>あなたの製品、サービス、または分析により、Twitterのコンテンツまたは派生情報を政府機関が利用できるようになりますか？</p>
</div>
</div>
<div class="diver_qa">
<div class="diver_answer">
<p>No</p>
<p>いいえ</p>
</div>
</div>
</div>
<p>基本的に No のところは回答しなくていいです。</p>
<p>上記の Q &amp; A 通りに回答していって最後に<strong> Next</strong> ボタンを押下します（下記画面のようになってたらOK）。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register6.png" alt="" width="472" height="846" class="aligncenter wp-image-5950" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register6.png 430w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register6-167x300.png 167w" sizes="auto, (max-width: 472px) 100vw, 472px" /></p>
<p>次の画面でアカウント情報が表示されるのでそのまま Next をクリックします。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8.png" alt="" width="1001" height="498" class="aligncenter wp-image-5951" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8.png 1818w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8-300x149.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8-1024x509.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8-768x382.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register8-1536x764.png 1536w" sizes="auto, (max-width: 1001px) 100vw, 1001px" /></p>
<p>&nbsp;</p>
<p>利用規約が表示されるので、チェックを入れて「Submit application」を押下します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10.png" alt="" width="1001" height="497" class="aligncenter wp-image-5952" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10.png 1833w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10-300x149.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10-1024x508.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10-768x381.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register10-1536x763.png 1536w" sizes="auto, (max-width: 1001px) 100vw, 1001px" /></p>
<p>&nbsp;</p>
<p>これにてOKです。</p>
<p>あとは今夏感じの画面が表示されるのでメールが来るのを待ちます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register11.png" alt="" width="798" height="378" class="aligncenter size-full wp-image-5953" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register11.png 798w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register11-300x142.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register11-768x364.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>承認が下りる期間は人によって変わるので正直わかりません。</strong></span></p>
<p>1週間か2週間かかる場合もあれば一瞬で承認が下りる場合もあります（わたしは送った瞬間に承認がきました・・・）</p>
<p>&nbsp;</p>
<h2>Twitter API のアクセストークンとアクセスキーを取得する</h2>
<p>承認が通ればさきほどのユーザ（API 申請したときのアカウント）で、 <a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>に再ログインしたら</p>
<p>API 処理に必要な「Consumer Keys」 と「Authenications Tokens」がそれぞれ取得できます。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png" alt="" width="1099" height="572" class="aligncenter wp-image-5955" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png 1235w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-300x156.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-1024x533.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-768x400.png 768w" sizes="auto, (max-width: 1099px) 100vw, 1099px" /></p>
<p>&nbsp;</p>
<p>この「Consumer Keys」 と「Authenications Tokens」のふたつさえ取得できればOKです。</p>
<p>これらの ID をメモして覚えておきましょう！</p>
<p>&nbsp;</p>
<p>※ 実際の Twitter API の使い方は下記になります。</p>
<p>作成中。</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Twitter API の申請 から API を利用できるようになるまでの一通りの手順についてわかりやすく説明しました。</p>
<p>&nbsp;</p>
<p>この記事を読めば自由に Twitter Bot をつかったり、自動投稿なっていう 開発もできるようになります！</p>
<p>この記事がいいなと思えばぜひ SNS で共有いただければ嬉しいです！</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3か月で 0→500フォロワーに育つ Twitter 自動 bot の作り方【Python】</title>
		<link>https://lemon818.com/python-twitter-bot/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 21 Jun 2021 15:13:30 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ツイート]]></category>
		<category><![CDATA[リツイート]]></category>
		<category><![CDATA[リフォロー]]></category>
		<category><![CDATA[リムーブ]]></category>
		<category><![CDATA[作り方]]></category>
		<category><![CDATA[自動]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5899</guid>

					<description><![CDATA[ああ～～、一億人くらい俺のTwitterをフォローしてくれんかな。。。 &#160; Twitter でアカウントを作りはじめたころ、誰もフォローしてくれない日々。。。 誰しも一度は「めちゃくちゃフォロワー欲しい！」って…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><span style="color: #000000;">ああ～～、一億人くらい俺のTwitterをフォローしてくれんかな。。。</span></strong></div>
</div>
<p>&nbsp;</p>
<p>Twitter でアカウントを作りはじめたころ、誰もフォローしてくれない日々。。。</p>
<p>誰しも一度は「<strong>めちゃくちゃフォロワー欲しい！</strong>」って思いませんでした？</p>
<p>&nbsp;</p>
<p>そんなある日私は<strong> Python </strong>というプログラミングで<strong> Twitter 上に Bot </strong>をつくり</p>
<p><strong>「<span style="background-color: #ffff00;">3か月間、自動でどれくらいフォロワーが増えるのか？</span>」検証してみました！</strong></p>
<p>その検証結果がこれ！↓</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1.png" alt="" width="551" height="477" class="aligncenter wp-image-5900" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1.png 646w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1-300x260.png 300w" sizes="auto, (max-width: 551px) 100vw, 551px" /></p>
<p>&nbsp;</p>
<p>割と育っとる。。</p>
<p>たぶん読者の中には「<strong>どこかでみた安っぽい Botだな</strong>」と思われた方もいるかもしれません。</p>
<p>しかし <span style="font-size: 28px;"><strong style="color: #3366ff;">3か月間完全放置で 0フォロワー → 500 フォロワーまで育ちました！！</strong><strong style="color: #3366ff;">！！</strong></span></p>
<p>&nbsp;</p>
<div class="voice clearfix left n_bottom">
<div class="icon">
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2019/07/hukurou.jpg" /></p>
<div class="name"></div>
</div>
<div class="text sc_balloon left white">この記事を書くためだけに3か月育ててきたのに、<br />
書くのを忘れてた上に、3か月<span style="color: #ff0000;"><strong><span style="color: #000000;">完全放置していたら</span>フォロワーが456に減りました</strong></span>・・・<br />
ポンコツすぎてすみません。。。</div>
</div>
<p>&nbsp;</p>
<p>この Bot の機能ですが、これだけです！！</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>たぶん上記の機能だけで <span style="text-decoration: underline;">Twitter Bot としては必要な機能は一通り満たしている</span>と思っています。</p>
<p>また今回下記機能についてはわざと追加しませんでした。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap red">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid red">
<ol>
<li>「自動いいね」・・・<span style="color: #ff0000;"><strong> Twitter 上では禁止されている</strong></span>ので実現していません。</li>
<li>フォロー返しのDMメッセージ（フォローしてくれてありがとうってメッセージを送る）・・・ダイレクトメッセージを送ることが送信先アカウントの同意が必要らしく DM を勝手に送りまくると違反行為になるらしい（同意があれば送信可）ので実現しませんでした。</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>せっかく BOT つくったのに<span style="color: #ff0000;"><strong>アカウント停止になったら悲しい</strong></span>ので上記の機能はやめておきました。</p>
<p>※ 参考：<a href="https://help.twitter.com/ja/rules-and-policies/twitter-automation">Twitterルール</a></p>
<p>&nbsp;</p>
<p>この記事では作成した <strong>Python  というプログラミング言語をつかって自作した Twitter Bot の作り方~動かし方まですべて</strong>をご紹介します。</p>
<p>よければぜひ見ていってください。</p>
<p>&nbsp;</p>
<h2>Twitter Bot を作るための手順まとめ</h2>
<p>Twitter Bot を作成する上での手順はこんな感じです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">手順まとめ！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>Twitter Bot 用のアカウントを作成する</li>
<li>Twitter 公式ページへ API 利用申請する</li>
<li>API 申請許可が通ったら API を利用するための「Consumer Keys」 と「Authenications Tokens」を取得</li>
<li>Python で Twitter API をつかって Twitter Bot を作成する</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>こんな感じの流れです。</p>
<p>これを順に説明していきます。</p>
<p>&nbsp;</p>
<h2>Twitter Bot 用のアカウントを作成する</h2>
<p>まずは Twitter Bot 用のアカウントを新たに作ります。</p>
<p>これは説明不要と思いますが、<a href="https://twitter.com/">Twitter 公式ページ</a>からアカウントを作成するだけです。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register.png" alt="" width="887" height="362" class="aligncenter wp-image-5925" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register.png 1572w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-300x123.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-1024x418.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-768x314.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-1536x627.png 1536w" sizes="auto, (max-width: 887px) 100vw, 887px" /></p>
<p>&nbsp;</p>
<p>アカウントには特段難しい設定はいらず、普通のアカウントでOKです。</p>
<p>ただしアカウント作成にはメールアドレスが必要なので <a href="https://www.google.com/intl/ja/gmail/about/">Gmail</a> で作成することをおススメします。</p>
<p>&nbsp;</p>
<h2>Twitter 公式ページへ API 利用申請する（例文も記載）</h2>
<p>つぎに Twitter で自動でツイートしたりするための機能（API）を利用するために Twitter 公式ページ に 申請をします、</p>
<p><span style="color: #ff0000;"><strong>これが結構めんどくさいです。</strong></span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">※ やり方は別ページにしています。必要な方はぜひ見てください。</span></span></p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/twitter-api/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/Twitter_1624288912-150x150.jpg" width="150" height="150" alt="英語苦手でもできる Twitter API の利用申請方法（例文付き）！"></div><div class="title">英語苦手でもできる Twitter API の利用申請方法（例文付き）！</div><div class="date">2021.6.26</div><div class="substr">Twitter の自作 Bot を作ってみたい！ Twitter で自動ツイートとか自動いいねとかいろいろとやってみたい！... けど ... 実際にどうやってやるの？  Twitterで自動ツイートやBotをつくるためには「Twitter API 」を利用する必要があります。  「Twitter ...</div></a></div>
<p>&nbsp;</p>
<h2>Twitter API の「Consumer Keys」 と「Authenications Tokens」を取得</h2>
<p>「Consumer Keys」 と「Authenications Tokens」とは<strong> Twitter API を利用するための認証キーとアクセストークン</strong>のことです。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check orange">
<ul>
<li>Consumer Keys ・・・ Twitter API 用の認証キー（Twitter 自動化ツールごとに1つあればOK）</li>
<li>Authenications Tokens ・・・ ユーザ用のアクセストークン情報（アカウントごとに1つあればOK）</li>
</ul>
</div>
<p>&nbsp;</p>
<p>Twitter API の承認が通っていれば <a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>にアクセスし、「Project &amp; Apps 」から「Consumer Keys」 と「Authenications Tokens」が確認できます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png" alt="" width="964" height="502" class="aligncenter wp-image-5955" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png 1235w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-300x156.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-1024x533.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-768x400.png 768w" sizes="auto, (max-width: 964px) 100vw, 964px" /></p>
<p>&nbsp;</p>
<p>この「Consumer Keys」 と「Authenications Tokens」をどこかにメモしておきます。</p>
<p>これらは Twitter API を使う際に後で使います。</p>
<p>&nbsp;</p>
<p>これでようやくここから Twitter Bot を作成する準備はOKです。</p>
<p>&nbsp;</p>
<h2>Python で Twitter API をつかって Twitter Bot を作成する</h2>
<p>Twitter Bot を作成する上で今回実装する機能です。</p>
<p>Botというのは、いわばこれら↓の処理を毎日繰り返しループさせればOKです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>Twitter API が簡単に扱える tweepy パッケージをインストール</h3>
<p>Twitter API を簡単に扱える tweepy パッケージを インストールします。</p>
<p>コマンドライン（Windowsならコマンドプロンプト、Mac なら Terminal）で下記を入力すればOKです。</p><pre class="crayon-plain-tag">pip install tweepy</pre><p>
&nbsp;</p>
<p>このコマンドが正常終了すればＯＫです。</p>
<p>あとは tweepy パッケージをつかって Twitter Bot を作成していきます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot の大枠（処理概要）</h3>
<p>まずはじめに Twitter Bot の処理の大枠をつくっていきます。</p>
<p><a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>で取得した「Consumer Keys」 と「Authenications Tokens」を</p>
<p>consumer_key、consumer_secret、access_token_key、access_token_secret にそれぞれあてはめます。</p><pre class="crayon-plain-tag">import tweepy
import random

def main():

    consumer_key = 'XXXXXXXXXXXXXXXXXXX'
    consumer_secret = 'XXXXXXXXXXXXXXXXXXX'
    access_token_key = 'XXXXXXXXXXXXXXXXXXX'
    access_token_secret = 'XXXXXXXXXXXXXXXXXXX'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)

    # ～ここより下にTwitter上で実行したい処理を書く～

if __name__ == "__main__":
    main()</pre><p>
&nbsp;</p>
<p>インポートするパッケージについては「tweepy」と「random」とします。</p>
<p>「random」は乱数を出力するパッケージで、ランダムな数だけツイート数やリツイート数するように調整しています。</p>
<p>&nbsp;</p>
<h3>Twitter Bot で自動ツイート</h3>
<p>まずは Twitter Bot で自動ツイートする方法です。</p>
<p>これは tweepy というパッケージの update_status メソッドでツイートができます。</p>
<p>update_status の引数にツイートする内容を指定すればOKです。</p><pre class="crayon-plain-tag"># ツイート 
api.update_status(msg)</pre><p>
&nbsp;</p>
<p>たとえば update_status('おはよう') とやれば Twitter上で「おはよう」とツイートできます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot で「検索ワード」にヒットするアカウントを自動フォロー</h3>
<p>Twitter では下記画像のように「検索機能」があります。</p>
<p>その検索にヒットしたアカウントを自動フォローする機能について説明します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search.png" alt="" width="461" height="346" class="aligncenter wp-image-5979" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search.png 620w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search-300x225.png 300w" sizes="auto, (max-width: 461px) 100vw, 461px" /></p>
<p>&nbsp;</p>
<p>これには二つの機能が必要です。</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>
<div>
<div><span>Twitter のキーワード検索した結果を取得する ・・・ tweepy の search</span><span>() メソッド</span></div>
</div>
</li>
<li>検索した結果から得られたアカウントをフォローする・・・ <span><span>tweepy の create_favorite</span></span><span>() メソッド</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><span>Twitter のキーワード検索した結果を取得する方法ですが、下記のように search() メソッドを使います。</span></p>
<p><span> search() には引数として「キーワード」と「検索結果数」を指定でき、その指定した値から得られた検索結果を取得できます。</span></p><pre class="crayon-plain-tag"># 検索結果を取得
search_results = api.search(q='キーワード', count=検索結果数)

api.update_status(msg)</pre><p>
&nbsp;</p>
<p>またアカウントをフォローする方法は下記のように <span>create_favorite() メソッドを使います。</span></p><pre class="crayon-plain-tag"># アカウントをフォローする
api.create_friendship(user_id)</pre><p>
&nbsp;</p>
<p><span>なお user_id とは search() メソッドで得られた ユーザID を示します。</span></p>
<p>&nbsp;</p>
<h3>Twitter Bot で「検索ワード」にヒットするツイートを自動リツイート</h3>
<p>これは先程と同様 Twitter の検索機能を使い検索した結果にヒットしたツイートを自動でリツイートする方法です。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2.png" alt="" width="495" height="565" class="aligncenter wp-image-5980" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2.png 625w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2-263x300.png 263w" sizes="auto, (max-width: 495px) 100vw, 495px" /></p>
<p>&nbsp;</p>
<p>これには二つの機能が必要です。</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>
<div>
<div><span>Twitter のキーワード検索した結果を取得する ・・・ tweepy の search</span><span>() メソッド</span></div>
</div>
</li>
<li>検索した結果から得られたツイートをリツイートする・・・ <span>tweepy の retweet</span><span>() メソッド</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><span>これは前章での内容と同じです。</span></p>
<p><span>Twitter のキーワード検索した結果を取得する方法ですが、下記のように search() メソッドを使います。</span></p>
<p><span> search() には引数として「キーワード」と「検索結果数」を指定でき、その指定した値から得られた検索結果を取得できます。</span></p><pre class="crayon-plain-tag"># 検索結果を取得
search_results = api.search(q='キーワード', count=検索結果数)

api.update_status(msg)</pre><p>
&nbsp;</p>
<p>またアカウントをフォローする方法は下記のように retweet<span>() メソッドを使います。</span></p><pre class="crayon-plain-tag"># アカウントをフォローする
api.retweet(tweet_id)</pre><p>
&nbsp;</p>
<p>なお tweet_idとは search() メソッドで得られた ツイートID を示します。</p>
<p>&nbsp;</p>
<h3>Twitter Bot でフォローしてくれたアカウントを自動リフォロー</h3>
<p>自分のアカウントをリフォロー（フォロー返し）する方法ですが、</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li><span style="color: #3366ff;"><strong>フォロワー</strong></span> と<span style="color: #ff0000;"><strong>フォロー</strong></span>の差分を取得 → <span style="color: #3366ff;"><strong>フォロワー</strong></span>にしかいないアカウントを取得</li>
<li>① で取得したアカウントを順にフォロー</li>
</ol>
</div>
<p>&nbsp;</p>
<p>まずは自分のアカウントのフォロワーとフォローを下記のように取得し、その差分を取ります。</p><pre class="crayon-plain-tag">#フォロワー数とフォロー数を格納するリストを用意
follower_list = []
friend_list = []

#ユーザ情報からフォロワー数を取得、格納
follower_list = api.followers_ids(my_user_id)

#ユーザ情報からフォロー数を取得、格納
friend_list = api.friends_ids(my_user_id)

# 差分を取得 
result_list = list(set(follower_list) - set(friend_list)))</pre><p>
&nbsp;</p>
<p>そのフォロワーとフォローの差分を result_list のようにリストにし</p>
<p>そのリストに含まれるアカウントを順にフォローしていけばOKです！</p><pre class="crayon-plain-tag">for user_id in result_list:
    cnt = cnt + 1
    try:
        if cnt &lt; maxReq : api.create_friendship(user_id)
    except Exception as e:
        print(e)</pre><p>
&nbsp;</p>
<p>なお Twitter のフォロー処理は tweepy の create_friendship メソッドで処理できます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot でフォロバになれなかった人を自動リムーブ</h3>
<p>自分のアカウントをフォローしてくれない人をリムーブ（フォローをはずす）する方法ですが、</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li><span style="color: #3366ff;"><strong>フォロワー</strong></span> と<span style="color: #ff0000;"><strong>フォロー</strong></span>の差分を取得 → <span style="color: #ff0000;"><strong>フォロー</strong></span>にしかいないアカウントを取得</li>
<li>① で取得したアカウントを順にリムーブ</li>
</ol>
</div>
<p>&nbsp;</p>
<p>さきほどとは違い、今度は<span style="color: #ff0000;"><strong>フォロー</strong></span>にしかいないアカウントを取得することがポイントです。</p>
<p>まずは自分のアカウントのフォロワーとフォローを下記のように取得し、その差分を取ります。</p><pre class="crayon-plain-tag">#フォロワー数とフォロー数を格納するリストを用意
follower_list = []
friend_list = []

#ユーザ情報からフォロワー数を取得、格納
follower_list = api.followers_ids(my_user_id)

#ユーザ情報からフォロー数を取得、格納
friend_list = api.friends_ids(my_user_id)

# 差分を取得 
result_list = list(set(follower_list) - set(friend_list)))</pre><p>
&nbsp;</p>
<p>そのフォロワーとフォローの差分を result_list のようにリストにし</p>
<p>そのリストに含まれるアカウントを順にフォローしていけばOKです！</p><pre class="crayon-plain-tag">for user_id in result_list:
　　　cnt = cnt + 1
　　　try:
　　　　if cnt &lt; maxReq : api.destroy_friendship(user_id)
　　　except Exception as e:
　　　　print(e)</pre><p>
&nbsp;</p>
<p>なお Twitter のリムーブ処理は tweepy の destroy_friendship メソッドでできます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot の完成形</h3>
<p>下記すべてを合わせた完成形がソースコード全体がこちらです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p><pre class="crayon-plain-tag">import tweepy
import random

def main():

    consumer_key = 'XXXXXXXXXXXXXXXXXX'
    consumer_secret = 'XXXXXXXXXXXXXXXXXX'
    access_token_key = 'XXXXXXXXXXXXXXXXXX'
    access_token_secret = 'XXXXXXXXXXXXXXXXXX'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)
    my_user_id = api.me().id_str

    msg = "ブログ"
    keyword = ["#Python"]

    # ツイート
    api.update_status(msg)

    # いいね
    do(api,"GOOD",keyword)

    # リツイート
    do(api,"RETWEET",keyword)

    # フォロー
    do(api,"FOLLOW",keyword)

    # リフォロー
    reFollow(api,my_user_id)

    # リムーブ
    removeFollow(api,my_user_id)


# タイムライン検索
def do(api,action,keyword,maxReq=3,maxTimeLine=10):

    for q in keyword:
        
        cnt = 0
        actCnt = random.randint(1,maxReq)            
        search_results = api.search(q=q, count=maxTimeLine)
        
        for result in search_results:

            tweet_id = result.id
            user_id  = result.user._json['id']

            try:
                if cnt &lt; actCnt:
                    if action == "GOOD" : api.create_favorite(tweet_id)
                    if action == "RETWEET" : api.retweet(tweet_id)
                    if action == "FOLLOW" : api.create_friendship(user_id)

                else:
                    break

                cnt = cnt + 1

            except Exception as e:
                print(e)


# フォロー返し
def reFollow(api,my_user_id,maxReq=3):

    cnt = 0

    #フォロワー数とフォロー数を格納するリストを用意
    follower_list = []
    friend_list = []
    
    #ユーザ情報からフォロワー数を取得、格納
    follower_list = api.followers_ids(my_user_id)

    #ユーザ情報からフォロー数を取得、格納
    friend_list = api.friends_ids(my_user_id)

    result_list = list(set(follower_list) - set(friend_list))

    for user_id in result_list:

        cnt = cnt + 1
        print(user_id)

        try:
            if cnt &lt; maxReq : api.create_friendship(user_id)
        except Exception as e:
            print(e)


# リムーブ
def removeFollow(api,my_user_id,maxReq=50):

    cnt = 0

    #フォロワー数とフォロー数を格納するリストを用意
    follower_list = []
    friend_list = []
    
    #ユーザ情報からフォロワー数を取得、格納
    follower_list = api.followers_ids(my_user_id)

    #ユーザ情報からフォロー数を取得、格納
    friend_list = api.friends_ids(my_user_id)

    result_list = list(set(friend_list) - set(follower_list))

    for user_id in result_list:
        cnt = cnt + 1
        try:
            if cnt &lt; maxReq : api.destroy_friendship(user_id)
        except Exception as e:
            print(e)


if __name__ == "__main__":
    main()</pre><p>
&nbsp;</p>
<p>上記のプログラミングを毎日繰り返し処理をすれば Twitter Bot として実行できます。</p>
<h2>作成した Twitter Bot を定期的に実行させる方法</h2>
<p>上記で作成した Twitter Bot プログラムを繰り返し毎日実行すればＯＫです。</p>
<p><span style="color: #000000;">ここでおそらく</span><strong><span style="color: #ff0000;"><span style="color: #000000;">このプログラムを</span>「どこで」「どうやって」<span style="color: #000000;">実行すればいいだろう？</span></span></strong><span style="color: #000000;">とそんな疑問</span>もわいてくると思います。</p>
<p>&nbsp;</p>
<p>そんな疑問に順番に解決していきます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot を「どこで」実行すればいいのか？</h3>
<p>Twitter Bot を「どこで」実行し続けるか？</p>
<p>下記の二つが候補に挙げられます。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>Twitter Bot を自分のパソコンで実行する ← <strong><span style="color: #ff0000;">本当にやめておいたほうがいい</span></strong></li>
<li>Twitter Bot を VPS サーバーを借りて実行する ← <strong><span style="color: #3366ff;">1番おススメ</span></strong></li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>先に結論からいいますが、一番おススメが「 <strong>VPS サーバーを借りる</strong>」です。</p>
<p>※ VPS とは普通のレンタルサーバー（エックスサーバーなど）とは異なり、OS からアプリまですべて管理するサーバです。</p>
<p>&nbsp;</p>
<h4>Twitter Bot を「自分のパソコンで実行する」</h4>
<p>まず Twitter Bot を「自分のパソコンで実行する」方法についてですが、メリット・デメリットそれぞれこんなのがあります。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check blue">
<ul>
<li><span style="color: #3366ff;"><strong>メリット</strong></span>・・・お金が全くかからない（パソコンの電気代くらい）</li>
<li><span style="color: #ff0000;"><strong>デメリット</strong></span>・・・ずっとパソコンを立ち上げないといけない</li>
</ul>
</div>
<p>&nbsp;</p>
<p>わたしは最初この方法で実装していましたが、<strong><span style="color: #ff0000;">自分のパソコンを24時間365日ずっと稼働させることが不可能</span></strong>ということに気づいてやめました。</p>
<p>&nbsp;</p>
<p>もちろん、お金をかけたくない人はこれでいいと思います。</p>
<p>しかし「自分のパソコンで実行する」方法では Twitter Bot プログラムを動作させることによってパソコンが重くなったり</p>
<p>パソコンを再起動させるたびにプログラムを実行しなおさないといけないというものすごくめんどくさいことが多々あります。</p>
<p>&nbsp;</p>
<p>私はそんなめんどくさいならば<span style="color: #000000;"><strong>お金をだしてでもサーバを借りて Bot を動かそう</strong></span>と思いました。</p>
<p>&nbsp;</p>
<h4>Twitter Bot を「レンタルした VPS サーバーで実行する」（一番おススメ！）</h4>
<p>まず Twitter Bot を「レンタルしたVPSサーバーで実行する」方法についてですが、メリット・デメリットそれぞれこんなのがあります。</p>
<div class="sc_designlist li fa_check blue">
<p>&nbsp;</p>
<ul>
<li><span style="color: #3366ff;"><strong>メリット</strong></span>・・・Twitter Bot が安定して稼働できる</li>
<li><span style="color: #ff0000;"><strong>デメリット</strong></span>・・・お金がかかる(月500円から多くて1000円) + ある程度知識が必要</li>
</ul>
</div>
<p>&nbsp;</p>
<p>結局一番これが良かったです。</p>
<p>自分のパソコンが処理で重くならないし、なにより <strong>Twitter Bot が安定して稼働する</strong>というのが本当によかったです。</p>
<p>ただお金が必要とありますが、安い VPS サーバーなら 500 円 ~ 600 円くらいです。</p>
<p>わたしのオススメは<a href="https://vps.sakura.ad.jp/">さくら VPS サーバ</a>です。これの一番安いやつで OK です。</p>
<p>&nbsp;</p>
<h3>Twitter Bot を「どうやって」実行すればいいのか？</h3>
<p>つぎにTwitter Bot を「どうやって」実行し続けるか？</p>
<p>これは Windows、Mac、Linux といった OS ごとにやり方が異なります。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check blue">
<ul>
<li><span style="color: #000000;">Windows</span>・・・Bot をタスクスケジューラで実行</li>
<li>Mac、Linux・・・　Bot を cron で実行</li>
</ul>
</div>
<p>&nbsp;</p>
<h4>Bot をタスクスケジューラで実行する（Windowsの場合）</h4>
<p>これは Windows のタスクスケジューラという機能をつかって実行します。</p>
<p>&nbsp;</p>
<p>※ タスクスケジューラとは文字通りタスクをスケジュールするツールですが、決まった時間に定期的にプログラム処理できる Windows の機能です。</p>
<p>その処理はタスクとして登録され、指定時刻にそのタスクが動作するイメージです。</p>
<p>つまり<span style="color: #3366ff;"><strong>そのタスクを Twitter Bot 用のプログラムにすれば定期的に実行できます</strong></span>。</p>
<p>&nbsp;</p>
<p>タスクスケジューラの登録方法についてですが、</p>
<p>まず Windows のスタートメニューで「タスクスケジューラ」と検索します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler.png" alt="" width="562" height="452" class="aligncenter wp-image-5992" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler.png 775w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler-300x241.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler-768x617.png 768w" sizes="auto, (max-width: 562px) 100vw, 562px" /></p>
<p>&nbsp;</p>
<p>下記のような画面が表示されるので、右欄の「基本タスクの作成」を選択して実行するプログラムを選択します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2.png" alt="" width="817" height="438" class="aligncenter wp-image-5993" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2.png 1313w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-300x161.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-1024x548.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-768x411.png 768w" sizes="auto, (max-width: 817px) 100vw, 817px" /></p>
<p>&nbsp;</p>
<p>基本タスクの作成画面で、まずはタスク名を指定します（なんでもＯＫ。）</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3.png" alt="" width="550" height="392" class="aligncenter wp-image-5994" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3.png 694w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3-300x214.png 300w" sizes="auto, (max-width: 550px) 100vw, 550px" /></p>
<p>&nbsp;</p>
<p>次に好きなタスクトリガーを指定します。</p>
<p>これで好きなタイミングでタスクを実行できます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4.png" alt="" width="553" height="391" class="aligncenter wp-image-5995" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4.png 692w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4-300x212.png 300w" sizes="auto, (max-width: 553px) 100vw, 553px" /></p>
<p>&nbsp;</p>
<p>つぎにプログラムの開始を選択します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5.png" alt="" width="527" height="372" class="aligncenter wp-image-5996" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5.png 692w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5-300x212.png 300w" sizes="auto, (max-width: 527px) 100vw, 527px" /></p>
<p>&nbsp;</p>
<p>ここで実行するプログラムをさきほど作成したPython 処理を実行する Bat を指定します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6.png" alt="" width="535" height="377" class="aligncenter wp-image-5997" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6.png 695w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6-300x212.png 300w" sizes="auto, (max-width: 535px) 100vw, 535px" /></p>
<p>&nbsp;</p>
<p>「<span style="color: #ff0000;"><strong>Twitter Bot は Python でつくったのに実行するのは Bat なの？？？</strong></span>」って思われるかもしれませんが、</p>
<p>タスクスケジューラーで実行するには Python の処理を Bat ファイル上で呼び出すしかありません。</p>
<p>※ 下記がバッチファイルの中身です。</p>
<p>こんな感じで python 「実行する Pythonファイル」でバッチファイル内で Python 処理を呼べます。</p><pre class="crayon-plain-tag">python twitterBot.py</pre><p>
&nbsp;</p>
<p>最後に完了ボタンを押して終了です。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7.png" alt="" width="562" height="397" class="aligncenter wp-image-5998" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7.png 694w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7-300x212.png 300w" sizes="auto, (max-width: 562px) 100vw, 562px" /></p>
<p>&nbsp;</p>
<p>すると下記のように タスクが登録されていることが確認できます。</p>
<p>このタスクによって定期的に Twitter Bot 処理を実行できるようになります。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8.png" alt="" width="806" height="327" class="aligncenter wp-image-5999" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8.png 1180w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-300x122.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-1024x415.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-768x311.png 768w" sizes="auto, (max-width: 806px) 100vw, 806px" /></p>
<p>&nbsp;</p>
<h4>Bot をタスクスケジューラーで実行する（Mac、Linuxの場合）</h4>
<p>Mac、Linux で実行する場合は cron という機能を使って実行します。</p>
<p>ターミナルを開き、下記コマンドを実行します。</p><pre class="crayon-plain-tag">crontab -e</pre><p>
crontab -e で下記を書き込みます。</p><pre class="crayon-plain-tag">(分)(時)(日)(月)(曜日) 「実行するコマンドのパス]</pre><p>
&nbsp;</p>
<p><span>(分)(時)(日)(月)(曜日) はコマンドを実行する時刻を指定し、「実行するコマンドのパス」で Twitter Bot のコマンドを指定します。</span></p>
<p>例えば、</p>
<p><span>0 7 * * * python /Users/Test/twitterBot.py</span></p>
<p>とすると毎日 7:00 に <span>python /Users/Test/twitterBot.py を実行するっていうことです。</span></p>
<p>&nbsp;</p>
<p>そして「:wq」をキーボード入力して Enter で crontab -e が終了します。</p>
<p>これで定期的に実行できます（不安な人は crontab -l でコマンドが登録されていることを確認してみてください）。</p>
<p>&nbsp;</p>
<h2>Twitter Bot 自動でできました！！最後まで読んでくれてありがとうございます！！</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、 <strong>Python  というプログラミング言語で ３か月500フォローまで育った Twitter Bot の作り方</strong>をご紹介しました。</p>
<p>&nbsp;</p>
<p>多分かなりめんどくさいと思われた人も多いと思います。</p>
<p>この記事を書いている私も一日で書ききれないくらいの量でした。</p>
<p>&nbsp;</p>
<p>この記事を読んでぜひいろいろな Twitter Bot を作ってみてください！</p>
<p>この記事がいいと思われたならぜひ SNS とかで共有いただければ嬉しいです。</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Google 検索数から世の中の「いろいろ」を順位付けするランキングサイトをつくったよ！</title>
		<link>https://lemon818.com/python-rannking-site/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 14 Jun 2021 15:55:05 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[おすすめサイト]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Trend]]></category>
		<category><![CDATA[ランキング]]></category>
		<category><![CDATA[格付け]]></category>
		<category><![CDATA[検索数]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5868</guid>

					<description><![CDATA[いろんなランキングサイトをつくってみたい！ &#160; ある日ふとそんなことを思った私は「どうやったら世界一のランキングサイトが作れるのか？」考えました。 &#160; 「Googleの検索数が多い順でランキング付けし…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div></div>
<div class="sc_frame "><strong><span style="color: #000000;">いろんなランキングサイトをつくってみたい！</span></strong></div>
</div>
<p>&nbsp;</p>
<p>ある日ふとそんなことを思った私は「<strong><span style="color: #ff0000;">どうやったら世界一のランキングサイトが作れるのか？</span></strong>」考えました。</p>
<p>&nbsp;</p>
<p>「<span style="font-size: 24px;"><strong>Googleの検索数が</strong></span><span style="font-size: 24px;"><strong>多い順でランキング付けしたら、世界一のランキングサイトになるんじゃね？？</strong></span>」</p>
<p>&nbsp;</p>
<p>つまりこんなイメージです。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/trand-program1.png" alt="" width="422" height="213" class="aligncenter size-full wp-image-5882" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/trand-program1.png 422w, https://lemon818.com/wp/wp-content/uploads/2021/06/trand-program1-300x151.png 300w" sizes="auto, (max-width: 422px) 100vw, 422px" /></p>
<p>&nbsp;</p>
<p>そんな思いついた勢いに任せてつくったのが、<span style="font-size: 24px;">「スーパー開発ブログ」の<strong><a href="https://superaikun.com/category/ranking/">ランキングのページ</a></strong></span>です。</p>
<p>&nbsp;</p>
<p>※「スーパー開発ブログ」 は私がIT系ブログを運営していく中で「 WordPress だけではITのなんたるかを表現するには限界がある」と勝手におもって</p>
<p>Python っていうプログラミング言語で一からつくった<strong>プログラミングでやりたい放題できる趣味ブログ</strong>です。</p>
<p>&nbsp;</p>
<p>この「スーパー開発ブログ」 で<span style="color: #ff0000;"><strong>いろんなジャンル</strong></span>のことがらを<span style="color: #3366ff;"><strong>ランキング付けしてみました！！！！！</strong></span></p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block red">
<div class="sc_frame_title">Google 検索数でランキング付けしたもの！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid red">
<ol>
<li><span>今注目のプログラミング言語は？</span></li>
<li><span>今人気の仮想通貨は？Google 検索数で格付け・ランキング！</span></li>
<li><span>吉野家 vs 松屋 vsすき家！人気の牛丼屋はどれだ！</span></li>
<li><span>Windows vs Mac（人気のOSはどっちだ）</span></li>
<li><span>Docomo vs au vs Softbank （三大携帯キャリア、どれが人気か？）</span></li>
<li>矛 vs 盾（世の中の矛盾の答えがここに）</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>このページではそれらのランキング結果についてまとめ、考察もつけてみました！</p>
<p>またこの「スーパー開発ブログ」のランキングは毎日自動更新するようにプログラミング処理しているので、<span style="color: #3366ff;"><strong>最新の情報が常に確認できます。</strong></span></p>
<p>よければぜひ見てってください。</p>
<p>&nbsp;</p>
<p><strong>※ </strong>ここでの「<strong>ランキング付け</strong>」とは<strong>あるキーワードに対して Google の検索数が確認しをそれを多い順に並び替えることを意味します。</strong></p>
<p>（実際の人気とは異なりますので、それだけはご了承ください。）</p>
<p><strong>※ この記事は2021/6/17時点のデータです。</strong></p>
<p>&nbsp;</p>
<h2>プログラミング言語で格付け！今旬のプログラミング言語は？</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m.jpg" alt="" width="660" height="440" class="aligncenter wp-image-5891" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m.jpg 1920w, https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m-300x200.jpg 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m-1024x684.jpg 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m-768x513.jpg 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/4868287_m-1536x1026.jpg 1536w" sizes="auto, (max-width: 660px) 100vw, 660px" /></p>
<p>&nbsp;</p>
<p>Google 検索数で<span style="color: #ff0000;"><strong>今人気のプログラミング言語が何か</strong></span>を確認してみました！</p>
<p>詳細はこちら → <a href="https://superaikun.com/program-ranking"><span>今注目のプログラミング言語は？Google 検索数で格付け（ランキング化）！</span></a></p>
<p>&nbsp;</p>
<table style="height: 196px; width: 28.9129%; border-collapse: collapse; border-color: #99a0ff;">
<tbody>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; border-color: #1d267d; background-color: #3644c2;"><strong><span style="color: #ffffff;">ランキング</span></strong></td>
<td style="width: 14.842%; height: 49px; border-color: #1d267d; background-color: #3644c2;"><strong><span style="color: #ffffff;">内容(2021/6/16時点)</span></strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>１位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>Python</strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>２位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>C++</strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>３位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>C言語</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>この結果は毎日変動するため、上記表は一時的（6/20時点）の結果ですが、</p>
<p>それでも長期間を通して<strong>「Python」「C++」「C言語」といったサーバサイド系のプログラミング言語が人気</strong>でした！</p>
<p>「Python」は昨今はやりの AI 、機械学習やビックデータといった最新技術の開発も比較的簡単に行える言語であるので</p>
<p>今回のランキング結果は想定通りのものではないかなーとも思います。</p>
<p>&nbsp;</p>
<h2>今人気の仮想通貨は？Google 検索数で格付け・ランキング！</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/1826469_s.jpg" alt="" width="640" height="414" class="aligncenter size-full wp-image-5890" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/1826469_s.jpg 640w, https://lemon818.com/wp/wp-content/uploads/2021/06/1826469_s-300x194.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&nbsp;</p>
<p>Google 検索数で<span style="color: #ff0000;"><strong>今人気の仮想通貨が何か</strong></span>を確認してみました！</p>
<p>詳細はこちら →<a href="https://superaikun.com/ranking-cryptocurrency"><span> 今人気の仮想通貨は？Google 検索数で格付け・ランキング！</span></a></p>
<p>&nbsp;</p>
<p>こちらは検索結果数には日々かなり変動があり、</p>
<p><strong>どの仮想通貨が今注目されているものなのか？はっきりとは断言できない結果となりました</strong>。。</p>
<p>（つまり有名な仮想通貨が検索上位にいったり、あまり有名でない仮想通貨が上位に行ったり、、などです）</p>
<p>&nbsp;</p>
<h2>吉野家 vs 松屋 vsすき家！人気の牛丼屋はどれだ！</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/4980782_s.jpg" alt="" width="640" height="474" class="aligncenter size-full wp-image-5887" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/4980782_s.jpg 640w, https://lemon818.com/wp/wp-content/uploads/2021/06/4980782_s-300x222.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&nbsp;</p>
<p>Google 検索数で<span style="color: #ff0000;"><strong>牛丼御三家のどれが人気か？</strong></span>を確認してみました！</p>
<p>詳細はこちら →<a href="https://superaikun.com/ranking-gyudon"><span> 【御三家】吉野家 vs 松屋 vsすき家！人気の最強牛丼屋はどれだ！</span></a></p>
<p>&nbsp;</p>
<p>こちらは検索結果数には日々かなり変動があり、</p>
<p>牛丼屋で一番人気のものがどれか？そこまでは絞ることができなかったです。</p>
<p>つまり、どの牛丼屋も同じように Google 検索されているということがわかります。</p>
<p>&nbsp;</p>
<h2>Windows vs Mac（人気のOSはどっちだ）</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/5012537_s.jpg" alt="" width="640" height="480" class="aligncenter size-full wp-image-5888" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/5012537_s.jpg 640w, https://lemon818.com/wp/wp-content/uploads/2021/06/5012537_s-300x225.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>Windows vs Mac！今 Google 検索数で人気の OS はどっちだ！？ </strong></span>検証してみました！</p>
<p>ページ：<a href="https://superaikun.com/windows-vs-mac"><span>Windows vs Mac！Google 検索で人気なのはどっちか比較してみた！</span></a></p>
<p>&nbsp;</p>
<p>結果としてどちらも同じくらいの Google 検索数でした。</p>
<p>一位が特定できず。。さすが世界一の企業！</p>
<p>&nbsp;</p>
<h2>Docomo vs au vs Softbank （三大携帯キャリア、どれが人気か？）</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/2257283_s.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-5892" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/2257283_s.jpg 640w, https://lemon818.com/wp/wp-content/uploads/2021/06/2257283_s-300x200.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>Google 検索数で三大携帯キャリア（D</strong></span><span><span style="color: #ff0000;"><strong>ocomo vs au vs Softbank）のどれが人気か？</strong></span>検証</span>してみました！</p>
<p>ページ：<a href="https://superaikun.com/program-ranking"><span>Docomo vs au vs Softbank ! Google検索で人気は？</span></a></p>
<p>&nbsp;</p>
<table style="height: 196px; width: 28.9129%; border-collapse: collapse; border-color: #99a0ff;">
<tbody>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; border-color: #1d267d; background-color: #3644c2;"><strong><span style="color: #ffffff;">ランキング</span></strong></td>
<td style="width: 14.842%; height: 49px; border-color: #1d267d; background-color: #3644c2;"><strong><span style="color: #ffffff;">内容</span></strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>１位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>au</strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>２位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>docomo</strong></td>
</tr>
<tr style="height: 49px;">
<td style="width: 14.0709%; height: 49px; background-color: #feffdb;"><strong>３位</strong></td>
<td style="width: 14.842%; height: 49px;"><strong>softbank</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>これは結構明白にわかれました。</p>
<p>2021年/6月時点の Google 検索数結果なのですが、よもやここまではっきりと分かれるとは。。。</p>
<p>また時期や各キャリアでのサービスが変われば検索数も変わると思いますが、、、</p>
<p>&nbsp;</p>
<h2>矛 vs 盾（世の中の「矛盾」の答えがここに）</h2>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/4698512_s.jpg" alt="" width="640" height="427" class="aligncenter size-full wp-image-5893" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/4698512_s.jpg 640w, https://lemon818.com/wp/wp-content/uploads/2021/06/4698512_s-300x200.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&nbsp;</p>
<p><strong><span style="color: #ff0000;">Google 検索数で矛 vs 盾どっちが人気か</span></strong>検証してみました！</p>
<p>ページ：<a href="https://superaikun.com/sord-vs-shild"><span>矛vs盾 ! 結局最強なのはどっち？Google 検索数で比較したら衝撃の結果に！</span></a></p>
<p>&nbsp;</p>
<p>これは結構明白にわかれました。</p>
<p>たぶん結果おもしろいのでぜひ見に行ってみてください。</p>
<p>理由もなんとなくわかりましたので、考察しています。</p>
<p>&nbsp;</p>
<h2>俺たちの格付けは終わらねえ！</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、「スーパー開発ブログ」 というこのブログの兄弟サイトで</p>
<p><span style="color: #ff0000;"><strong>いろんなジャンル</strong></span>のことがらを<span style="color: #3366ff;"><strong>ランキング付けしてみました！！！！！結果をまとめました。</strong></span></p>
<p>&nbsp;</p>
<p>ランキングサイトって普通に面白いですね。</p>
<p>この記事もおもしろいランキングができたらどんどん更新していきます。</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】CentOS で画像から文字起こしをするサイトをつくったよ！</title>
		<link>https://lemon818.com/gazo-moziokoshi/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Tue, 18 May 2021 15:10:10 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[自作ゲーム]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[pytesseract]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tesseract-ocr]]></category>
		<category><![CDATA[文字起こし]]></category>
		<category><![CDATA[画像]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5483</guid>

					<description><![CDATA[Pythonで画像から文字起こしをするサイトをつくりました！！！ &#160; &#160; どーもTakeです。 このたび兄弟ブログである「スーパー開発ブログ」で Pythonで画像から文字起こしをするサイトをつくりま…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><span style="color: #000000;">Pythonで画像から文字起こしをするサイトをつくりました！！！</span></strong></div>
</div>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/05/gazouai.gif" alt="" width="664" height="546" class="aligncenter size-full wp-image-5484" /></p>
<p>&nbsp;</p>
<p>どーもTakeです。</p>
<p>このたび兄弟ブログである「<a href="https://superaikun.com/">スーパー開発ブログ</a>」で <strong><span style="color: #000000;">Pythonで画像から文字起こしをするサイトをつくりました！！！</span></strong></p>
<p>記事は<a href="https://superaikun.com/gazoMoziokoshi">こちら</a>です。</p>
<p>&nbsp;</p>
<p>このページを作るのがかなり大変でした。。。。</p>
<p>CentOs7というサーバ上で「tesseract-ocr」と「pytesseract」というパッケージを使ってやったんですが、うまくいかないことばかり、、、</p>
<p>なので、構築手順を簡単にページにまとめました！</p>
<p>よければこのページを参考に作ってみてください！</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">この記事でわかること！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>画像から文字起こしするための環境構築する方法</li>
<li>実際にテスト用の Python スクリプトをつくって動作させるまで</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h2>画像から文字起こしするための環境構築</h2>
<p>&nbsp;</p>
<p>画像から文字起こしするための環境構築の方法について記述します。</p>
<p>この通りやればいけますが、下記を実行して<strong>エラーが出たら大抵うまくいきませんので、全部うまくいったことを確認してください。</strong></p>
<p>&nbsp;</p>
<h3>「tesseract-ocr」と「pytesseract」をインストールする</h3>
<p>&nbsp;</p>
<p>下記コマンドを実行してパッケージを入れます。</p><pre class="crayon-plain-tag"># yum install gcc gcc-c++ make
# yum install autoconf automake libtool
# yum install libjpeg-devel libpng-devel libtiff-devel zlib-devel</pre><p>
&nbsp;</p>
<p>つぎに「tesseract-ocr」を実行するために必要な「leptonica」を入れます。</p><pre class="crayon-plain-tag"># wget http://www.leptonica.org/source/leptonica-1.76.0.tar.gz
# tar -zxvf leptonica-1.76.0.tar.gz
# ./configure
# make
# make install</pre><p>
&nbsp;</p>
<p>つぎに vim コマンドで「/etc/profile」に下記内容を追記します。</p><pre class="crayon-plain-tag">export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/lib 
export LIBLEPT_HEADERSDIR=/usr/local/include 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
carried out source /etc/profileMake it effective</pre><p>
&nbsp;</p>
<p>そんで「tesseract-ocr」を入れます。</p>
<p>git コマンドが入っていない場合「yum install git」で入れます。</p><pre class="crayon-plain-tag"># git clone -b master https://github.com/tesseract-ocr/tesseract.git tesseract-ocr
# ./autogen.sh
# ./configure 
# make 
# make install
# ldconfig</pre><p>
&nbsp;</p>
<h3>「tessdata」で言語パッケージをとってくる</h3>
<p>&nbsp;</p>
<p>「tessdata」っていう言語パッケージを取ってきます。</p>
<p>下記コマンドを実行します。</p><pre class="crayon-plain-tag">git clone https://github.com/tesseract-ocr/tessdata.git
mv tessdata /usr/local/share/tessdata</pre><p>
&nbsp;</p>
<p>あとは実際に動くか試してみます。</p><pre class="crayon-plain-tag">$ tesseract ims.png out -| jen</pre><p>
&nbsp;</p>
<p>上記は「img.png」って画像を読み込ませて「out」（テキストとして出力）されます。</p>
<p>日本語を文字起こししたい場合は jpn で言語指定します。</p>
<p>実行後に「Error」となく実行できればOK、out.txtの中身を確認して正常に動いていれば問題なしです。</p>
<p>&nbsp;</p>
<h4>ポイント！</h4>
<p>&nbsp;</p>
<p>「mv tessdata /usr/local/share/tessdata」を<span style="color: #ff0000;"><strong>絶対に忘れないこと</strong></span>！！！</p>
<p>しかも「cp」コマンド（コピー）ではなく「mv」コマンド（移動）であること！です！</p>
<p>なんでかわからないですが、「cp」コマンドだと旨く読み込まれなかったです。</p>
<p>&nbsp;</p>
<p>わたしはそもそも「mv」コマンドを忘れて実行してしまい下のようなエラーがでて私は詰みました笑</p><pre class="crayon-plain-tag"># 実行しようとしたときの出来事
$ tesseract ims.png out -| jen
Error in pixReaddenTiff: function not present
Error in pixReadMem: tiff: no pix returned
Error in pixaGenerateFontFromStrina: pix not made
Error in bnfCreate: font pixa not made Tesseract Open Source OCR Engine v5.0.0-alpha-20210401-118-g1c77 with Leptonica
Error in pixReadStreamPng: function not present
Error in pixReadStrean: png: no pix returned
Error in pixRead: pix not read Error during processing</pre><p>
&nbsp;</p>
<h3>「pytesseract 」をインストールする</h3>
<p>&nbsp;</p>
<p>ここまでくればあとは「pip install pytesseract 」を実行します。</p>
<p>ここまでエラーなしでいけていればOKです。</p>
<p>&nbsp;</p>
<p>参考サイト：</p>
<ul>
<li><a href="https://www.programmersought.com/article/70164685281/">https://www.programmersought.com/article/70164685281/</a></li>
<li><a href="https://github.com/tex2e/ocr-jpn">https://github.com/tex2e/ocr-jpn</a></li>
</ul>
<p>&nbsp;</p>
<h2>実際にPythonコードを書いてみる</h2>
<p>&nbsp;</p>
<p>実際に「tesseract」を python上で動作させます。</p>
<p>下記内容を pythonファイルとして保存（今回は test.py）とします。</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">from pytesseract import pytesseract
from PIL import Image

# 読み込み対象ファイルの指定
img = Image.open("./img.png", "r")

# tesseractコマンドのインストールパス
pytesseract.tesseract_cmd = "/usr/local/bin/tesseract"

# 文字列として出力できる。
result = pytesseract.image_to_string(img, lang="eng+jpn")

print(result)</pre><p>
&nbsp;</p>
<p>そして「python test.py 」と実行すればコマンドライン上に画像に含まれるメッセージが出力されます。</p>
<p>&nbsp;</p>
<p>処理の中身は超簡単です。</p>
<p>まず img.png っていう画像ファイルを読み込んで「/usr/local/tesseract」を呼び出して実行して変数に格納し、</p>
<p>その変数を出力するだけのスクリプトです。</p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>&nbsp;</p>
<p>いかがでしたでしょうか？</p>
<p><span style="color: #000000;">Pythonで画像から文字起こしをする方法を解説しました。</span></p>
<p>&nbsp;</p>
<p>わたしの兄弟ブログである「<a href="https://superaikun.com/">スーパー開発ブログ</a>」の<a href="https://superaikun.com/gazoMoziokoshi">こちら</a>の記事に実際に動作するものが乗っています。</p>
<p>ただ英語は精度がかなりいいんですが、日本語が精度が悪いです。。。</p>
<p>ですが、結構面白いサイトなのでぜひチェックして見てください！</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【自作ブログ】WordPress 無し、PythonのDjangoでブログをつくりました！</title>
		<link>https://lemon818.com/superaikun/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 10 May 2021 15:00:15 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[業務で役立つExcelマクロ]]></category>
		<category><![CDATA[自作ゲーム]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[スーパー開発ブログ]]></category>
		<category><![CDATA[自作ブログ]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5401</guid>

					<description><![CDATA[&#160; どーも Takeです。久々の投稿です。 いつもたくさんのお問い合わせありがとうございます。そしてなかなか仕事が忙しくて返信できずすみません。。。 &#160; この度、新しいブログ「スーパー開発ブログ」を作…]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p>どーも Takeです。久々の投稿です。</p>
<p>いつもたくさんのお問い合わせありがとうございます。そしてなかなか仕事が忙しくて返信できずすみません。。。</p>
<p>&nbsp;</p>
<p>この度、新しいブログ「<a href="https://superaikun.com/">スーパー開発ブログ</a>」を作成しました！</p>
<p>このブログ、なんとWordpressなしでPython の Django というWebフレームワークのみで作成しました！</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/05/superai1.png" alt="" width="1014" height="496" class="aligncenter wp-image-5402" srcset="https://lemon818.com/wp/wp-content/uploads/2021/05/superai1.png 1206w, https://lemon818.com/wp/wp-content/uploads/2021/05/superai1-300x147.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/05/superai1-1024x501.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/05/superai1-768x376.png 768w" sizes="auto, (max-width: 1014px) 100vw, 1014px" /></p>
<p>&nbsp;</p>
<h2>なぜWordpressなしでブログをつくったのか？</h2>
<p>&nbsp;</p>
<p>それは<span style="color: #ff0000;"><strong>「WordPress」だとどうしてもできないことが多かったから</strong></span>です。</p>
<p>&nbsp;</p>
<p>WordPressって本当に凄いソフトだと思います。</p>
<p>自動でマークアップもされプラグインもテーマも豊富で世界一のCMSだとも思っています。</p>
<p>&nbsp;</p>
<p>しかしIT系のブログを書いていると、文字だけではなく<span style="color: #0000ff;"><strong>実際にプログラミングが動く記事に乗せたいな</strong></span>と思っていました。</p>
<p>そう思って、目につけたのが私が一番好きな言語である Python であり、Python で一からつくってみよう！と思ったのがすべての始まりです。</p>
<p>&nbsp;</p>
<h2>Python の Django でブログ作ったら実際どんな感じなん？</h2>
<p>&nbsp;</p>
<p>苦労話とよかったところをいいます。</p>
<p>&nbsp;</p>
<h3>まず苦労話</h3>
<p>&nbsp;</p>
<p><strong><span style="font-size: 24px; color: #ff0000;">ブログを一からつくるのはめちゃくちゃ時間かかり、死ぬほど大変です。</span></strong></p>
<p>&nbsp;</p>
<p>なんやかんや仕事しながらやっていたら一か月くらいかかりました。</p>
<p>ともかく壁が多すぎる。。。。</p>
<p>&nbsp;</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>サーバの選定（さくらVPSを選択しました）</li>
<li>サーバの環境構築（ホスト名、FW設定、Apache設定、SSL設定（https化）、その他ssh接続等）</li>
<li>Python の Django フレームワークの開発（静的ページ、動的ページの設定、SNSタグ設定）</li>
<li>ページデザイン（これが死ぬほど大変、スマホでも崩れないように調整作業）</li>
</ol>
</div>
<p>&nbsp;</p>
<h4>サーバの選定</h4>
<p>&nbsp;</p>
<p>もともとブログ作成にはレンタルサーバーとして Xserver をつかっていたのですが、</p>
<p>今回は思い切って「さくらVPS」をつかってみました。</p>
<p>これは本当に使ってよかったと思いました。</p>
<p>しかし Linux サーバ系の知識がない人には結構ハードルが高いです。</p>
<p>さくらVPSのページがすごくわかりやすく書いていますが、それでもかなり苦労すると思います。</p>
<p>&nbsp;</p>
<h4>サーバの環境構築（ホスト名、FW設定、Apache設定、SSL設定（https化）、その他ssh接続等）</h4>
<p>&nbsp;</p>
<p><span style="font-size: 24px; color: #ff0000;">これが一番大変でした。</span></p>
<p>&nbsp;</p>
<p>ページがつながらない。。https化できない。。</p>
<p>Twtter でシェアできない。。とかとか</p>
<p>なんとか Google 先生の力を借りてやってようやく動くようになりましたが、、自力は無理です。</p>
<p>&nbsp;</p>
<h4>Python の Django フレームワークの開発（静的ページ、動的ページの設定、SNSタグ設定）</h4>
<p>&nbsp;</p>
<p>これは思いのほか簡単でした。</p>
<p>だいたいわからないことは調べたらでてきます、しかし量がおおい。。。。</p>
<p>Djangoの仕組みをしっかりと理解する必要があります。</p>
<p>&nbsp;</p>
<p>また静的ページ（htmlにべた書きするページ）だけなら正直1日で誰でもできます。</p>
<p>しかし動的ページ（データベースに記事を登録して運用するページ）を取り入れるとその分の設定が必要になり、結構大変でした。</p>
<p>しかも<strong><span style="color: #0000ff;">動的ページにPythonからの処理を受け取ってhtml画面に表示させるように実装もした</span></strong>ので、その設定をするのもめちゃくちゃ大変。。。。</p>
<p>&nbsp;</p>
<h4>ページデザイン（これが死ぬほど大変、スマホでも崩れないように調整作業）</h4>
<p>&nbsp;</p>
<p><span style="font-size: 20px; color: #ff0000;">これが二番目に大変でした。</span></p>
<p>&nbsp;</p>
<p>レスポンシブ対応（スマホ対応）の画面にするとどうしてもレイアウト崩れが発生しまくって修正に時間がかなりかかります。</p>
<p>ページデザインは Bootstrap でほぼカバーしましたが、</p>
<p>それでも実現できない箇所は CSS、JQuery でカバーしました。</p>
<p>&nbsp;</p>
<p>たぶんまだバグがありそう。。。見つけ次第直します。</p>
<p>&nbsp;</p>
<h3>つくってよかった点</h3>
<p>&nbsp;</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>プログラミング処理が画面表示できるようになった！</li>
<li>かなり実力がついた！！！</li>
</ol>
</div>
<p>&nbsp;</p>
<p><span style="color: #0000ff;">プログラミング処理が画面表示できるようになった点</span>が本当に嬉しいです。</p>
<p>クライアントサイドの言語（Javascript、JQuery等）ならば WordPressでも正直できますが、</p>
<p>Pythonの処理も画面で表示させれるようになりました！！！</p>
<p>具体的にはこの「<a href="https://superaikun.com/senga"><span>【無料・ダウンロードOK】写真から塗り絵（線画）をつくろう！</span></a>」です。</p>
<p>これはPythonで加工した画像を画面表示しています。本当に作ってよかった！</p>
<p>&nbsp;</p>
<p>あとめちゃくちゃ実力つきました！</p>
<p>Linuxの環境設定、Apache、証明書、ssl化、Python、html系フロントの知識。。。。</p>
<p>参考書なんか読むよりもはるかに実力がつきました！！！</p>
<p>出来た感想はやってよかった！！！！</p>
<p>&nbsp;</p>
<p>あとはコロナで外出もできなかったのでちょうど暇つぶしできてよかったと思います。</p>
<p>&nbsp;</p>
<h2>そこからようやくブログ完成！！！スタートライン！！</h2>
<p>&nbsp;</p>
<p>ようやく完成しました。</p>
<p>これからこのブログと新しいブログ「<a href="https://superaikun.com/">スーパー開発ブログ</a>」ふたつでいろいろと記事を作っていきたいと思います！！！</p>
<p>&nbsp;</p>
<p>つくっていて、「これパッケージにしたら絶対売れるだろうなあ」とか思いました。</p>
<p>本当に WordPress って便利。。。</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】print を改行なしで表示するには「end =&quot;&quot;」を設定しよう！</title>
		<link>https://lemon818.com/python-print/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 03 Aug 2020 08:41:37 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[end]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[オプション引数]]></category>
		<category><![CDATA[改行なし]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5295</guid>

					<description><![CDATA[Python の print を改行なしで表示させたい！ &#160; どーもTakeです。 そんな思いから Python の「print」を改行なしで表示させる方法について簡単に解説します。 &#160; とはいっても…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><span style="color: #000000;"><b>Python の print を改行なしで表示させたい！</b></span></div>
</div>
<p>&nbsp;</p>
<p>どーもTakeです。</p>
<p>そんな思いから Python の<strong>「print」を改行なしで表示させる方法</strong>について簡単に解説します。</p>
<p>&nbsp;</p>
<p>とはいっても<strong>タイトルで答えを言ってる</strong>んですが、</p>
<p><span style="color: #0000ff;"><strong>「print」の end というオプション引数を使えば、</strong></span>改行なしで表示させることが可能です。</p>
<p>&nbsp;</p>
<p>この記事では、print のオプション引数 end について説明します！</p>
<p>&nbsp;</p>
<h2>Python の「print」を<strong>改行なしで表示させる方法</strong></h2>
<p>「print」を改行なしで表示させるには、<span style="color: #0000ff;"><strong>「print」のオプション引数 end='' と指定すれば可能です。</strong></span></p>
<p>&nbsp;</p>
<p>まずは print「<strong>改行あり</strong>」からソースコードで示します。</p><pre class="crayon-plain-tag">print('test1')
print('test2')

## 実行結果
test1
test2</pre><p>
&nbsp;</p>
<p>上記は print の普通の使い方だと思います。</p>
<p>続いて「<strong>改行なし</strong>」のソースコードを表示させる方法です。</p><pre class="crayon-plain-tag">print('test1',end='')
print('test2',end='')

## 実行結果
test1test2</pre><p>
&nbsp;</p>
<p>上記のように print のオプション引数として「end = ''」と指定すれば<strong>改行なしで表示させること</strong>が可能です。</p>
<p>&nbsp;</p>
<p>オプション引数 end は print で表示させる値の<strong>末尾の値を指定</strong>することができます。</p>
<p>たとえば「\n」や「\r\n」のような<strong>改行コードを指定することも可能</strong>ですし、「123」のように<strong>好きな値を末尾に指定することも可能</strong>です。</p><pre class="crayon-plain-tag">print('test1',end='\r\n')
print('test1',end='\n')
print('test3',end='123')
print('test4')
## 実行結果
test1
test2
test3123test4</pre><p>
&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Python の「print」メソッドを改行なしで表示させる方法について解説しました。</p>
<p>&nbsp;</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】関数の 戻り値（return）を複数の値で返す方法</title>
		<link>https://lemon818.com/python-return/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Sun, 02 Aug 2020 01:16:56 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[return]]></category>
		<category><![CDATA[戻り値]]></category>
		<category><![CDATA[複数]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5286</guid>

					<description><![CDATA[return（戻り値）を複数で返したい！ そんな悩みはありませんか？ どーもTakeです。 &#160; Python で開発していると、return（戻り値）を複数で返したい場合があると思います。 Python で複数…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><span style="color: #000000;">return（戻り値）を複数で返したい！</span></strong></div>
<div></div>
</div>
<p>そんな悩みはありませんか？</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>Python で開発していると、return（戻り値）を複数で返したい場合があると思います。</p>
<p>Python で複数の戻り値で返す方法は下記２通りです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">複数で返す方法</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>return（戻り値）をリストで返す ・・・ （例）return  list</li>
<li>return（戻り値）を複数の値を記述する ・・・ （例）return  num1,num2</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>この記事では、上記２つの Python のreturn（戻り値）を複数で返す方法について簡単に解説します。</p>
<p>&nbsp;</p>
<h2>return（戻り値）をリストで返す</h2>
<p>return（戻り値）をリストで返す方法についてです。</p>
<p>&nbsp;</p>
<p>下記のように関数（下記では test 関数）の一番下の処理に「return ＜List＞」とリストの返すように記述することで、</p>
<p>関数が処理された場合にリストが返ります（下記では、リスト ['123', 'あいうえお', 'hello'] を返します）。</p>
<p>これにより<span style="color: #0000ff;"><strong>戻り値を複数で返すことが可能</strong></span>になります。</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">def test():
    list = ['123','あいうえお','hello']
    return list

num = test()
print(num)

## 実行結果
['123', 'あいうえお', 'hello']</pre><p>
&nbsp;</p>
<p>ここではリスト型にしましたが、<strong><span style="color: #0000ff;">複数の値を格納できるデータ型（タプル、辞書、インスタンス）ならばなんでもOK</span></strong>です。</p>
<p>&nbsp;</p>
<h2>return（戻り値）を複数の値を記述する</h2>
<p>return（戻り値）を複数の値を記述する方法についてです。</p>
<p>&nbsp;</p>
<p>下記のように関数（下記では test 関数）の一番下の処理に</p>
<p>「return ＜値1＞＜値2＞ ..... 」という風に記述すれば、</p>
<p>関数が処理された場合に＜値1＞＜値2＞ が<strong>タプル</strong>で返ります（下記では、タプル (1,'hello')を返します）。</p>
<p>これもまた<span style="color: #0000ff;"><strong>戻り値を複数で返すことが可能</strong></span>になります。</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">def test():
    num1 = 1
    num2 = "hello"
    return num1,num2


list = test()
print(list)

## 実行結果
(1,'hello')</pre><p>
&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Python のreturn（戻り値）を複数で返す方法について解説しました。</p>
<p>&nbsp;</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】一行・複数行まとめてコメントアウトする方法</title>
		<link>https://lemon818.com/python-commentout/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Sat, 01 Aug 2020 22:45:50 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[まとめて]]></category>
		<category><![CDATA[コメントアウト]]></category>
		<category><![CDATA[一行]]></category>
		<category><![CDATA[複数行]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5264</guid>

					<description><![CDATA[コメントアウトしたい、できれば複数行まとめて！ そう思うことが Python 開発していればあると思います。 どーもTakeです。 &#160; この記事では、Python で複数行コメントアウトする方法について簡単に解…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><span style="color: #000000;"><strong>コメントアウトしたい、できれば複数行まとめて！</strong></span></div>
</div>
<p>そう思うことが Python 開発していればあると思います。</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>この記事では、Python で複数行コメントアウトする方法について簡単に解説します。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">この記事でわかること！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>1行コメントアウトする方法</li>
<li>複数行コメントアウトする方法</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h2>１行コメントアウトする方法</h2>
<p>一行コメントアウトする場合は、行頭に「#」をつければコメントアウト可能です。</p>
<p>複数行に行頭に「#」をつければまとめてコメントアウトすることも可能です。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/08/2f02d461f795c97d1ab2a6f3bdf1f3a2.png" alt="" width="455" height="113" class="aligncenter size-full wp-image-5268" srcset="https://lemon818.com/wp/wp-content/uploads/2020/08/2f02d461f795c97d1ab2a6f3bdf1f3a2.png 455w, https://lemon818.com/wp/wp-content/uploads/2020/08/2f02d461f795c97d1ab2a6f3bdf1f3a2-300x75.png 300w" sizes="auto, (max-width: 455px) 100vw, 455px" /></p>
<p>&nbsp;</p>
<p>また下記のようにインライン（行内に）コメントアウトすることも可能です。</p>
<p>この場合コメントアウトしたい箇所の冒頭に「#」をつければコメントアウトできます。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/08/94359894cc3d3dfef540020c692159a7.png" alt="" width="353" height="96" class="aligncenter size-full wp-image-5269" srcset="https://lemon818.com/wp/wp-content/uploads/2020/08/94359894cc3d3dfef540020c692159a7.png 353w, https://lemon818.com/wp/wp-content/uploads/2020/08/94359894cc3d3dfef540020c692159a7-300x82.png 300w" sizes="auto, (max-width: 353px) 100vw, 353px" /></p>
<p>&nbsp;</p>
<h2>複数行コメントアウトする方法</h2>
<p>上記のように「#」（シャープ）を複数行つければコメントアウトできますが、</p>
<p>コメントアウトする行数が増えると<strong>非常に面倒になります。</strong></p>
<p>&nbsp;</p>
<p>そこで Python では下記のように「"""」~「"""」で囲むことで複数行まとめてコメントアウトできます。 <img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/08/7d69879f61d245d23ad1a3317c1d822f.png" alt="" width="402" height="191" class="aligncenter size-full wp-image-5270" srcset="https://lemon818.com/wp/wp-content/uploads/2020/08/7d69879f61d245d23ad1a3317c1d822f.png 402w, https://lemon818.com/wp/wp-content/uploads/2020/08/7d69879f61d245d23ad1a3317c1d822f-300x143.png 300w" sizes="auto, (max-width: 402px) 100vw, 402px" /></p>
<p>&nbsp;</p>
<p>ちなみにこのやり方をインライン（行内）で実行すると<strong><span style="color: #ff0000;">文法エラーになる</span></strong>ので</p>
<p>ご注意ください。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/08/1a3ea8f9b01a75d7119376cb5b65bab8.png" alt="" width="514" height="211" class="aligncenter size-full wp-image-5271" srcset="https://lemon818.com/wp/wp-content/uploads/2020/08/1a3ea8f9b01a75d7119376cb5b65bab8.png 514w, https://lemon818.com/wp/wp-content/uploads/2020/08/1a3ea8f9b01a75d7119376cb5b65bab8-300x123.png 300w" sizes="auto, (max-width: 514px) 100vw, 514px" /></p>
<p>&nbsp;</p>
<h3>インデントには気をつける</h3>
<p>「"""」~「"""」で囲むコメントアウトを連続で記述する場合、</p>
<p><strong>インデントに気を付ける</strong>必要があります。</p>
<p>&nbsp;</p>
<p>下記のように1つ目のコメントアウト「コメントアウト１」と</p>
<p>2つ目のコメントアウト「コメントアウト2」のインデントが異なる場合、</p>
<p><span style="color: #ff0000;"><strong>エラーが表示されます</strong></span>ので、ご注意ください。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/08/9b88b35f1c5c382b832fc1ec41d0dd30.png" alt="" width="559" height="325" class="aligncenter size-full wp-image-5272" srcset="https://lemon818.com/wp/wp-content/uploads/2020/08/9b88b35f1c5c382b832fc1ec41d0dd30.png 559w, https://lemon818.com/wp/wp-content/uploads/2020/08/9b88b35f1c5c382b832fc1ec41d0dd30-300x174.png 300w" sizes="auto, (max-width: 559px) 100vw, 559px" /></p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Python で複数行コメントアウトする方法について解説しました。</p>
<p>&nbsp;</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】Excelファイルを新規作成・読み込み・書き込み処理まとめ</title>
		<link>https://lemon818.com/pythop-excel/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Fri, 31 Jul 2020 03:58:21 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[新規作成]]></category>
		<category><![CDATA[書き込み]]></category>
		<category><![CDATA[読み込み]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5196</guid>

					<description><![CDATA[Python から Excel ファイルを作成してみたい！   &#160; そんな思いから Python から Excel ファイルを操作（新規作成・読み込み・書き込み）する処理を簡単にまとめました。 どーもTakeで…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><span style="color: #000000;">Python から Excel ファイルを作成してみたい！  </span></strong></div>
</div>
<p>&nbsp;</p>
<p>そんな思いから Python から Excel ファイルを操作（<strong>新規作成・読み込み・書き込み</strong>）する処理を簡単にまとめました。</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>Python から Excel ファイル ができれば、Python で Webスクライピングをした結果を Excel ファイル 出力させたりとか、</p>
<p>いろんなことに応用できると思います。</p>
<p>&nbsp;</p>
<p>この記事では、Excel ファイルを操作（新規作成・読み込み・書き込み）を具体的な<span style="color: #0000ff;"><strong>ソースコードをもとに</strong></span>説明します。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">この記事でわかること！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>準備 ・・・ Python で Excel ファイルを処理するための準備</li>
<li>Excel ファイルの新規作成</li>
<li>Excel ファイルの書き込み（新規ファイル、既存ファイルへの出力）</li>
<li>Excel ファイルの読み込み</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h2>準備</h2>
<p>Python で Excel ファイルを処理するために「<span>openpyxl</span>」をインポートします。</p><pre class="crayon-plain-tag">pip install openpyxl</pre><p>
&nbsp;</p>
<p>pip コマンドでインポートできます。これで準備OKです。</p>
<p>あとはソースコード冒頭で 「<span>openpyxl</span>」モジュールを取り込むようにします。</p><pre class="crayon-plain-tag">import openpyxl as excel</pre><p>
&nbsp;</p>
<h2>Excel ファイルの新規作成</h2>
<p>Python で Excel ファイルを新規作成する方法です。</p>
<p>&nbsp;</p>
<p>下記ソースコードのように、「openpyxl」モジュールの Workbook メソッドで簡単に新規作成できます。</p>
<p>あとは save メソッドで引数に Excel ファイルのファイル名を指定すれば OK です。（下記では test.xlsx と指定）</p><pre class="crayon-plain-tag">import openpyxl as excel

wbname = "test.xlsx"
wb = excel.Workbook()
wb.save("test.xlsx")</pre><p>
&nbsp;</p>
<p>下記のように「test.xlsx」が出力されていることが確認できます。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel.png" alt="" width="620" height="172" class="aligncenter size-full wp-image-5236" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel.png 620w, https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel-300x83.png 300w" sizes="auto, (max-width: 620px) 100vw, 620px" /></p>
<p>&nbsp;</p>
<h2>Excel ファイルの書き込み</h2>
<p>Python で Excel ファイルを新規作成し、書き込む方法です。</p>
<p>&nbsp;</p>
<p>出力先の Excel ファイルのシートのセル番号（ws["A1"] 、ws["B2"] ）を指定し、そこに値を代入すれば OK です。</p><pre class="crayon-plain-tag">import openpyxl as excel

wbname = "test.xlsx"
msg_A1 = "Helllo World"
msg_B2 = "あいうえお"

wb = excel.Workbook()
ws = wb.active

# 書き込み処理
ws["A1"] = msg_A1
ws["B2"] = msg_B2

wb.save(wbname)</pre><p>
&nbsp;</p>
<p>上記を実行することで「test.xlsx」が新規作成され、そのファイルに指定した内容が書き込みされていることが確認できます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel2.png" alt="" width="445" height="287" class="aligncenter size-full wp-image-5244" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel2.png 445w, https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel2-300x193.png 300w" sizes="auto, (max-width: 445px) 100vw, 445px" /></p>
<p>&nbsp;</p>
<h3>既存 Excel ファイルへの書き込み</h3>
<p>既存 Excel ファイルへの書き込み方についてです。</p>
<p>&nbsp;</p>
<p>新規作成の処理とは少し異なり、openpyxl モジュールの load_workbook メソッドを使い既存ファイルを開いてから書き込み処理をします。</p>
<p>下記ソースコードでは、既存ファイル「test.xlsx」の C5 セルに「test」と書き込むように処理します。</p><pre class="crayon-plain-tag">import openpyxl as excel

wbname = "test.xlsx"
msg = "test"

wb = excel.load_workbook(wbname)
ws = wb.active

# 書き込み処理
ws["C5"] = msg

wb.save(wbname)</pre><p>
&nbsp;</p>
<p>下記のように「C5」セルに「test」と書き込まれることが確認できます。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel4.png" alt="" width="849" height="293" class="aligncenter wp-image-5249" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel4.png 901w, https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel4-300x104.png 300w, https://lemon818.com/wp/wp-content/uploads/2020/07/python-excel4-768x265.png 768w" sizes="auto, (max-width: 849px) 100vw, 849px" /></p>
<h2>Excel ファイルの読み込み</h2>
<p>Python で既存 Excel ファイルを読み込む方法です。</p>
<p>&nbsp;</p>
<p>openpyxl モジュールの load_workbook メソッドを使えば、既存ファイルを開くことが可能です。</p>
<p>下記にソースコードを示します。</p><pre class="crayon-plain-tag">import openpyxl as excel

wbname = "test.xlsx"
wb = excel.load_workbook(wbname)

# シート単位にループ
for sheet in wb.sheetnames: 
    print("シート名:" + sheet)
    ws = wb[sheet]
    # 行単位にループ
    for row in ws.rows:
        # 列単位にループ
        for cell in row:
            print("行:" + str(cell.row) + " 列:" + str(cell.column))
            print("値:" + str(cell.value))</pre><p>
&nbsp;</p>
<p>上記は「test.xlsx」を開き、その中身を表示させる処理です。</p>
<p>「load_workbook」メソッドをつかってファイルを開きシート・行・列単位に値を表示しています。</p>
<p>&nbsp;</p>
<p>下記表に取得値についてまとめてます（「cell.XXX」の「cell」は<strong>独自に定義したもの</strong>なので、<strong>作成するソースに応じて変更してください</strong>）。</p>
<p>よければ参考にしてみてください（詳細は<a href="https://openpyxl.readthedocs.io/en/stable/index.html">このページ</a>を参考にいただければと思います）。</p>
<p>&nbsp;</p>
<table style="border-collapse: collapse; width: 64.6084%; height: 238px;">
<tbody>
<tr style="height: 48px;">
<td style="width: 22.5368%; text-align: center; height: 48px; background-color: #21226e;"><span style="color: #ffffff;"><strong>値</strong></span></td>
<td style="width: 20.6785%; text-align: center; height: 48px; background-color: #21226e;"><span style="color: #ffffff;"><strong>意味</strong></span></td>
<td style="width: 24.6793%; text-align: center; height: 48px; background-color: #21226e;"><span style="color: #ffffff;"><strong>例</strong></span></td>
</tr>
<tr style="height: 46px;">
<td style="width: 22.5368%; height: 46px; background-color: #ffffe6;"><strong>cell.value</strong></td>
<td style="width: 20.6785%; height: 46px;"><strong>セルの値</strong></td>
<td style="width: 24.6793%; height: 46px;"><strong>あいうえお</strong></td>
</tr>
<tr style="height: 48px;">
<td style="width: 22.5368%; height: 48px; background-color: #ffffe6;"><strong>cell.coordinate</strong></td>
<td style="width: 20.6785%; height: 48px;"><strong>セル番号</strong></td>
<td style="width: 24.6793%; height: 48px;"><strong>A2</strong></td>
</tr>
<tr style="height: 48px;">
<td style="width: 22.5368%; height: 48px; background-color: #ffffe6;"><strong>cell.column</strong></td>
<td style="width: 20.6785%; height: 48px;"><strong>セルの列</strong></td>
<td style="width: 24.6793%; height: 48px;"><strong>1</strong></td>
</tr>
<tr style="height: 48px;">
<td style="width: 22.5368%; height: 48px; background-color: #ffffe6;"><strong>cell.row</strong></td>
<td style="width: 20.6785%; height: 48px;"><strong>セルの行</strong></td>
<td style="width: 24.6793%; height: 48px;"><strong>2</strong></td>
</tr>
<tr>
<td style="width: 22.5368%; background-color: #ffffe6;"><strong>cell.parent</strong></td>
<td style="width: 20.6785%;"><strong>参照元の情報</strong></td>
<td style="width: 24.6793%;"><strong>&lt;Worksheet "Sheet"&gt;</strong></td>
</tr>
<tr>
<td style="width: 22.5368%; background-color: #ffffe6;"><strong>cell.encoding</strong></td>
<td style="width: 20.6785%;"><strong>文字コード</strong></td>
<td style="width: 24.6793%;"><strong>utf-8</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では Python から Excel ファイルを操作（<strong>新規作成・読み込み・書き込み</strong>）について解説しました。</p>
<p>&nbsp;</p>
<p>この記事が読者の Python 開発のお役に立てれば幸いです。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】class とは？使い方まで初心者にもわかりやすく図で解説！</title>
		<link>https://lemon818.com/python-class/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Wed, 29 Jul 2020 00:20:04 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[インスタンス]]></category>
		<category><![CDATA[オブジェクト指向]]></category>
		<category><![CDATA[クラス]]></category>
		<category><![CDATA[コンストラクタ]]></category>
		<category><![CDATA[デストラクタ]]></category>
		<category><![CDATA[使い方]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5159</guid>

					<description><![CDATA[class（クラス）って結局なんや？ どうやってつかうんや？ &#160; そう思ったことありませんか？ どーもTakeです。 &#160; この記事では、Python のclass（クラス）とは？その使い方について簡単…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame ">
<div class="sc_frame_text"><strong><span style="color: #000000;">class（クラス）って結局なんや？ どうやってつかうんや？</span></strong></div>
</div>
</div>
<p>&nbsp;</p>
<p>そう思ったことありませんか？</p>
<p>どーもTakeです。</p>
<p>&nbsp;</p>
<p>この記事では、<strong>Python のclass（クラス）とは？その使い方について簡単に解説します。</strong></p>
<p>&nbsp;</p>
<p>class（クラス）というと設計図とかオブジェクト指向における概念とかいろんな表現がありますが、</p>
<p>わたしは<strong><span style="color: #ff0000;">プログラミング初心者のうちはさっぱりわかりませんでした</span></strong>。</p>
<p>&nbsp;</p>
<p>「<strong>やってくうちに何となく必要性がわかってくる</strong>」そういうものだと思います。</p>
<p>ですがclass（クラス）という考え方は初めのうちはどうしても難しいため、</p>
<p>この記事ではPython のclass（クラス）について<span style="color: #0000ff;"><strong>図をつかって簡単に解説します。</strong></span></p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">この記事でわかること！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>Python のclass（クラス）について</li>
<li>Python のclass（クラス）の使い方</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h2>Python のclass（クラス）について</h2>
<p>class（クラス）を説明する上で必要なキーワードが三つあります。</p>
<p>これらを順に説明します。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">３つのキーワード</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>クラス・・・設計図のこと</li>
<li>インスタンス・・・設計図をもとに実際に作ったもの</li>
<li>オブジェクト指向・・・クラスをつかって開発する手法のこと</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>クラスとは？</h3>
<p>class（クラス）とはイメージは<strong>設計図</strong>と思ってください。</p>
<p>もっと簡単に言うと<strong>変数と関数をまとめたもの</strong>と思っておけばOKです。</p>
<p>&nbsp;</p>
<p>たとえば、Python で Human（人間）を作ってみようと思います。</p>
<p>Human（人間）には名前、身長、体重といった様々な<strong>要素</strong>があり、話したり歩いたりいろんな<strong>動作</strong>もあります。</p>
<p>&nbsp;</p>
<p>それをPython でHuman（人間）をクラスにしようとすれば<strong>「要素 = 変数」「動作 = メソッド」</strong>になります。</p>
<p>これら<strong>「変数」「メソッド」</strong>をまとめて定義したものが<strong>クラス</strong>です。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/class2.png" alt="" width="601" height="238" class="aligncenter wp-image-5173" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/class2.png 649w, https://lemon818.com/wp/wp-content/uploads/2020/07/class2-300x119.png 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></p>
<p>&nbsp;</p>
<h3>インスタンスとは？</h3>
<p>クラスを理解する上で次に出てくる重要なキーワードが「<strong>インスタンス</strong>」です。</p>
<p>「インスタンス」とはクラス（設計図）として宣言したときの実体化させたもの</p>
<p>（<strong>設計図をもとに実際に作ったもの</strong>）のことです。</p>
<p>&nbsp;</p>
<p>「Human（人間）クラスをつくりました！じゃあソースコードで呼び出して使うで！」ってなったとき</p>
<p>どう呼び出すか？って考えてください。</p>
<p>&nbsp;</p>
<p>おそらく「tanaka = Human()」という風に書くことになります。その「tanaka」っていうものが「<strong>インスタンス</strong>」です。</p>
<p>つまりクラスというのはあくまで「設計図」であり、その<strong>設計図をもとに実際に作ったもの</strong>がインスタンスです。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/class3.png" alt="" width="558" height="485" class="aligncenter wp-image-5176" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/class3.png 683w, https://lemon818.com/wp/wp-content/uploads/2020/07/class3-300x261.png 300w" sizes="auto, (max-width: 558px) 100vw, 558px" /></p>
<p>&nbsp;</p>
<h3>オブジェクト指向とは？</h3>
<p>また class（クラス）を学んでいくと「<strong>オブジェクト指向</strong>」という言葉がでてきます。</p>
<p>「<strong>オブジェクト指向</strong>」とは <strong>class（クラス）をつかって開発していくプログラミング手法</strong>のことです。</p>
<p>&nbsp;</p>
<h2>Python のclass（クラス）の使い方</h2>
<p>では プログラミングで Human（人間）クラスを作ってみようと思います。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">Human（人間）クラスの構成</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>名前 ・・・ 変数 name として定義する予定</li>
<li>身長 ・・・ 変数 height として定義する予定</li>
<li>体重 ・・・ 変数 weight として定義する予定</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>この構成で Human クラスを定義します。</p>
<p>下記のように Human クラスは def で定義されるメソッド（関数）と変数（name、height、weight）で構成されてます。</p><pre class="crayon-plain-tag"># クラスの定義
class Human:
    
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight</pre><p>
&nbsp;</p>
<p>※「__init__」はいったん無視してください。あとで説明します。</p>
<p>クラスとはこのように<strong>変数と関数をまとめた設計図</strong>だと理解すれば最初はOKです。</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/class0.png" alt="" width="451" height="341" class="aligncenter wp-image-5172" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/class0.png 568w, https://lemon818.com/wp/wp-content/uploads/2020/07/class0-300x227.png 300w" sizes="auto, (max-width: 451px) 100vw, 451px" /></p>
<p>&nbsp;</p>
<p>ではこの Human（人間）クラスから「田中（tanaka）さん」を作ろうと思います。</p>
<p>下記ソースコードの一番下で「tanaka = Human("tanaka",170,50)」とあります。</p>
<p>この tanaka は Human クラスで定義したもので<strong>インスタンス</strong>といいます。</p><pre class="crayon-plain-tag"># クラスの定義
class Human:
    
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight

# 実行部分         
tanaka = Human("tanaka",170,50)</pre><p>
&nbsp;</p>
<p>この tanaka を宣言した際、Human クラスで「__init__」が呼び出されます。</p>
<p>この「__init__」をコンストラクタと呼びます。</p>
<p><strong>コンストラクタ</strong>とはクラスを呼ば出した際（つまりインスタンスが定義されたとき）に</p>
<p>最初に呼ばれるメソッド（関数）のことです。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2020/07/class1.png" alt="" width="621" height="280" class="aligncenter wp-image-5171" srcset="https://lemon818.com/wp/wp-content/uploads/2020/07/class1.png 813w, https://lemon818.com/wp/wp-content/uploads/2020/07/class1-300x135.png 300w, https://lemon818.com/wp/wp-content/uploads/2020/07/class1-768x347.png 768w" sizes="auto, (max-width: 621px) 100vw, 621px" /></p>
<p>&nbsp;</p>
<p>そして「__init__」コンストラクタには引数（self, name, height, weight）があります。</p>
<p>「tanaka = Human("tanaka",170,50)」と宣言したため、name = "tanaka"、 height = 170、weight = 50 と値が代入されます。</p>
<p>&nbsp;</p>
<p>ここで「<span style="color: #ff0000;"><strong>あれ？ self は？</strong></span>」となると思います。</p>
<p>「self」はインスタンス自身を意味する慣用語であり、そのメソッド内でクラスの変数を使用する場合に呼び出しが</p>
<p>必要であるため記述されており、<strong>引数ではありません。</strong></p>
<p>&nbsp;</p>
<p>もっと簡単に言うとクラスには「name, height, weight」という3つの変数があり、</p>
<p><span style="color: #0000ff;"><strong><span style="color: #000000;">「self」は</span>それら変数を呼び出すために必要なだけ</strong></span>です。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">ここまでのまとめ</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>クラス・・・設計図のこと、<strong>変数と関数をまとめたもの</strong>（Human クラス）</li>
<li>インスタンス・・・クラスを呼び出したもの（tanaka = Human("tanaka",170,50)）</li>
<li>コンストラクタ・・・クラスを呼び出した時に最初に処理するメソッド（「__init__」関数）</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>※ コンストラクタの逆に「<strong>デストラクタ</strong>」も存在します。</p>
<p>これはインスタンスが破棄されたタイミングで呼び出される処理のことです。</p>
<p>&nbsp;</p>
<h3>クラスの変数とメソッドの呼び出し</h3>
<p>クラスで定義した変数とメソッドの呼び出し方法です。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">変数とメソッドの呼び出し方法</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>変数・・・インスタンス名.変数</li>
<li>メソッド・・・インスタンス名.メソッド</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>具体的にソースコードで説明します。</p>
<p>先程と同様 Human クラス内にある変数とメソッドを呼び出します。</p><pre class="crayon-plain-tag"># クラスの定義
class Human:
    
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight
        
    def hello(self,):
        print("おはよう")
 
# 実行部分       
tanaka = Human("tanaka",170,50)
print(tanaka.name)
tanaka.hello()

## 実行結果
tanaka
おはよう</pre><p>
&nbsp;</p>
<p>上記ソースコードで「#実行部分」を確認してください。</p>
<p>まず定義した Human クラスのインスタンスである tanaka を定義します。</p>
<p>その際に引数に Human("tanaka",170,50)とすることで name = "tanaka"、 height = 170、weight = 50 と値が代入されます。</p>
<p>&nbsp;</p>
<p>そして「tanaka.name」とすることでクラス内の変数 name = "tanaka" を呼び出しできます。</p>
<p>最後に「tanaka.hello()」と呼び出すことでクラス内のメソッド hello の処理が実行され「hello」と表示されます。</p>
<p>&nbsp;</p>
<h2>最後に</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、Python のclass（クラス）の使い方について解説しました。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">これだけ抑えとけばOK！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>クラス・・・設計図のこと</li>
<li>インスタンス・・・設計図をもとに実際に作ったもの</li>
<li>オブジェクト指向・・・クラスをつかって開発する手法のこと</li>
<li>コンストラクタ・・・インスタンスが定義されたときに呼び出される処理</li>
<li>デストラクタ・・・インスタンスが破棄されたときに呼び出される処理</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>クラスを学び際はとりあえず<span style="color: #0000ff;"><strong>上記5つのカタカナを理解する必要があります。</strong></span></p>
<p>私も最初はまったくわからなかったですが、いろいろと開発していくうちに覚えました！</p>
<p>&nbsp;</p>
<p>ぜひいろいろなクラスをつくってクラスをマスターしていただければと思います。</p>
<p>ではでは。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
