<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>プログラミング演習 on Miura Computer Club</title>
    <link>/tags/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E6%BC%94%E7%BF%92/</link>
    <description>Recent content in プログラミング演習 on Miura Computer Club</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja-JP</language>
    <lastBuildDate>Mon, 24 Aug 2026 15:00:00 +0900</lastBuildDate><atom:link href="/tags/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E6%BC%94%E7%BF%92/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>レッスン125</title>
      <link>/lessons/lesson125/</link>
      <pubDate>Mon, 24 Aug 2026 15:00:00 +0900</pubDate>
      
      <guid>/lessons/lesson125/</guid>
      <description>Python演習ドリル200 基礎練習31〜40, 41〜50 Pythonプログラムを学び始めた方向けの演習ドリルです。
今回は、基礎練習の31〜40です。
jupyterとjupyter notebook 本演習ではjupyter notebookを使用します。 インストールされているか確認してください。 インストールされていない場合、jupyterとjupyter notebookのインストール方法については、レッスン33を参照してください。
演習前の基礎学習 実際にjupyter notebookを使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。
文字列処理
for文による文字列の逐次処理
for c in &amp;quot;文字列&amp;quot;:のように、文字列をループ文で処理すると、変数cに文字列の文字が文字列数分、1文字ずつ格納され、ループ処理されます。
例えば、以下のように文字列をfor文で処理し、print()関数で出力すると、（出力結果）のように出力されます。
for c in &amp;#34;abcde&amp;#34;: print(c) （出力結果）
a b c d e 文字列には英数だけでなく、日本語（漢字、かな、カナ）も使用でき、全て1文字単位で処理されます。
enumerate()関数
for i, c in enumerate(&amp;quot;文字列&amp;quot;):のように文字列をenumerate()関数で処理すると、変数iには0から始まり1ずつ増えるインデックスの値が格納され、変数cには文字列の文字が1文字ずつ格納され、ループ処理されます。
例えば、以下のように文字列for文で処理し、print()関数で出力すると、出力結果のように出力されます。
for i, c in enumerate(&amp;#34;abcde&amp;#34;): print(i, c) （出力結果）
0 a 1 b 2 c 3 d 4 e enumerate(&amp;quot;文字列&amp;quot;, 開始インデックス）というようにenumerate関数の2番目の引数に開始インデックス（例えば1）を指定すると、開始インデックス(例えば1)から始まり1ずつ増えたインデックスの値が変数iに格納されます。（変数cに格納される文字は開始インデックスの有無・内容によって変わりることはありません）
文字列のスライス
&amp;quot;文字列&amp;quot;[i]のようにインデックスを指定すると、文字列のi番目（0から始まる値）の文字を取得できます。
&amp;quot;文字列&amp;quot;[a:b]のように指定すると文字列のa番目からb-1番目（0から始まる値）の文字列を取得できます。
&amp;quot;文字列&amp;quot;[a:b:c]のように指定すると、文字列のa番目からb-1番目（0から始まる値）までの文字をc-1文字おきの（cずつずらした）文字列を取得できます。
&amp;quot;文字列&amp;quot;[a:b]および&amp;quot;文字列&amp;quot;[a:b:c]のa、b、およびcは省略可能で、省略した場合、それぞれ文字列の先頭（cが負の場合は末尾）、文字列の末尾（cが負の場合は先頭）、1と解釈されます。 aとbを省略した場合は、cの符号とは関係なく全ての要素の範囲が選択されます。（もちろん、cの値によって実際に取得される文字列は異なります）
&amp;#34;abcde&amp;#34;[1] # &amp;#34;b&amp;#34; &amp;#34;abcde&amp;#34;[1:4]	# &amp;#34;bcd&amp;#34; &amp;#34;abcde&amp;#34;[1:5:2]	# &amp;#34;bd&amp;#34; &amp;#34;abcde&amp;#34;[:]	# &amp;#34;abcde&amp;#34; &amp;#34;abcde&amp;#34;[:3]	# &amp;#34;abc&amp;#34; &amp;#34;abcde&amp;#34;[2:]	# &amp;#34;cde&amp;#34; インデックスには負の値も使用することができます。 負の値は-1が文字列の最後尾の位置、-1増えるごとに1つずつ前の位置を示し、文字列の先頭は-文字列の長さになります。</description>
      <content>&lt;h1 id=&#34;python演習ドリル200-基礎練習3140-4150&#34;&gt;Python演習ドリル200 基礎練習31〜40, 41〜50&lt;/h1&gt;
&lt;p&gt;Pythonプログラムを学び始めた方向けの演習ドリルです。&lt;/p&gt;
&lt;p&gt;今回は、基礎練習の31〜40です。&lt;/p&gt;
&lt;h2 id=&#34;jupyterとjupyter-notebook&#34;&gt;jupyterとjupyter notebook&lt;/h2&gt;
&lt;p&gt;本演習では&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用します。
インストールされているか確認してください。
インストールされていない場合、&lt;strong&gt;jupyter&lt;/strong&gt;と&lt;strong&gt;jupyter notebook&lt;/strong&gt;のインストール方法については、&lt;a href=&#34;https://miura.io/lessons/lesson33&#34;&gt;レッスン33&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;演習前の基礎学習&#34;&gt;演習前の基礎学習&lt;/h2&gt;
&lt;p&gt;実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;文字列処理&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;for&lt;/code&gt;文による文字列の逐次処理&lt;/p&gt;
&lt;p&gt;&lt;code&gt;for c in &amp;quot;文字列&amp;quot;:&lt;/code&gt;のように、文字列をループ文で処理すると、変数&lt;code&gt;c&lt;/code&gt;に文字列の文字が文字列数分、1文字ずつ格納され、ループ処理されます。&lt;/p&gt;
&lt;p&gt;例えば、以下のように文字列を&lt;code&gt;for&lt;/code&gt;文で処理し、&lt;code&gt;print()&lt;/code&gt;関数で出力すると、（出力結果）のように出力されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; c &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(c)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（出力結果）&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;a
b
c
d
e
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;文字列には英数だけでなく、日本語（漢字、かな、カナ）も使用でき、全て1文字単位で処理されます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;enumerate()関数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;for i, c in enumerate(&amp;quot;文字列&amp;quot;):&lt;/code&gt;のように文字列を&lt;code&gt;enumerate()&lt;/code&gt;関数で処理すると、変数&lt;code&gt;i&lt;/code&gt;には&lt;code&gt;0から始まり1ずつ増えるインデックスの値&lt;/code&gt;が格納され、変数&lt;code&gt;c&lt;/code&gt;には&lt;code&gt;文字列の文字が1文字ずつ&lt;/code&gt;格納され、ループ処理されます。&lt;/p&gt;
&lt;p&gt;例えば、以下のように文字列&lt;code&gt;for&lt;/code&gt;文で処理し、&lt;code&gt;print()&lt;/code&gt;関数で出力すると、出力結果のように出力されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i, c &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; enumerate(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(i, c)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（出力結果）&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;0 a
1 b
2 c
3 d
4 e
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;enumerate(&amp;quot;文字列&amp;quot;, 開始インデックス）&lt;/code&gt;というように&lt;code&gt;enumerate&lt;/code&gt;関数の2番目の引数に&lt;code&gt;開始インデックス&lt;/code&gt;（例えば1）を指定すると、&lt;code&gt;開始インデックス&lt;/code&gt;(例えば1)&lt;code&gt;から始まり1ずつ増えたインデックスの値&lt;/code&gt;が変数&lt;code&gt;i&lt;/code&gt;に格納されます。（変数&lt;code&gt;c&lt;/code&gt;に格納される文字は開始インデックスの有無・内容によって変わりることはありません）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文字列のスライス&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;[i]&lt;/code&gt;のようにインデックスを指定すると、文字列の&lt;code&gt;i&lt;/code&gt;番目（0から始まる値）の文字を取得できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;[a:b]&lt;/code&gt;のように指定すると文字列の&lt;code&gt;a&lt;/code&gt;番目から&lt;code&gt;b-1&lt;/code&gt;番目（0から始まる値）の文字列を取得できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;[a:b:c]&lt;/code&gt;のように指定すると、文字列の&lt;code&gt;a&lt;/code&gt;番目から&lt;code&gt;b-1&lt;/code&gt;番目（0から始まる値）までの文字を&lt;code&gt;c-1&lt;/code&gt;文字おきの（&lt;code&gt;c&lt;/code&gt;ずつずらした）文字列を取得できます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;[a:b]&lt;/code&gt;および&lt;code&gt;&amp;quot;文字列&amp;quot;[a:b:c]&lt;/code&gt;の&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;b&lt;/code&gt;、および&lt;code&gt;c&lt;/code&gt;は省略可能で、省略した場合、それぞれ&lt;code&gt;文字列の先頭（cが負の場合は末尾）&lt;/code&gt;、&lt;code&gt;文字列の末尾（cが負の場合は先頭）&lt;/code&gt;、&lt;code&gt;1&lt;/code&gt;と解釈されます。
&lt;code&gt;a&lt;/code&gt;と&lt;code&gt;b&lt;/code&gt;を省略した場合は、&lt;code&gt;c&lt;/code&gt;の符号とは関係なく全ての要素の範囲が選択されます。（もちろん、&lt;code&gt;c&lt;/code&gt;の値によって実際に取得される文字列は異なります）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;] 		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;]	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;bcd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;]	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;bd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[:]		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;abcde&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[:&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;]		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;abc&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;:]		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;cde&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インデックスには負の値も使用することができます。
負の値は&lt;code&gt;-1&lt;/code&gt;が文字列の最後尾の位置、&lt;code&gt;-1&lt;/code&gt;増えるごとに&lt;code&gt;1&lt;/code&gt;つずつ前の位置を示し、文字列の先頭は&lt;code&gt;-文字列の長さ&lt;/code&gt;になります。&lt;/p&gt;
&lt;p&gt;スライスで指定する位置（インデックス）は要素と要素の間を指す、と考えると理解しやすいです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; +---+---+---+---+---+---+
 | a | b | c | d | e | f |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;c&lt;/code&gt;の&lt;code&gt;c-1&lt;/code&gt;文字おきの（&lt;code&gt;c&lt;/code&gt;ずつずらした）値にも負の値を指定することができ、負の場合、末尾方向から逆順に要素を取得します。
&lt;code&gt;&amp;quot;abcde&amp;quot;[::-1]&lt;/code&gt;のように指定すると、全ての文字を文末から文頭に1文字ずつ逆方向に取得する、すなわち、文字列を反転して出力することになります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;c&lt;/code&gt;が省略されるか、正の値の場合は、正のインデックスに換算して&lt;code&gt;a &amp;lt; b&lt;/code&gt;、負の場合は、正のインデックスに換算して&lt;code&gt;a &amp;gt; b&lt;/code&gt;でないと何も取得されません。(空の文字列&amp;quot;&amp;ldquo;になる）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;] 	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;e&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;:&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;bcd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;[::&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;edcba&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なお、文字列を反転する方法としては&lt;code&gt;reverse()&lt;/code&gt;という関数を用いることもできます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;in&lt;/code&gt;（含まれる）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列1&amp;quot; in &amp;quot;文字列2&amp;quot;&lt;/code&gt;という式で、&lt;code&gt;文字列1&lt;/code&gt;に&lt;code&gt;文字列2&lt;/code&gt;が含まれているかを判断することができ、含まれていれば&lt;code&gt;True&lt;/code&gt;、そうでなければ&lt;code&gt;False&lt;/code&gt;を返します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;count&lt;/code&gt;（含まれる数を返す）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列1&amp;quot;.count(&amp;quot;文字列2&amp;quot;)&lt;/code&gt;という関数で、&lt;code&gt;文字列1&lt;/code&gt;に&lt;code&gt;文字列2&lt;/code&gt;が何個含まれているかの数を返します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;string&lt;/code&gt;モジュールの定数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;string&lt;/code&gt;モジュールを&lt;code&gt;import&lt;/code&gt;すると以下のような文字列定数を使うことができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;string.ascii_lowercase&lt;/p&gt;
&lt;p&gt;英小文字&lt;code&gt;abcdefghijklmnopqrstuvwxyz&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.ascii_uppercase&lt;/p&gt;
&lt;p&gt;英大文字&lt;code&gt;ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.ascii_letters&lt;/p&gt;
&lt;p&gt;前述のstring.ascii_lowercaseとstring.ascii_uppercaseを合わせた文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.digits&lt;/p&gt;
&lt;p&gt;数字&lt;code&gt;0123456789&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.hexdigits&lt;/p&gt;
&lt;p&gt;16進数字&lt;code&gt;0123456789abcdefABCDEF&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.octdigits&lt;/p&gt;
&lt;p&gt;8進数字&lt;code&gt;01234567&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.punctuation&lt;/p&gt;
&lt;p&gt;区切り文字として扱われるASCII文字&lt;code&gt;!&amp;quot;#$%&amp;amp;&#39;()*+,-./:;&amp;lt;=&amp;gt;?@[\]^_`{|}~&lt;/code&gt;の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.whitespace&lt;/p&gt;
&lt;p&gt;空白文字(whitespace)として扱われるASCII文字の文字列&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;string.printable&lt;/p&gt;
&lt;p&gt;上述のstring.digits、string.letters、string.punctuation及びstring.whitespaceを合わせた文字列&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;join&lt;/code&gt;関数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;区切り文字&amp;quot;.join(&amp;quot;文字列&amp;quot;)&lt;/code&gt;で、文字列の各文字を指定の区切り文字で区切った1つの文字列を出力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcde&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;a-&amp;gt;b-&amp;gt;c-&amp;gt;d-&amp;gt;e&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;split&lt;/code&gt;関数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;.split(&amp;quot;区切り文字&amp;quot;)&lt;/code&gt;で、1つの文字列を指定の区切り文字で区切り、区切った各文字列を文字列の配列として出力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;a,b,c,d,e&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;split(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# [&amp;#34;a&amp;#34;,&amp;#34;b&amp;#34;,&amp;#34;c&amp;#34;,&amp;#34;d&amp;#34;,&amp;#34;e&amp;#34;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なお、&lt;code&gt;split()&lt;/code&gt;のように区切り文字を指定しない場合、空白文字（スペース、改行、タブなど）を区切り文字とし、連続する空白文字はまとめて１つの空白文字として処理されます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;a    b  c d&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;split()		&lt;span style=&#34;color:#75715e&#34;&gt;# [&amp;#34;a&amp;#34;,&amp;#34;b&amp;#34;,&amp;#34;c&amp;#34;,&amp;#34;d&amp;#34;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strip&lt;/code&gt;関数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列&amp;quot;.strip()&lt;/code&gt;で文字列の先頭と末尾にある余分なスペース記号（スペースや改行など）を全て除去して出力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;   abcde   &lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;strip()	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;abcde&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;replace&lt;/code&gt;関数&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;文字列1&amp;quot;.replace(&amp;quot;文字列2&amp;quot;, &amp;quot;文字列3&amp;quot;)&lt;/code&gt;で、&lt;code&gt;文字列1&lt;/code&gt;中の&lt;code&gt;文字列2&lt;/code&gt;を全て&lt;code&gt;文字列3&lt;/code&gt;に置換えて出力します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;abcaab&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;a&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;_&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;_bc__b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;chr&lt;/code&gt;関数と&lt;code&gt;ord&lt;/code&gt;関数&lt;/p&gt;
&lt;p&gt;各文字には、文字コードという文字1つ1つに付けられた値があります。
例えば&lt;code&gt;a&lt;/code&gt;は97、&lt;code&gt;b&lt;/code&gt;は98というふうに、小文字のアルファベットは97から始まる文字コードが付けられています。
大文字は65から始まり、数字は48から始まります。&lt;/p&gt;
&lt;p&gt;文字コードの値を文字に変換するには&lt;code&gt;chr&lt;/code&gt;という関数を使用し、&lt;code&gt;chr(97)&lt;/code&gt;のようにすると、数値の文字コード値&lt;code&gt;97&lt;/code&gt;を文字&lt;code&gt;&amp;quot;a&amp;quot;&lt;/code&gt;に変換できます。
同様に&lt;code&gt;ord&lt;/code&gt;という関数を使用し、&lt;code&gt;ord(&amp;quot;a&amp;quot;)&lt;/code&gt;のようにすると、文字&lt;code&gt;&amp;quot;a&amp;quot;&lt;/code&gt;を数値の文字コード値&lt;code&gt;97&lt;/code&gt;に変換できます。
なお、&lt;code&gt;ord&lt;/code&gt;関数に2文字以上の文字列を渡すとエラーになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chr(&lt;span style=&#34;color:#ae81ff&#34;&gt;97&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ord(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;a&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# 97&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;書式化&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;f文字列&lt;/strong&gt;のおさらいと追加項目&lt;/p&gt;
&lt;p&gt;桁数のNは定数値です。
また、10進数の数を示す&lt;code&gt;d&lt;/code&gt;は省略可能です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;変数xの値を文字列に入れる場合&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;文字列1{x}文字列2&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;変数xの10進数の値をコンマ（,）による3桁ずつの桁区切りで表示したい場合&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{x:,d}&amp;quot;&lt;/code&gt;	&lt;code&gt;f&amp;quot;{x:N,d}&amp;quot;&lt;/code&gt;（スペース埋めN桁表示）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;変数xの値を2, 8, 10, 16進数でスペースで埋めてN桁で表示したい場合&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{x:Nb}&amp;quot;&lt;/code&gt;,&lt;code&gt;f&amp;quot;{x:No}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:Nd}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:Nx}&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;変数xの値を2, 8, 10, 16進数で0で埋めてN桁で表示したい場合&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{x:0Nb}&amp;quot;&lt;/code&gt;,&lt;code&gt;f&amp;quot;{x:0No}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:0Nd}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:0Nx}&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;変数xの値を2, 8, 16進数でそれぞれ頭に&lt;code&gt;0b&lt;/code&gt;,&lt;code&gt;0o&lt;/code&gt;,&lt;code&gt;0x&lt;/code&gt;を付けてN桁で表示したい場合&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{x:#Nb}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:#Nd}&amp;quot;&lt;/code&gt;, &lt;code&gt;f&amp;quot;{x:#Nx}&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;変数sの文字列を文字cで埋めてn桁で表示したい場合（cが省略されるとスペース埋め）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;右寄せ&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{s:c&amp;gt;Ns}&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;中央寄せ&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{x:c^Ns)&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;左寄せ&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{s:c&amp;lt;Ns}&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;右寄せ、中央寄せ、左寄せは、文字列だけでなく、数値に対しても使用できます。
その際は、右端の&lt;code&gt;s&lt;/code&gt;の部分が&lt;code&gt;b&lt;/code&gt;,&lt;code&gt;o&lt;/code&gt;,&lt;code&gt;d&lt;/code&gt;,&lt;code&gt;x&lt;/code&gt;などになります。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;演習&#34;&gt;演習&lt;/h2&gt;
&lt;p&gt;それでは実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して、演習を行います。&lt;/p&gt;
&lt;p&gt;コマンドラインから&lt;code&gt;git pull&lt;/code&gt;を実行して&lt;code&gt;mcc1&lt;/code&gt;フォルダに最新のファイルをダウンロードしてください。&lt;/p&gt;
&lt;p&gt;ターミナルのコマンドラインから&lt;code&gt;cd mcc1/code/jupyter&lt;/code&gt;を実行して、&lt;code&gt;jupyter&lt;/code&gt;フォルダに移動し、&lt;code&gt;jupyter notebook&lt;/code&gt;を実行してください。&lt;/p&gt;
&lt;p&gt;すると、ブラウザが起動し、&lt;strong&gt;jupyter&lt;/strong&gt;のホーム画面が表示されます。&lt;/p&gt;
&lt;p&gt;その中から&lt;strong&gt;Python演習ドリル200基礎練習31〜40.ipynb&lt;/strong&gt;をクリックしてください。&lt;/p&gt;
&lt;p&gt;そうすると&lt;strong&gt;Python演習ドリル200基礎練習31〜40&lt;/strong&gt;というタイトルの演習問題が表示されます。&lt;/p&gt;
&lt;p&gt;課題31から課題40までありますので、課題の内容にしたがって、&lt;b&gt;In[]:&lt;/b&gt;の部分にPythonプログラムを書いてください。
書き終わったら、画面上の &lt;b&gt;▶| Run&lt;/b&gt; というアイコンをクリックすると、今書いたPythonプログラムが実行されます。&lt;/p&gt;
&lt;p&gt;出力結果が課題の（実行画面）と一致するか確認してください。&lt;/p&gt;
&lt;p&gt;どうしても正解がわからないときは、&lt;strong&gt;▶プログラム例&lt;/strong&gt; をクリックすると、正解例のPythonプログラムが表示されます。&lt;/p&gt;
&lt;p&gt;終わったら、ホーム画面に戻って、&lt;strong&gt;Python演習ドリル200基礎練習41〜50.ipynb&lt;/strong&gt;をクリックしてください。&lt;/p&gt;
&lt;p&gt;そうすると&lt;strong&gt;Python演習ドリル200基礎練習41〜50&lt;/strong&gt;というタイトルの演習問題が表示されます。&lt;/p&gt;
&lt;p&gt;同様に課題41から課題50までの課題の内容にしたがってPythonプログラムを書き、出力結果と一致するか確認してください。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;今回はPython演習として、文字列処理と書式化を行いました。&lt;/p&gt;
&lt;p&gt;今後も新しい演習問題を追加していきますので、演習を通じてPythonを学んでいきましょう。&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>レッスン124</title>
      <link>/lessons/lesson124/</link>
      <pubDate>Sun, 23 Aug 2026 16:00:00 +0900</pubDate>
      
      <guid>/lessons/lesson124/</guid>
      <description>Python演習ドリル200 基礎練習21〜30 Pythonプログラムを学び始めた方向けの演習ドリルです。
今回は、基礎練習の21〜30です。
jupyterとjupyter notebook 本演習ではjupyter notebookを使用します。 インストールされているか確認してください。 インストールされていない場合、jupyterとjupyter notebookのインストール方法については、レッスン33を参照してください。
演習前の基礎学習 実際にjupyter notebookを使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。
ビット処理
数値を2進数として、各桁（ビット）単位に処理することをビット処理と言います。
ビット演算
各桁（ビット）ごとに、演算処理を行うことをビット演算といいます。
ビット演算には条件分岐の時に説明した論理演算同様、and、or、not、xorの４種類の演算子があります。
ビット演算では論理演算とは異なり、「True／False」の代わりに「0／1」というビット値（各ビットの値）を使い、４つの演算子はそれぞれ、&amp;amp;、|、~、^というビット演算子で表現します。
変数aと変数bをビット演算すると、各変数を2進数にしたときの各桁の値ごとにそれぞれ演算し、その結果を出力します。
例えば変数aと変数bにそれぞれ10進数で5と3の値が入っているとすると、ビットでは以下のように表現されます。
変数10進数2進数4ビット目3ビット目2ビット目1ビット目 a51010101 b3110011 a &amp;amp; bでビットのand処理を行うと、
1ビット目：　1 &amp;amp; 1 = 1 2ビット目：	0 &amp;amp; 1 = 0 3ビット目：　1 &amp;amp; 0 = 0 4ビット目：	0 &amp;amp; 0 = 0 なので0001というビット値（2進数）になり、10進数でいうと1の値になります。
同様にa | bでビットのor処理を行うと、
1ビット目：　1 | 1 = 1 2ビット目：	0 | 1 = 1 3ビット目：　1 | 0 = 1 4ビット目：	0 | 0 = 0 なので0111というビット値（2進数）になり、10進数でいうと7に値になります。</description>
      <content>&lt;h1 id=&#34;python演習ドリル200-基礎練習2130&#34;&gt;Python演習ドリル200 基礎練習21〜30&lt;/h1&gt;
&lt;p&gt;Pythonプログラムを学び始めた方向けの演習ドリルです。&lt;/p&gt;
&lt;p&gt;今回は、基礎練習の21〜30です。&lt;/p&gt;
&lt;h2 id=&#34;jupyterとjupyter-notebook&#34;&gt;jupyterとjupyter notebook&lt;/h2&gt;
&lt;p&gt;本演習では&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用します。
インストールされているか確認してください。
インストールされていない場合、&lt;strong&gt;jupyter&lt;/strong&gt;と&lt;strong&gt;jupyter notebook&lt;/strong&gt;のインストール方法については、&lt;a href=&#34;https://miura.io/lessons/lesson33&#34;&gt;レッスン33&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;演習前の基礎学習&#34;&gt;演習前の基礎学習&lt;/h2&gt;
&lt;p&gt;実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ビット処理&lt;/p&gt;
&lt;p&gt;数値を2進数として、各桁（ビット）単位に処理することをビット処理と言います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ビット演算&lt;/p&gt;
&lt;p&gt;各桁（ビット）ごとに、演算処理を行うことをビット演算といいます。&lt;/p&gt;
&lt;p&gt;ビット演算には条件分岐の時に説明した論理演算同様、&lt;code&gt;and&lt;/code&gt;、&lt;code&gt;or&lt;/code&gt;、&lt;code&gt;not&lt;/code&gt;、&lt;code&gt;xor&lt;/code&gt;の４種類の演算子があります。&lt;/p&gt;
&lt;p&gt;ビット演算では論理演算とは異なり、「True／False」の代わりに「0／1」というビット値（各ビットの値）を使い、４つの演算子はそれぞれ、&lt;code&gt;&amp;amp;&lt;/code&gt;、&lt;code&gt;|&lt;/code&gt;、&lt;code&gt;~&lt;/code&gt;、&lt;code&gt;^&lt;/code&gt;というビット演算子で表現します。&lt;/p&gt;
&lt;p&gt;変数&lt;code&gt;a&lt;/code&gt;と変数&lt;code&gt;b&lt;/code&gt;をビット演算すると、各変数を2進数にしたときの各桁の値ごとにそれぞれ演算し、その結果を出力します。&lt;/p&gt;
&lt;p&gt;例えば変数&lt;code&gt;a&lt;/code&gt;と変数&lt;code&gt;b&lt;/code&gt;にそれぞれ10進数で&lt;code&gt;5&lt;/code&gt;と&lt;code&gt;3&lt;/code&gt;の値が入っているとすると、ビットでは以下のように表現されます。&lt;/p&gt;
  &lt;table&gt;
  	&lt;tr align=&#34;center&#34;&gt;
  	&lt;th&gt;変数&lt;/th&gt;&lt;th&gt;10進数&lt;/th&gt;&lt;th&gt;2進数&lt;/th&gt;&lt;th&gt;4ビット目&lt;/th&gt;&lt;th&gt;3ビット目&lt;/th&gt;&lt;th&gt;2ビット目&lt;/th&gt;&lt;th&gt;1ビット目&lt;/th&gt;
  	&lt;/tr&gt;
  	&lt;tr align=&#34;center&#34;&gt;
  	&lt;td&gt;a&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;101&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;
  	&lt;/tr&gt;
  	&lt;tr align=&#34;center&#34;&gt;
  	&lt;td&gt;b&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;
  	&lt;/tr&gt;
  &lt;/table&gt;
&lt;p&gt;a &amp;amp; bでビットのand処理を行うと、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1ビット目：　&lt;code&gt;1 &amp;amp; 1 = 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;2ビット目：	&lt;code&gt;0 &amp;amp; 1 = 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;3ビット目：　&lt;code&gt;1 &amp;amp; 0 = 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;4ビット目：	&lt;code&gt;0 &amp;amp; 0 = 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なので&lt;code&gt;0001&lt;/code&gt;というビット値（2進数）になり、10進数でいうと&lt;code&gt;1&lt;/code&gt;の値になります。&lt;/p&gt;
&lt;p&gt;同様に&lt;code&gt;a | b&lt;/code&gt;でビットのor処理を行うと、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1ビット目：　&lt;code&gt;1 | 1 = 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;2ビット目：	&lt;code&gt;0 | 1 = 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;3ビット目：　&lt;code&gt;1 | 0 = 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;4ビット目：	&lt;code&gt;0 | 0 = 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なので&lt;code&gt;0111&lt;/code&gt;というビット値（2進数）になり、10進数でいうと&lt;code&gt;7&lt;/code&gt;に値になります。&lt;/p&gt;
&lt;p&gt;上の表では簡易的に4桁のビットで表現しましたが、Pythonの場合、桁数に上限はなく、全ての桁のビットで処理が行われます。
なお、通常のプログラミング言語では32桁または64桁のビットで処理が行われます。&lt;/p&gt;
&lt;p&gt;Pythonで&lt;code&gt;~&lt;/code&gt;(not)を使用すると、値は負の値として表示されます。
正の値で表現したい場合は、必要な桁数分1で埋まった値（8桁なら&lt;code&gt;0b11111111&lt;/code&gt;）とand処理（&lt;code&gt;&amp;amp;&lt;/code&gt;）を行う必要があります。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ビットのシフト&lt;/p&gt;
&lt;p&gt;&lt;code&gt;x &amp;gt;&amp;gt; y&lt;/code&gt;という演算子を使用すると、&lt;code&gt;x&lt;/code&gt;変数の各桁のビット値を&lt;code&gt;y&lt;/code&gt;変数で指定した値分、右方向の桁（下位の桁）に移動した値が得られます。
演算結果を&lt;code&gt;x&lt;/code&gt;変数に設定し直したい場合は、&lt;code&gt;x &amp;gt;&amp;gt;= y&lt;/code&gt;のように記述します。&lt;/p&gt;
&lt;p&gt;例えば変数&lt;code&gt;a&lt;/code&gt;に2進数で&lt;code&gt;1010&lt;/code&gt;（10進数で&lt;code&gt;10&lt;/code&gt;）の値が入っていると&lt;code&gt;a &amp;gt;&amp;gt; 1&lt;/code&gt;の値は2進数で&lt;code&gt;0101&lt;/code&gt;（10進数で&lt;code&gt;5&lt;/code&gt;）です。
シフトした最上位（左端）の桁には0が入ります。
1つシフトするごとに10進数の値は元の値の2分の1（小数点切り捨て）になります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;x &amp;lt;&amp;lt; y&lt;/code&gt;という演算子を使用すると、&lt;code&gt;x&lt;/code&gt;変数の各桁のビット値を&lt;code&gt;y&lt;/code&gt;変数で指定した値分、左方向の桁（上位の桁）に移動した値が得られます。
演算結果を&lt;code&gt;x&lt;/code&gt;変数に設定し直したい場合は、&lt;code&gt;x &amp;lt;&amp;lt;= y&lt;/code&gt;のように記述します。&lt;/p&gt;
&lt;p&gt;例えば変数&lt;code&gt;a&lt;/code&gt;に2進数で&lt;code&gt;1010&lt;/code&gt;（10進数で&lt;code&gt;10&lt;/code&gt;）の値が入っていると&lt;code&gt;a &amp;lt;&amp;lt; 1&lt;/code&gt;の値は2進数で&lt;code&gt;10100&lt;/code&gt;（10進数で&lt;code&gt;20&lt;/code&gt;）です。
シフトした最下位（右端）の桁には0が入ります。
1つシフトするごとに10進数の値は元の値の2倍になります。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ビットのセット・クリア&lt;/p&gt;
&lt;p&gt;Pythonでは、ある桁のビット値を1にしたり（セット）、0にしたり（クリア）する演算子はありません。
このような処理を行いたい場合、以下のようにシフトとビット演算を組み合わせることで、セット・クリアを実行します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ビットのセット&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;変数xの右（下位）から0から数えてn番目のビットをセットしたい場合の式は、&lt;code&gt;x = x | (1 &amp;lt;&amp;lt; n)&lt;/code&gt;となります。
&lt;code&gt;x |= 1 &amp;lt;&amp;lt; n&lt;/code&gt;のように記述することもできます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ビットのクリア&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;変数xの右（下位）から0から数えてn番目のビットをクリアしたい場合の式は、&lt;code&gt;x = x &amp;amp; ~(1 &amp;lt;&amp;lt; n)&lt;/code&gt;となります。
&lt;code&gt;x &amp;amp;= ~(1 &amp;lt;&amp;lt; n)&lt;/code&gt;のように記述することもできます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2進数の出力方法&lt;/p&gt;
&lt;p&gt;10進数の2進数の値に変換するには&lt;code&gt;bin()&lt;/code&gt;関数を使います。
出力結果は&lt;code&gt;0bXXXX（Xは0か1の値）&lt;/code&gt;のような文字列になります。&lt;/p&gt;
&lt;p&gt;また&lt;strong&gt;f文字列&lt;/strong&gt;の中の変数値を2進数表記で出力することもできます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;f&amp;quot;{変数:b}&amp;quot;&lt;/code&gt;とすると、変数値は&lt;code&gt;0b&lt;/code&gt;が付かない2進数値で表示されます。
その際、&lt;code&gt;{変数:8b}&lt;/code&gt;のように&lt;code&gt;b&lt;/code&gt;の前に数字を入れると桁数が指定でき、桁数に足りない分は左側をスペースで埋めてくれます。
また、&lt;code&gt;{変数:08b}&lt;/code&gt;のように数字の前に&lt;code&gt;0&lt;/code&gt;を入れると桁数に足りない分は左側を&lt;code&gt;0&lt;/code&gt;で埋めてくれます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;累乗の演算子&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;aのn乗&lt;/strong&gt;というのを&lt;strong&gt;累乗&lt;/strong&gt;と呼びます。
&lt;strong&gt;aのn乗&lt;/strong&gt;とは、aをn回かけ合わせた結果のことです。&lt;/p&gt;
&lt;p&gt;Pythonには&lt;code&gt;**&lt;/code&gt;という累乗の演算子が用意されているので&lt;strong&gt;aのn乗&lt;/strong&gt;であれば&lt;code&gt;a ** n&lt;/code&gt;のように簡単に演算できます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;演習&#34;&gt;演習&lt;/h2&gt;
&lt;p&gt;それでは実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して、演習を行います。&lt;/p&gt;
&lt;p&gt;コマンドラインから&lt;code&gt;git pull&lt;/code&gt;を実行して&lt;code&gt;mcc1&lt;/code&gt;フォルダに最新のファイルをダウンロードしてください。&lt;/p&gt;
&lt;p&gt;ターミナルのコマンドラインから&lt;code&gt;cd mcc1/code/jupyter&lt;/code&gt;を実行して、&lt;code&gt;jupyter&lt;/code&gt;フォルダに移動し、&lt;code&gt;jupyter notebook&lt;/code&gt;を実行してください。&lt;/p&gt;
&lt;p&gt;すると、ブラウザが起動し、&lt;strong&gt;jupyter&lt;/strong&gt;のホーム画面が表示されます。&lt;/p&gt;
&lt;p&gt;その中から&lt;strong&gt;Python演習ドリル200基礎練習21〜30.ipynb&lt;/strong&gt;をクリックしてください。&lt;/p&gt;
&lt;p&gt;そうすると&lt;strong&gt;Python演習ドリル200基礎練習21〜30&lt;/strong&gt;というタイトルの演習問題が表示されます。&lt;/p&gt;
&lt;p&gt;課題21から課題30までありますので、課題の内容にしたがって、&lt;b&gt;In[]:&lt;/b&gt;の部分にPythonプログラムを書いてください。
書き終わったら、画面上の &lt;b&gt;▶| Run&lt;/b&gt; というアイコンをクリックすると、今書いたPythonプログラムが実行されます。&lt;/p&gt;
&lt;p&gt;出力結果が課題の（実行画面）と一致するか確認してください。&lt;/p&gt;
&lt;p&gt;どうしても正解がわからないときは、&lt;strong&gt;▶プログラム例&lt;/strong&gt; をクリックすると、正解例のPythonプログラムが表示されます。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;今回はPython演習として、繰り返しの続きとビット処理を行いました。&lt;/p&gt;
&lt;p&gt;今後も新しい演習問題を追加していきますので、演習を通じてPythonを学んでいきましょう。&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>レッスン123</title>
      <link>/lessons/lesson123/</link>
      <pubDate>Sat, 22 Aug 2026 14:00:00 +0900</pubDate>
      
      <guid>/lessons/lesson123/</guid>
      <description>Python演習ドリル200 基礎練習11〜20 Pythonプログラムを学び始めた方向けの演習ドリルです。
今回は、基礎練習の11〜20です。
jupyterとjupyter notebook 本演習ではjupyter notebookを使用します。 インストールされているか確認してください。 インストールされていない場合、jupyterとjupyter notebookのインストール方法については、レッスン33を参照してください。
演習前の基礎学習 実際にjupyter notebookを使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。
条件分岐（論理演算子）
複数の条件を組み合わたものを条件とする場合、以下のような論理演算子を使います。
and
条件1 and 条件2で、「条件1かつ条件2」つまり、両方の条件が満たされた時のみ条件が満たされます
or
条件1 or 条件2で、「条件1または条件2」つまり、どちらかの条件を満たされた時、条件が満たされます （両方の条件が満たされていても良い）
not
not 条件1で、条件1が満たされない時、条件が満たされます
xor
条件1 xor 条件2で、「条件1排他的にまたは条件2」つまり、どちらか一方の条件のみ満たされた時に、条件が満たされます （両方の条件が満たされている時や両方とも条件が満たされていないときは、条件は満たされない）
なお、x、y、zが全て等しい場合の条件は、論理演算子を使わず、x == y == zのように書くこともできます。
条件演算子
条件演算子はX if 条件 else Yという1行で、条件が満たされればXの値に、満たされなければYの値になります。 これを使って、条件によって変数に設定する値を変えたり、print関数などの関数の引数の値を変えたりすることができます。
例えば変数xが0以上なら&amp;quot;0以上&amp;quot;、それ以外（0未満）なら&amp;quot;0未満&amp;quot;と表示するprint関数は、条件演算子を使って以下のように記述できます。
print(&amp;#34;0以上&amp;#34; if x &amp;gt;= 0 else &amp;#34;0未満&amp;#34;) このとき文末のコロン（:）は不要です。
ループ（for文）
以下のように所定の回数ループする場合は、for i in range(n):を使い、forの下にインデントで（字下げして）書かれたプログラム文（ブロック）をn回繰り返し、実行します。
for i in range(10): print(&amp;#34;AAA&amp;#34;)	# for文の対象、10回繰り返す print(&amp;#34;BBB&amp;#34;)	# for文の対象、10回繰り返す print(&amp;#34;CCC&amp;#34;)	# for文の対象でない なお、変数iには各ループごとに0から1ずつ加算された値がn-1まで入ります。 range(a, b)とすると各ループごとにaから1ずつ加算された値がiに入り、iの値がb以上になったらループを抜けます。 range(a, b, c)とすると各ループごとにaからcずつ加算された値がiに入り、iの値がb以上になったらループを抜けます。</description>
      <content>&lt;h1 id=&#34;python演習ドリル200-基礎練習1120&#34;&gt;Python演習ドリル200 基礎練習11〜20&lt;/h1&gt;
&lt;p&gt;Pythonプログラムを学び始めた方向けの演習ドリルです。&lt;/p&gt;
&lt;p&gt;今回は、基礎練習の11〜20です。&lt;/p&gt;
&lt;h2 id=&#34;jupyterとjupyter-notebook&#34;&gt;jupyterとjupyter notebook&lt;/h2&gt;
&lt;p&gt;本演習では&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用します。
インストールされているか確認してください。
インストールされていない場合、&lt;strong&gt;jupyter&lt;/strong&gt;と&lt;strong&gt;jupyter notebook&lt;/strong&gt;のインストール方法については、&lt;a href=&#34;https://miura.io/lessons/lesson33&#34;&gt;レッスン33&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;演習前の基礎学習&#34;&gt;演習前の基礎学習&lt;/h2&gt;
&lt;p&gt;実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;条件分岐（論理演算子）&lt;/p&gt;
&lt;p&gt;複数の条件を組み合わたものを条件とする場合、以下のような論理演算子を使います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;and&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;条件1 and 条件2&lt;/code&gt;で、「条件1かつ条件2」つまり、両方の条件が満たされた時のみ条件が満たされます&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;or&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;条件1 or 条件2&lt;/code&gt;で、「条件1または条件2」つまり、どちらかの条件を満たされた時、条件が満たされます
（両方の条件が満たされていても良い）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;not&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;not 条件1&lt;/code&gt;で、条件1が満たされない時、条件が満たされます&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;xor&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;条件1 xor 条件2&lt;/code&gt;で、「条件1排他的にまたは条件2」つまり、どちらか一方の条件のみ満たされた時に、条件が満たされます
（両方の条件が満たされている時や両方とも条件が満たされていないときは、条件は満たされない）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なお、&lt;code&gt;x&lt;/code&gt;、&lt;code&gt;y&lt;/code&gt;、&lt;code&gt;z&lt;/code&gt;が全て等しい場合の条件は、論理演算子を使わず、&lt;code&gt;x == y == z&lt;/code&gt;のように書くこともできます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;条件演算子&lt;/p&gt;
&lt;p&gt;条件演算子は&lt;code&gt;X if 条件 else Y&lt;/code&gt;という1行で、条件が満たされればXの値に、満たされなければYの値になります。
これを使って、条件によって変数に設定する値を変えたり、print関数などの関数の引数の値を変えたりすることができます。&lt;/p&gt;
&lt;p&gt;例えば変数&lt;code&gt;x&lt;/code&gt;が&lt;code&gt;0以上&lt;/code&gt;なら&lt;code&gt;&amp;quot;0以上&amp;quot;&lt;/code&gt;、それ以外（&lt;code&gt;0未満&lt;/code&gt;）なら&lt;code&gt;&amp;quot;0未満&amp;quot;&lt;/code&gt;と表示する&lt;code&gt;print&lt;/code&gt;関数は、条件演算子を使って以下のように記述できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0以上&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0未満&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このとき文末のコロン（:）は不要です。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ループ（&lt;code&gt;for&lt;/code&gt;文）&lt;/p&gt;
&lt;p&gt;以下のように所定の回数ループする場合は、&lt;code&gt;for i in range(n):&lt;/code&gt;を使い、&lt;code&gt;for&lt;/code&gt;の下にインデントで（字下げして）書かれたプログラム文（ブロック）を&lt;code&gt;n&lt;/code&gt;回繰り返し、実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AAA&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# for文の対象、10回繰り返す&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;BBB&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# for文の対象、10回繰り返す&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;CCC&amp;#34;&lt;/span&gt;)			&lt;span style=&#34;color:#75715e&#34;&gt;# for文の対象でない&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なお、変数&lt;code&gt;i&lt;/code&gt;には各ループごとに&lt;code&gt;0&lt;/code&gt;から&lt;code&gt;1&lt;/code&gt;ずつ加算された値が&lt;code&gt;n-1&lt;/code&gt;まで入ります。
&lt;code&gt;range(a, b)&lt;/code&gt;とすると各ループごとに&lt;code&gt;a&lt;/code&gt;から&lt;code&gt;1&lt;/code&gt;ずつ加算された値が&lt;code&gt;i&lt;/code&gt;に入り、&lt;code&gt;i&lt;/code&gt;の値が&lt;code&gt;b&lt;/code&gt;以上になったらループを抜けます。
&lt;code&gt;range(a, b, c)&lt;/code&gt;とすると各ループごとに&lt;code&gt;a&lt;/code&gt;から&lt;code&gt;c&lt;/code&gt;ずつ加算された値が&lt;code&gt;i&lt;/code&gt;に入り、&lt;code&gt;i&lt;/code&gt;の値が&lt;code&gt;b&lt;/code&gt;以上になったらループを抜けます。&lt;/p&gt;
&lt;p&gt;結果として&lt;code&gt;range(a, b)&lt;/code&gt;とすると変数&lt;code&gt;i&lt;/code&gt;には順に&lt;code&gt;a, a+1, a+2, ..., b-1&lt;/code&gt;の値が入り、ループ処理が行われます。（最後の値が&lt;code&gt;b&lt;/code&gt;でないことに注意してください）&lt;/p&gt;
&lt;p&gt;変数&lt;code&gt;i&lt;/code&gt;の値を使用しない場合は&lt;code&gt;for _ in range(n):&lt;/code&gt;のように変数名を&lt;code&gt;_&lt;/code&gt;にして、変数を使用しないようにすることができます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;c&lt;/code&gt;には負の値を入れることもできます。
その場合、変数&lt;code&gt;i&lt;/code&gt;には最初に&lt;code&gt;a&lt;/code&gt;の値が入り、次に&lt;code&gt;a+c&lt;/code&gt;（cが負なのでaより小さい値）が入り、&lt;code&gt;i&lt;/code&gt;の値が&lt;code&gt;c&lt;/code&gt;以下になったら、ループを終了します。&lt;/p&gt;
&lt;p&gt;結果として&lt;code&gt;range(a, b, -1)&lt;/code&gt;とすると変数&lt;code&gt;i&lt;/code&gt;には順に&lt;code&gt;a, a-1, a-2, ..., b+1&lt;/code&gt;の値が入り、ループ処理が行われます。（最後の値が&lt;code&gt;b&lt;/code&gt;でないことに注意してください）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ループ（&lt;code&gt;while&lt;/code&gt;文）&lt;/p&gt;
&lt;p&gt;以下のように、ある条件が満たされている間ループする場合は、&lt;code&gt;while 条件:&lt;/code&gt;を使い、&lt;code&gt;while&lt;/code&gt;の下にインデントで（字下げして）書かれたプログラムを&lt;code&gt;条件&lt;/code&gt;が満たされるまで繰り返し実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:			&lt;span style=&#34;color:#75715e&#34;&gt;# xが0より大きい間繰り返す&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AAA&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# while文の対象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	x &lt;span style=&#34;color:#f92672&#34;&gt;-=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;				&lt;span style=&#34;color:#75715e&#34;&gt;# while文の対象、xを1つずつ減らす&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;BBB&amp;#34;&lt;/span&gt;)			&lt;span style=&#34;color:#75715e&#34;&gt;# while文の対象でない&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ループ処理の中で条件が満たされなくならないと&lt;strong&gt;無限ループ&lt;/strong&gt;といってループを無限に繰り返し、プログラムが終わらなくなってしまいます。
例えば上記プログラムで&lt;code&gt;x -= 1&lt;/code&gt;の代わりに&lt;code&gt;x += 1&lt;/code&gt;とすると、xはいくら立っても&lt;code&gt;x &amp;gt; 0&lt;/code&gt;のままなので、&lt;strong&gt;無限ループ&lt;/strong&gt;になってしまいます。&lt;/p&gt;
&lt;p&gt;条件に&lt;code&gt;True&lt;/code&gt;を指定して、意図的に&lt;strong&gt;無限ループ&lt;/strong&gt;を繰り返させることもあります。
もちろん、このままだとプログラムが終わらなくなってしまうので、ループの中に&lt;code&gt;break&lt;/code&gt;を指定してこのループから抜けさせます。&lt;/p&gt;
&lt;p&gt;また、ループの途中で&lt;code&gt;continue&lt;/code&gt;を指定すると、ループの途中で処理を中断して、ループの先頭に戻り、次のループを続けさせることができます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;:	&lt;span style=&#34;color:#75715e&#34;&gt;# 無限ループ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; int(input(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;正の値を入れてください&amp;#34;&lt;/span&gt;))	&lt;span style=&#34;color:#75715e&#34;&gt;# キーボードから数値を入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:		&lt;span style=&#34;color:#75715e&#34;&gt;# 値が正だったら&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;# ループから抜ける&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:	&lt;span style=&#34;color:#75715e&#34;&gt;# 値が0だったら&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;# ループの先頭に戻って処理を続ける&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;負の値が入力されました&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# メッセージを出力してループの先頭に戻る&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(i)	&lt;span style=&#34;color:#75715e&#34;&gt;# breakでループから抜けた後の処理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なお、&lt;code&gt;break&lt;/code&gt;と&lt;code&gt;continue&lt;/code&gt;は&lt;code&gt;for&lt;/code&gt;文でも使用することができます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;その他&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;配列&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[値1, 値2..., 値n]&lt;/code&gt;という記述で、n個の値をまとめて&lt;strong&gt;配列&lt;/strong&gt;を作ることができます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配列&lt;/strong&gt;を&lt;code&gt;print&lt;/code&gt;関数で表示すると&lt;code&gt;[値1, 値2..., 値n]&lt;/code&gt;のように出力されます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配列&lt;/strong&gt;の各値は0から始まるインデックスを使って&lt;code&gt;配列[0]&lt;/code&gt;、&lt;code&gt;配列[1]&lt;/code&gt;、&amp;hellip; &lt;code&gt;配列[n-1]&lt;/code&gt;のようにして値を取り出したり、値を変更したりすることができます。&lt;/p&gt;
&lt;p&gt;なお、&lt;strong&gt;配列&lt;/strong&gt;の要素を全て取り出す場合、&lt;code&gt;変数1, 変数2, ... 変数n = 配列&lt;/code&gt;のようにして変数に直接入れて取り出すこともできます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配列&lt;/strong&gt;に対して、以下のようないろいろな関数で計算ができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sum(配列)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;配列の総和を返す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;min(配列)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;配列の最小値を返す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;max(配列)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;配列の最大値を返す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;mean(配列)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;配列の平均値を返す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sorted(配列)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;昇順（小さい順）にソートした配列を返す&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sorted(配列, reversed=True)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;降順（大きい順）にソートした配列を返す&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ランダム&lt;/p&gt;
&lt;p&gt;プログラムの先頭で&lt;code&gt;import random&lt;/code&gt;を宣言し、&lt;code&gt;random.ranbint(x, y)&lt;/code&gt;を実行すると、x〜yの数値をランダムに返します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;スリープ&lt;/p&gt;
&lt;p&gt;プログラムの先頭で&lt;code&gt;import time&lt;/code&gt;を宣言し、&lt;code&gt;time.sleep(秒)&lt;/code&gt;を実行すると、指定の秒数処理を待ってから処理が続けられます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;演習&#34;&gt;演習&lt;/h2&gt;
&lt;p&gt;それでは実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して、演習を行います。&lt;/p&gt;
&lt;p&gt;コマンドラインから&lt;code&gt;git pull&lt;/code&gt;を実行して&lt;code&gt;mcc1&lt;/code&gt;フォルダに最新のファイルをダウンロードしてください。&lt;/p&gt;
&lt;p&gt;ターミナルのコマンドラインから&lt;code&gt;cd mcc1/code/jupyter&lt;/code&gt;を実行して、&lt;code&gt;jupyter&lt;/code&gt;フォルダに移動し、&lt;code&gt;jupyter notebook&lt;/code&gt;を実行してください。&lt;/p&gt;
&lt;p&gt;すると、ブラウザが起動し、&lt;strong&gt;jupyter&lt;/strong&gt;のホーム画面が表示されます。&lt;/p&gt;
&lt;p&gt;その中から&lt;strong&gt;Python演習ドリル200基礎練習11〜20.ipynb&lt;/strong&gt;をクリックしてください。&lt;/p&gt;
&lt;p&gt;そうすると&lt;strong&gt;Python演習ドリル200基礎練習11〜20&lt;/strong&gt;というタイトルの演習問題が表示されます。&lt;/p&gt;
&lt;p&gt;課題11から課題20までありますので、課題の内容にしたがって、&lt;b&gt;In[]:&lt;/b&gt;の部分にPythonプログラムを書いてください。
書き終わったら、画面上の &lt;b&gt;▶| Run&lt;/b&gt; というアイコンをクリックすると、今書いたPythonプログラムが実行されます。&lt;/p&gt;
&lt;p&gt;出力結果が課題の（実行画面）と一致するか確認してください。&lt;/p&gt;
&lt;p&gt;どうしても正解がわからないときは、&lt;strong&gt;▶プログラム例&lt;/strong&gt; をクリックすると、正解例のPythonプログラムが表示されます。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;今回はPython演習として、条件分岐と繰り返し処理の演習を行いました。&lt;/p&gt;
&lt;p&gt;今後も新しい演習問題を追加していきますので、演習を通じてPythonを学んでいきましょう。&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>レッスン122</title>
      <link>/lessons/lesson122/</link>
      <pubDate>Sat, 22 Aug 2026 09:00:00 +0900</pubDate>
      
      <guid>/lessons/lesson122/</guid>
      <description>Python演習ドリル200 基礎練習1〜10 Pythonプログラムを学び始めた方向けの演習ドリルです。
まずは、基礎練習の1〜10から始めましょう。
jupyterとjupyter notebook print(ord(&amp;ldquo;0&amp;rdquo;)) 本演習ではjupyter notebookを使用します。 インストールされているか確認してください。 インストールされていない場合、jupyterとjupyter notebookのインストール方法については、レッスン33を参照してください。
演習前の基礎学習 実際にjupyter notebookを使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。
画面への出力(print関数)
Pythonで画面に文字列や数値を出力するにはprint関数を使用します。
print(&amp;quot;文字列&amp;quot;)を実行すれば改行付きで文字列が出力されます。
引数で、end=&amp;quot;XX&amp;quot;を指定すると、改行の代わりに文字列の末尾にXXが付いて出力されます。 end=&amp;quot;&amp;quot;（空文字列）を指定すれば、文字列の末尾は改行されず、何も付与されないで文字列だけが出力されます。
print(変数)を実行すれば、変数の値が出力されます。変数が数値の場合は、数値が出力されます。 配列の場合は[要素1, 要素2,...]のように全体が[]でくくられ、各要素がカンマ(,)で区切られて出力されます。
print(変数1, 変数2)のように「,」で区切って複数の変数を指定すると、各変数の値はスペース区切りで出力されます。
引数で、sep=&amp;quot;XX&amp;quot;を指定すると、スペース区切りの代わりにXX区切りで出力されます。 改行区切りにしたければsep=&amp;quot;\n&amp;quot;を指定し、区切りなしで（くっつけて）出力したい場合はsep=&amp;quot;&amp;quot;を指定します。
文字列の中に変数の値を入れて出力したい場合はf文字列を使用します。 f&amp;quot;文字列1{変数}文字列2&amp;quot;のように記述して、文字列の中に{変数}を埋め込むことができます。 {変数}の部分には変数だけでなく、関数や式も記述することができます。
キーボードからの入力(input関数）と数値変換
Pythonでキーボードから文字列や数値を入力するのはinput関数を使用します。
s = input()のようにすれば、画面に何も出力されずに入力待ちになり、文字列や数値を入れて改行すると改行抜きで文字列が変数sに入ります。
入力時に画面に文字列を表示したい場合はs = input(&amp;quot;文字列&amp;quot;)のように引数として文字列を入れます。 文字列の代わりに先ほど説明したf文字列を使用することもできます。
input()の戻り値は常に文字列です。 数値に変換したい場合はint(&amp;quot;文字列&amp;quot;)関数（整数値）、float(&amp;quot;文字列&amp;quot;)関数（実数値、小数点のある値）で変換を行う必要があります。
int関数では10進数の文字列を整数に変換します。 10進数の値を2, 8, 16進数の文字列に変換するには、それぞれbin(),oct(),hex()という関数を使用します。 これら2, 8, 16進数の文字列には先頭にそれぞれ0b、0o、0xという進数を識別する文字列が付きます。
条件分岐（if,ifelse,else）
入力した値によって処理を分けたい場合はif,ifelse,elseという条件式を使用します。
例えばxの値が0以上のときだけ表示したい場合は、以下のように記述します。
if x &amp;gt;= 0:	# 行の末尾に「:」を忘れずに付けること print(x)	# インデントで字下げをすること 加えて、0以上以外のときに「マイナス」と表示するようにしたい場合は、以下のように記述します。
if x &amp;gt;= 0: print(x) else:	# 上記の条件以外 print(&amp;#34;マイナス&amp;#34;) xが0より大きければ「プラス」、0より小さければ「マイナス」、それ以外（0）なら「ゼロ」と表示するようにしたい場合は、以下のように記述します。</description>
      <content>&lt;h1 id=&#34;python演習ドリル200-基礎練習110&#34;&gt;Python演習ドリル200 基礎練習1〜10&lt;/h1&gt;
&lt;p&gt;Pythonプログラムを学び始めた方向けの演習ドリルです。&lt;/p&gt;
&lt;p&gt;まずは、基礎練習の1〜10から始めましょう。&lt;/p&gt;
&lt;h2 id=&#34;jupyterとjupyter-notebook&#34;&gt;jupyterとjupyter notebook&lt;/h2&gt;
&lt;p&gt;print(ord(&amp;ldquo;0&amp;rdquo;))
本演習では&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用します。
インストールされているか確認してください。
インストールされていない場合、&lt;strong&gt;jupyter&lt;/strong&gt;と&lt;strong&gt;jupyter notebook&lt;/strong&gt;のインストール方法については、&lt;a href=&#34;https://miura.io/lessons/lesson33&#34;&gt;レッスン33&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id=&#34;演習前の基礎学習&#34;&gt;演習前の基礎学習&lt;/h2&gt;
&lt;p&gt;実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;画面への出力(&lt;code&gt;print&lt;/code&gt;関数)&lt;/p&gt;
&lt;p&gt;Pythonで画面に文字列や数値を出力するには&lt;code&gt;print&lt;/code&gt;関数を使用します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;print(&amp;quot;文字列&amp;quot;)&lt;/code&gt;を実行すれば&lt;strong&gt;改行付き&lt;/strong&gt;で文字列が出力されます。&lt;/p&gt;
&lt;p&gt;引数で、&lt;code&gt;end=&amp;quot;XX&amp;quot;&lt;/code&gt;を指定すると、改行の代わりに文字列の末尾にXXが付いて出力されます。
&lt;code&gt;end=&amp;quot;&amp;quot;&lt;/code&gt;（空文字列）を指定すれば、文字列の末尾は&lt;strong&gt;改行されず&lt;/strong&gt;、何も付与されないで文字列だけが出力されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;print(変数)&lt;/code&gt;を実行すれば、変数の値が出力されます。変数が数値の場合は、数値が出力されます。
配列の場合は&lt;code&gt;[要素1, 要素2,...]&lt;/code&gt;のように全体が&lt;code&gt;[]&lt;/code&gt;でくくられ、各要素がカンマ(,)で区切られて出力されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;print(変数1, 変数2)&lt;/code&gt;のように「,」で区切って複数の変数を指定すると、各変数の値は&lt;strong&gt;スペース区切り&lt;/strong&gt;で出力されます。&lt;/p&gt;
&lt;p&gt;引数で、&lt;code&gt;sep=&amp;quot;XX&amp;quot;&lt;/code&gt;を指定すると、&lt;strong&gt;スペース区切り&lt;/strong&gt;の代わりに&lt;strong&gt;XX区切り&lt;/strong&gt;で出力されます。
&lt;strong&gt;改行区切り&lt;/strong&gt;にしたければ&lt;code&gt;sep=&amp;quot;\n&amp;quot;&lt;/code&gt;を指定し、&lt;strong&gt;区切りなし&lt;/strong&gt;で（くっつけて）出力したい場合は&lt;code&gt;sep=&amp;quot;&amp;quot;&lt;/code&gt;を指定します。&lt;/p&gt;
&lt;p&gt;文字列の中に変数の値を入れて出力したい場合は&lt;strong&gt;f文字列&lt;/strong&gt;を使用します。
&lt;code&gt;f&amp;quot;文字列1{変数}文字列2&amp;quot;&lt;/code&gt;のように記述して、文字列の中に{変数}を埋め込むことができます。
{変数}の部分には変数だけでなく、関数や式も記述することができます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;キーボードからの入力(&lt;code&gt;input&lt;/code&gt;関数）と数値変換&lt;/p&gt;
&lt;p&gt;Pythonでキーボードから文字列や数値を入力するのは&lt;code&gt;input&lt;/code&gt;関数を使用します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;s = input()&lt;/code&gt;のようにすれば、&lt;strong&gt;画面に何も出力されずに&lt;/strong&gt;入力待ちになり、文字列や数値を入れて改行すると&lt;strong&gt;改行&lt;/strong&gt;抜きで&lt;strong&gt;文字列&lt;/strong&gt;が変数&lt;code&gt;s&lt;/code&gt;に入ります。&lt;/p&gt;
&lt;p&gt;入力時に画面に文字列を表示したい場合は&lt;code&gt;s = input(&amp;quot;文字列&amp;quot;)&lt;/code&gt;のように引数として文字列を入れます。
文字列の代わりに先ほど説明した&lt;strong&gt;f文字列&lt;/strong&gt;を使用することもできます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;input()&lt;/code&gt;の戻り値は常に&lt;strong&gt;文字列&lt;/strong&gt;です。
数値に変換したい場合は&lt;code&gt;int(&amp;quot;文字列&amp;quot;)&lt;/code&gt;関数（整数値）、&lt;code&gt;float(&amp;quot;文字列&amp;quot;)&lt;/code&gt;関数（実数値、小数点のある値）で変換を行う必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;int&lt;/code&gt;関数では&lt;strong&gt;10進数&lt;/strong&gt;の文字列を整数に変換します。
&lt;strong&gt;10進数&lt;/strong&gt;の値を2, 8, 16進数の文字列に変換するには、それぞれ&lt;code&gt;bin()&lt;/code&gt;,&lt;code&gt;oct()&lt;/code&gt;,&lt;code&gt;hex()&lt;/code&gt;という関数を使用します。
これら2, 8, 16進数の文字列には先頭にそれぞれ&lt;code&gt;0b&lt;/code&gt;、&lt;code&gt;0o&lt;/code&gt;、&lt;code&gt;0x&lt;/code&gt;という進数を識別する文字列が付きます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;条件分岐（&lt;code&gt;if&lt;/code&gt;,&lt;code&gt;ifelse&lt;/code&gt;,&lt;code&gt;else&lt;/code&gt;）&lt;/p&gt;
&lt;p&gt;入力した値によって処理を分けたい場合は&lt;code&gt;if&lt;/code&gt;,&lt;code&gt;ifelse&lt;/code&gt;,&lt;code&gt;else&lt;/code&gt;という条件式を使用します。&lt;/p&gt;
&lt;p&gt;例えば&lt;code&gt;x&lt;/code&gt;の値が&lt;code&gt;0以上&lt;/code&gt;のときだけ表示したい場合は、以下のように記述します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:		&lt;span style=&#34;color:#75715e&#34;&gt;# 行の末尾に「:」を忘れずに付けること&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(x)	&lt;span style=&#34;color:#75715e&#34;&gt;# インデントで字下げをすること&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;加えて、&lt;code&gt;0以上&lt;/code&gt;以外のときに「マイナス」と表示するようにしたい場合は、以下のように記述します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(x)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:		&lt;span style=&#34;color:#75715e&#34;&gt;# 上記の条件以外&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;マイナス&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;x&lt;/code&gt;が&lt;code&gt;0&lt;/code&gt;より大きければ「プラス」、&lt;code&gt;0&lt;/code&gt;より小さければ「マイナス」、それ以外（0）なら「ゼロ」と表示するようにしたい場合は、以下のように記述します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:		&lt;span style=&#34;color:#75715e&#34;&gt;# 条件１&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;プラス&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:	&lt;span style=&#34;color:#75715e&#34;&gt;# 条件１以外で条件２&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;マイナス&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:		&lt;span style=&#34;color:#75715e&#34;&gt;# それ以外（条件１でも条件２でもない）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ゼロ&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;elif&lt;/code&gt;は&lt;code&gt;else if&lt;/code&gt;という意味で、1つ前の&lt;code&gt;if&lt;/code&gt;（あるいは&lt;code&gt;elif&lt;/code&gt;）の条件が満たされない場合のみ、処理されます。
例えば以下のような条件の場合、&lt;code&gt;x&lt;/code&gt;が&lt;code&gt;10&lt;/code&gt;であれば&lt;code&gt;elif&lt;/code&gt;の条件を満たしていますが、先に&lt;code&gt;if&lt;/code&gt;の条件も満たしているので、先の&lt;code&gt;if&lt;/code&gt;の方が処理され、&lt;code&gt;elif&lt;/code&gt;は処理されません。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;xは5以上&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;elif&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;xは0以上&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;xは0未満&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;他のプログラミング言語では一般的に文を&lt;code&gt;{...}&lt;/code&gt;で囲むことでブロック（複文）を構成しますが、Pythonでは&lt;strong&gt;インデント&lt;/strong&gt;（行頭の空白文字の数）が重要な意味を持ち、同じ数の空白やタブ文字で&lt;strong&gt;インデント&lt;/strong&gt;された文がブロックとみなされます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; a &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AAA&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# if文の対象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;BBB&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# if文の対象&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;CCC&amp;#34;&lt;/span&gt;)			&lt;span style=&#34;color:#75715e&#34;&gt;# if文の対象ではない&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;インデント&lt;/strong&gt;は通常4個の空白文字を使用します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; a &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AAA&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# 4個の空白文字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インデントにタブ文字(tab)を用いる場合、半角スペースを用いるか、タブ文字を用いるか統一が必要です。
統一されていない場合、インデントエラーが発生することがあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; a &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;AAA&amp;#34;&lt;/span&gt;)		&lt;span style=&#34;color:#75715e&#34;&gt;# この行は半角4個のインデントなのに&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;BBB&amp;#34;&lt;/span&gt;)	&lt;span style=&#34;color:#75715e&#34;&gt;# この行はタブ1個のインデントなので見た目は一緒でも空白文字の数が違うのでインデントエラーになる&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;エディターによってはタブを自動的に半角スペース4個に置き換える機能もあるので、このような機能を使用すれば、タブと半角スペースの共存によるエラーを防ぐことができます。&lt;/p&gt;
&lt;p&gt;また、&lt;code&gt;if&lt;/code&gt;、&lt;code&gt;ifelse&lt;/code&gt;、&lt;code&gt;else&lt;/code&gt;などの文の行末には「:」を付けるのを忘れないでください。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;演習&#34;&gt;演習&lt;/h2&gt;
&lt;p&gt;それでは実際に&lt;strong&gt;jupyter notebook&lt;/strong&gt;を使用して、演習を行います。&lt;/p&gt;
&lt;p&gt;コマンドラインから&lt;code&gt;git pull&lt;/code&gt;を実行して&lt;code&gt;mcc1&lt;/code&gt;フォルダに最新のファイルをダウンロードしてください。&lt;/p&gt;
&lt;p&gt;ターミナルのコマンドラインから&lt;code&gt;cd mcc1/code/jupyter&lt;/code&gt;を実行して、&lt;code&gt;jupyter&lt;/code&gt;フォルダに移動し、&lt;code&gt;jupyter notebook&lt;/code&gt;を実行してください。&lt;/p&gt;
&lt;p&gt;すると、ブラウザが起動し、&lt;strong&gt;jupyter&lt;/strong&gt;のホーム画面が表示されます。&lt;/p&gt;
&lt;p&gt;その中から&lt;strong&gt;Python演習ドリル200基礎練習1〜10.ipynb&lt;/strong&gt;をクリックしてください。&lt;/p&gt;
&lt;p&gt;そうすると&lt;strong&gt;Python演習ドリル200基礎練習1〜10&lt;/strong&gt;というタイトルの演習問題が表示されます。&lt;/p&gt;
&lt;p&gt;課題1から課題10までありますので、課題の内容にしたがって、&lt;b&gt;In[]:&lt;/b&gt;の部分にPythonプログラムを書いてください。
書き終わったら、画面上の &lt;b&gt;▶| Run&lt;/b&gt; というアイコンをクリックすると、今書いたPythonプログラムが実行されます。&lt;/p&gt;
&lt;p&gt;出力結果が課題の（実行画面）と一致するか確認してください。&lt;/p&gt;
&lt;p&gt;どうしても正解がわからないときは、&lt;strong&gt;▶プログラム例&lt;/strong&gt; をクリックすると、正解例のPythonプログラムが表示されます。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;p&gt;今回はPython演習として、入出力と条件分岐の演習を行いました。&lt;/p&gt;
&lt;p&gt;今後も新しい演習問題を追加していきますので、演習を通じてPythonを学んでいきましょう。&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
