paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

Python初心者のためのプログラミング学習入門!基本文法や作れるものを徹底解説

f:id:paiza:20200523142828j:plain
Pythonを使ってみたいが、何から始めればいいのか、そもそもPythonで何ができるのかわからない、という初心者の方は多いです。そこで今回は、初心者の方向けの文法や活用方法をご紹介します。この記事から、Pythonを使いこなすための第一歩を踏み出しましょう。

Pythonはプログラミング初心者向け!

なぜ、Pythonは初心者向けなのか?

Pythonのプログラミングが初心者向けと言われている理由は、C言語などと比較すると非常にシンプルでわかりやすく、少ないコードで記述できるからです。また、文法がシンプルなので初心者でも読みやすいこともおすすめの理由となっています。

Pythonで作れるものとは?

Pythonで作れるものとして、一番有名なものは「AI・機械学習」で、 Google・Facebookなどの有名企業が「AI・機械学習」のフレームワークをPythonで作っています。理由が知りたい方は、Pythonが機械学習やディープラーニングで使われる理由がまとめられている記事があるのでご覧ください。それ以外にも、Pythonで作れる・できるものがさまざまあるので、代表的なものを下記にまとめます。

paiza.hatenablog.com

Pythonで作れる・できるもの
  • 業務自動化
  • データ分析
  • Webスクレイピング
  • Webアプリ
  • AI・機械学習

本記事を読んで、できるものは?

Pythonのプログラミング初心者が心掛けることは、「作るものを決めて、勉強すること」です。本記事では例として、「空ファイル作成の業務自動化」を実装します。また、本文の流れとしては、「空ファイル作成」に必要な基本構文を説明したのち、サンプルコードを記載します。

Pythonで空ファイルの作成を自動化しよう(基本文法編)

Pythonのコメント

Pythonのプログラミングでは、文頭に「#」をつけることでコード中にコメントを書くことができます。 コメント扱いされた文は実行されないので、後にコードを見直したときにわかりやすくできることがメリットです。コメントを書くことは、他人が見てもわかるコードを作ることの第一歩になります。

# この行はコメントです. 
# print("コメントです") 
print("Hello, World") 
print("Not, Comment") 
# 実行結果 
# Hello, World 
# Not, Comment

Pythonの文字列

文字列とは「"」または、「'」で囲まれた文字で、「'」「"」で囲んでいないと、コードが動かなくなります。また、「'''」で囲むと、改行されても文字列として認識してくれます。

print('Hello, World') 
print("Hello, World") 
print(''' 
Hello, World 

Hello, World''')
 
# 実行結果 
# Hello, World 
# Hello, World 
# 
# Hello, World 
# 
# Hello, World

Pythonの数値

「"」「'」で囲まず数字を打ち込むと、それは「数値」として扱われ、 「+」「-」等を使うことで四則演算ができるようになります。また、Pythonでは「×」「÷」は「*」「/」で記述します。ただし、「"」「'」で囲むと、数字は文字列と扱われ文字列の数字は四則演算されません。

print(42) 
print(42 + 21) # 足し算 
print(42 - 21) # 引き算 
print(42 * 2 ) # かけ算 
print(42 / 21) # 割り算 
print('42 + 21') # 文字列 

# 実行結果 
# 42 
# 63 
# 21 
# 84 
# 2.0 
# 42 + 21

Pythonの変数

変数とは、処理の中で繰り返し使用したり、あとから参照したい数値や文字列を格納したりするために用いられます。ある変数の値を別の変数に代入した場合、値はコピーされますが、異なるものとしてそれぞれの変数で保持されます。また、Pythonでは変数は大文字と小文字でも区別され、変数名が長いときは「_」で区切ると読みやすいです。

text = "text" 
Text = "Text" 
print(text) 
print(Text) 

# 変数名が長い時 
helloworldmessage = "Hello, World" 
hello_world_message = "Hello, World" 
print(helloworldmessage) 
print(hello_world_message) 

# 実行結果 
# text 
# Text 
# Hello, World 
# Hello, World

Pythonのリスト型

リスト型はPythonでは頻繁に使用され、非常に大切な型になります。変数は1つの数値や文字列しか格納できませんが、リスト型は複数の数値・文字列を格納でき、Pythonでは複数のデータを管理したい場合に使います。listは「配列名=["a","b","c"]」という形式で使用できます。
ただし、リストの中身は左から数え始め、最初は1ではなく0から数えます。このリストの順番のことをインデックスと呼び、text_list[0]などリストのインデックスを指定することで、リスト内の数値・文字列を出力できます。

text_list = ["a", "b", "c", "d", "e", "f"] 
print(text_list) 
print(text_list[0]) 
print(text_list[5]) 
# 実行結果 
# ['a', 'b', 'c', 'd', 'e', 'f'] 
# a 
# f

Pythonのfor文

for文は、リストに格納されている数値・文字列を順番に処理していくことです。下記のコードでは、「text_list」を左から「text」という変数にいれて、print(text)で出力するという繰り返し作業をしてます。
for文はさまざまな書き方があり、for文を入れ子のようにして複雑なループにしたり、後述のif文と組み合わせたりすることもよくあります。最初からすべて把握するのは大変なので、実際にコードを書くときや他の人のコードを見たときに、コードを書くときや他人のコードを見たときに逐次検索していくことをおすすめします。

text_list = ["a", "b", "c", "d", "e", "f"] 

for text in text_list:
   print(text) 

# 実行結果 
# a 
# b 
# c 
# d 
# e 
# f


下記のサンプルコードでは使っていませんが、for文ではrange()関数を用いることで、特定の回数分の繰り返し作業することもできます。

# range(6): 0から5までの連番のリストを返す 
# range(2,6): 2から5までの連番のリストを返す 

text_list = ["a", "b", "c", "d", "e", "f"] f

or i in range(6):
   print(text_list[i]) 

# 実行結果 
# a 
# b 
# c 
# d 
# e 
# f

またfor文では、特定の数値を繰り返し足し算したい場合は、下記のような特殊な書き方をします。

a = 0 
b = 0 
for i in range(3):
   a += 1
   print(a)
   b += 2
   print(b) 

# 実行結果 
# 1 
# 2 
# 2 
# 4 
# 3 
# 6

Pythonのif文

Pythonではある条件に当てはまるかどうかによって異なる処理をしたい場合があり、if文を用いることで、条件によって処理を分岐させることができます。
「if 条件文」という書き方が基本で、条件文がTrueになれば(満たされていれば)実行されます。 下記では、「iが5以下か否」という処理を分岐させています。また、否定文でif文を作りたい場合は「if not 条件文」とすることで、条件を満たさない場合の処理を出力させることができます。

for i in range(10):
   # 5以下
   if i <= 5:
     print(i <= 5)
     print("5以下:", i) 

for i in range(10):
   # 5以下
   if not i <= 5:
     print(i <= 5)
     print("5以上:", i) 
# 実行結果 
# True 
# 5以下: 0 
# True 
# 5以下: 1 
# True 
# 5以下: 2 
# True 
# 5以下: 3 
# True 
# 5以下: 4 
# True 
# 5以下: 5 
# False 
# 5以上: 6 
# False 
# 5以上: 7 
# False 
# 5以上: 8 
# False 
# 5以上: 9

複数の条件分岐を記載する場合は、「elif」と「else」を使います。「elif」は前述のif条件以外の条件を作成し、前述のif条件・elif条件に当てはまらないときの処理を実行します。下記では、「iが5未満」・「iが5以上・8以下」・「それ以外」で処理を分岐させています。

for i in range(10):
   # 5以下
   if i < 5:
     print("5未満:", i)
   elif i <= 8:
     print("8以下:", i)
   else:
     print("それ以外:", i) 
# 実行結果 
# 5未満: 0 
# 5未満: 1 
# 5未満: 2 
# 5未満: 3 
# 5未満: 4 
# 8以下: 5 
# 8以下: 6 
# 8以下: 7 
# 8以下: 8 
# それ以外: 9

Pythonで空ファイルの作成を自動化しよう(ライブラリ編)

ライブラリとは?

ライブラリは、ある程度整理された処理を、他のプログラムから読み込むことで使用できるようにしたファイルです。Pythonでは、このライブラリをインポートしてコードを書いていきます。また、このライブラリが豊富なこともPythonが初心者向きな理由で、基本的に「import ライブラリ名」で使用できます。

osとは?

osは、単純なファイルの読み書きなどが操作できるライブラリです。 本記事では、空のフォルダを作成するために使用し、 下記のコードでインポートします。

# import ライブラリ名 
import os

Pythonで空ファイルの作成を自動化しよう(サンプルコード編)

「空フォルダの作成」のサンプルコードを書き、プログラムを実行します。 本記事では、山手線の駅名の空フォルダを作成します。

Pythonのライブラリ

繰り返しになりますが、下記のコードでライブラリをインポートします。

import os

Pythonのリストの作成

山手線の駅名の空フォルダを作るために、山手線の駅名のリストを作成します。

station_list = ['大崎', '五反田', '目黒', '恵比寿', '渋谷', '原宿', '代々木', '新宿', 
'新大久保', '高田馬場', '目白', '池袋', '大塚', '巣鴨', '駒込', 
'田端', '西日暮里', '日暮里', '鶯谷', '上野', '御徒町', '秋葉原', '神田', 
'東京', '有楽町', '新橋', '浜松町', '田町', '高輪ゲートウェイ', '品川'] 
print(station_list) 
# ['大崎', '五反田', '目黒', '恵比寿', ・・・・, '田町', '高輪ゲートウェイ', '品川']

Pythonのfor文

山手線の駅名のリストで繰り返し作業ができるfor文を下記に示します。

for station_name in station_list:
   print(station_name)

Pythonのif文

次に、「作成したいフォルダがない場合」を条件とし、空フォルダの作成をします。また、順番の入れ替えが楽なため、ここでのフォルダ名は「2桁数字_駅名」としています。 フォルダの操作などの処理については、下記の通りです。

フォルダの操作等の処理
  • フォルダがあるか否か:「os.path.exists(フォルダ名)」
  • 空フォルダを作成:「os.mkdir(フォルダ名)」
  • 2桁数字(2桁のゼロ埋め):str(数値).zfill(2)
idx = 0 
station_name = '大崎' 
folder_name = str(idx).zfill(2) + '_' + station_name 
if not os.path.exists(folder_name):
   os.mkdir(folder_name)
   print("make folder : " + folder_name) 
# 実行結果 
# make folder : 00_大崎

コード全体

これまでの処理を1つに整理すると、下記の通りです。 下記のコードを実行すると、30個の空フォルダが一瞬で作成できます。

# 空ファイルの作成 
import os 

station_list = ['大崎', '五反田', '目黒', '恵比寿', '渋谷', '原宿', '代々木', '新宿', 
'新大久保', '高田馬場', '目白', '池袋', '大塚', '巣鴨', '駒込', 
'田端', '西日暮里', '日暮里', '鶯谷', '上野', '御徒町', '秋葉原', '神田', 
'東京', '有楽町', '新橋', '浜松町', '田町', '高輪ゲートウェイ', '品川'] 

idx = 0 
for station_name in station_list:
   idx += 1
   folder_name = str(idx).zfill(2) + '_' + station_name
   if not os.path.exists(folder_name):
     os.mkdir(folder_name)
     print("make folder : " + folder_name) 
# # 実行結果 
# make folder : 01_大崎 
# (省略) 
# make folder : 30_品川

Python初心者におすすめの教材と勉強法

Python初心者におすすめの参考書

おすすめの教材は、「退屈なことはPythonにやらせよう」です。 この本は、Excelなどの一般的に業務で使われているソフトの自動化が多く記載されているため、プログラミング初心者でも作りたいものを思い浮かべやすいです。 なにより素晴らしいのは、わからないことがあったときの検索の仕方が記載されているため、教材として適しています。

上記参考書以外にもおすすめの参考書が知りたいという方は、初心者からレベル別におすすめの書籍を紹介している記事がありますので、ぜひご覧ください。

paiza.hatenablog.com

Python初心者におすすめの勉強法(1)

おすすめの勉強法の一つめは「作りたいものを作る」ことです。

やはり「作りたいもの」を見つけたほうがモチベーションを保ちやすく、他に似たことをしている人が必ずいるので、他人のコードにも触れられるうえ、検索の癖がつきます。

Python初心者におすすめの勉強法(2)

おすすめの勉強法の二つめは「YouTube」です。

最近はYouTubeの専門性が高くなり、プログラミングに関してもさまざまな動画が投稿されています。 「Python」で検索すればたくさん動画が出てきますし、動画のタイトルでも自分の作りたいものが見つかります。

Python初心者におすすめの勉強法(3)

おすすめの勉強法の三つめは「paizaラーニング」です。

paizaラーニング」は、プログラミング初心者のための動画学習サービスです。 1授業を3分で視聴できるため、手軽に始められることが魅力です。Pythonが学べる入門講座では、体験編から応用編まで6つの講座が用意されており、体験版は無料で動画視聴と演習問題の利用ができます。また、paizaラーニングの有料プランも月600円からと格安で、全ての動画と演習問題が利用できるうえ、講座についてわからない所をエンジニアに質問できるサービスも受けられます。直接エンジニアから学べる環境は少ないので、わからないことが多い初学者におすすめです。

他の学習サイトについても知りたいという方は、初心者向けの学習サイトをまとめている記事がありますのでぜひご覧ください。

paiza.hatenablog.com

Pythonに興味があればまず始めてみよう

プログラミングで勉強することは無限にある

プログラミングで「ひと通り学んでからやる」という考えは捨てたほうがいいです。 なぜなら、プログラミングで勉強することは無限にあります。 むしろ、やればやるほど、わからないことが増えていきます。

作りたいものを作る

一番の勉強法は「作りたいものを作る」ことです。 本記事では、「空フォルダの作成」という作りたいものを決めて、基本文法・コードを検索していきました。 作りたいものはなんでもいいです。
作りたいものが決まれば、「Python 作りたいもの」と検索すれば、他に似たことをしている人がいます。そして、「コピー&ペースト、実行、自分で改良」の流れをしてください。 これで、自然と上達していきます。

それでも、勉強をしてからプログラミングに取り掛かりたいという方は、paizaラーニングから始めることをおすすめします。講座一覧からもわかるように一部無料または完全無料なので手軽に始められますし、自分に合うと感じたらpaizaラーニングの有料プランも検討してみてはいかがでしょうか。

また、ここで紹介したPythonの学習方法以外も知りたいという方は、初心者のにおすすめの勉強法と教材を解説している記事もあるので参考にしてみてください。

paiza.hatenablog.com




動画でプログラミングが学べるpaizaラーニングでは、Python、Java、C言語、C#、Go、Kotlin、JavaScript、HTML/CSS、SQLなど、プログラミング初心者でも動画で学べる体験・入門レッスンを公開しています。

Python体験編」「C#体験編」「ITエンジニアの就活準備編」といった人気講座は完全無料となっておりますので、プログラミングを学びたい方・ITエンジニアを目指したい方はぜひごらんください。

また、「STEINS;GATE(シュタインズ・ゲート)」とpaizaがコラボしたプログラミングゲーム「電脳言語のオルダーソンループ」をはじめゲームで楽しくプログラミングを学べるコンテンツもご用意しています。ぜひプレイしてみてください!

paizaのおすすめコンテンツ

Webセキュリティ入門 ハッカー入門 Webセキュリティ講座がスタート!CVは内田真礼さん! Python✕AI 機械学習入門講座 CVに上坂すみれさんを起用!人気の機械学習講座を公開中!
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.