情報処理のWeb教科書―IPA情報処理試験対策のお供に!
Python3で四則演算から超入門をテーマにPython入門用のオリジナルテキストをまとめています。
この記事の目次です。
1. Pythonとは
2. Python3のインストール
3. Python3のprint文と四則演算
4. インデントとブロック
5. Pythonの変数とif文
6. Pythonの配列
7. Pythonのfor文
8. Pythonのwhile文
9. Pythonの演算子
10. Pythonの関数
11. Pythonのファイル分割
12. 標準ライブラリ(インタプリタ組込み型)
文字列分割
文字列置換
ファイルオープン
ファイル全体を読み込む
ファイルに書き込む
13. 標準ライブラリ(import型)
datetime
ftplib
os
time
xml
14. Python3の外部モジュールの利用方法
Pythonとは、オープンソースのスクリプト言語です。さまざまな要望を持った人が段階に応じて利用できるように設計された、柔軟な仕様のプログラミング言語です。
Pythonの読み方は「パイソン」です。
Webアプリケーションからネットワークプログラミングはもちろん、分析やテキスト処理、マルチメディアやGUIアプリケーション、システム管理など利用範囲の広いプログラミング言語です。
特に言語学データを処理するための機能を備えていて、シンプルかつ強力なプログラミング言語です。
標準ライブラリが豊富に用意されており、数多くの環境で動作します。
Pythonは、スクリプト言語ですので、そこそこの速度で動作します。
そこそこの速度ではまずい部分については、C言語拡張の機能を使用して問題解決できる仕組みがPythonには用意されています。
Pythonは2000年に2系がリリースされ、Python2のときはみんながPython2を使うまでに5年かかったそうです。
そして、2008年にそのPython2系の不都合な仕様をすててPython3がリリースされました。 Python3がリリースされてからもう5年以上たっていますので今はPython3時代です。
Pythonの概要に触れましたので、以下ではPythonの入門知識を見ていきます。
Pythonは、Python2とPython3で少し作法が変わっていますが、これから入門知識を得るなら新しいPython3を勉強した方がいいと思います。
以下では、Python3.xを使用した入門知識をまとめていきます。
Pythonは、ちょっとしたことから大きなプログラムまで柔軟に対応できるのが特徴です。
まずは使ってみて、活用しながら知識を深めていく方針でまとめていければと思います。
まずは、インストールから始めていきます。
はじめにPython3のダウンロードとインストール方法について見ていきます。
Linux環境でのPythonのインストール方法についてです。
# yum -y install python
CentOSなどRed Hat系LinuxのPythonのインストールは、yumを使用して行えます。
# apt-get install pythonX.X
Ubuntuなどその他のLinuxのPythonのインストールは、apt-getを使用して行えます。
Windows環境でのPythonのインストール方法についてです。
Pythonは、http://www.python.org/から無料で自由にダウンロードできます。
Windows版のPythonは、ダウンロードしてきた、インストーラ(python-X.X.X.exe)を実行してインストールが行えます。
「Install launcher for all users(recommended)」、「Add Python 3.5 to PATH」にチェックを入れて、「Install Now」を実行します。
「Setup was successful」となったら、「Close」をクリックします。
コマンドプロンプトを開いて、「python -V」と入力してインストールできているか確認します。
C:>python -V
Pythonをインストールしましたので、今度はコードの記述方法について見ていきます。
まずはじめにprint文を実行してみます。
次に簡単なプログラムを実行してみます。「Hello World!!」とprint文で文字列を表示するプログラムを作成して、実行します。
C:>notepad hello.py
hello.pyとう名前で、Pythonのスクリプトファイルを作成していきます。
print("Hello World!!")
上記はプログラムの内容です。
C:>python hello.py Hello World!!
「python hello.py」というように「python スクリプトファイル名」とうように実行します。
print文で改行する場合の記述方法です。
そのまま実行すると改行が含まれます。
文字列を2行に分けてprint文を実行すると分けたところに改行が追加されます。
改行を無くすにはprintに「end = ""」を指定します。
print1.pyとう名前で、改行が含まれる例を見てみます。
print("Hello") print("World!!")
C:>python hello.py Hello World!!
print2.pyとう名前で、「end = ""」を指定した例を見てみます。
print("Hello ", end = "") print("World!!")
C:>python hello.py Hello World!!
次は四則演算を行っていきます。
加算(足し算)は以下です。
print(1+1)
減算(ひき算)は以下です。
print(2-1)
乗算(かけ算)は以下です。
print(3*2)
除算(わり算)は以下です。
print(4/2)
インデントとブロックについて見ていきます。
Pythonはインデントでブロックを表現します。
インデントとは、字下げのことで、行頭に空白やタブを設けて文字開始位置を他行よりも下がった位置から始めた文字組みのことです。 Pythonのインデントは「タブ」で表現します。
ブロックとは、コードブロックのことで、コードのまとまりのことをいいます。
Pythonの変数とif文について見ていきます。if文は条件に応じた処理を記述する際に使用する条件文になります。
今度は、変数とif文を使用してprint文実行してみます。
加えて、コメントについて見てみます。
プログラムの内容は以下です。sample.pyという名前で保存します。
night = False if night: print('Good evening!!') else: print('Hello!!')
実行します。
C:>python sample.py Hello!!
今度は変数nightがTrueのケースを試してみます。#はそれ以降の行をコメント扱いにします。
#night = False night = True if night: print('Good evening!!') else: print('Hello!!')
実行します。
C:>python sample.py Good evening!!
Pythonの配列について見ていきます。
配列の宣言は[]を使用し、要素の追加はappend()を使用します。
配列の宣言と要素の追加を行うサンプルコードです。
words = [] words.append("Hello") words.append("World!!") print(words[0] + " " + words[1])
python sample.py Hello World!!
Pythonのfor文について見ていきます。
list = ["pen", "pineapple", "apple", "pen"] for i in range(len(list)): print("{0} ".format(list[i]), end = "")
実行します。
C:>python sample.py pen pineapple apple pen
コマンドライン引数は、コマンド実行時にプログラム名の後に設定する文字列です。
Pythonでコマンドライン引数を使うには標準ライブラリのsysをimportします。
import sys for i in range(len(sys.argv)): print("{0}".format(sys.argv[i]))
実行します。
C:>python sample.py pen pineapple apple pen sample.py pen pineapple apple pen
while 文は指定した条件式が真の間、処理を繰り返し実行します。
while 条件式: 条件式が真の時に実行する文
loop = 0 while loop < 10 print("繰り返します") loop += 1
Pythonの演算子について見ていきます。
以下はPythonの比較演算子です。
演算子 | 結果 |
---|---|
x < y |
x がy より小さければTrue |
x <= y |
x がy より小さいか等しければTrue |
x > y |
x がy より大きければTrue |
x >= y |
x がy より大きいか等しければTrue |
x == y |
x とy の値が等しければTrue |
x != y |
x とy の値が等しくなければTrue |
x is y |
x とy が同じオブジェクトであればTrue |
x is not y |
x とy が同じオブジェクトでなければTrue |
x in y |
x がy に含まれていればTrue |
x not in y |
x がy に含まれていなければTrue |
Pythonにはインクリメント/デクリメント演算子がありません。 以下のように+=や-=を代用する必要があります。
a += 1 b -= 1
Pythonの関数の例です。
def printHello(): print("Hello World!!") printHello()
python sample.py Hello World!!
以下は引数のある関数の例です。
def printHello(msg): print(msg) printHello('Hello World!!')
python sample.py Hello World!!
関数の戻り値はreturn文を使用します。
def getMessage(): return "Hello World!!" print(getMessage())
python sample.py Hello World!!
Pythonのファイル分割の例です。
├main.py └function.py
import function function.printHello()
def printHello(): print("Hello World!!")
python main.py Hello World!!
インタプリタに組み込まれている標準型について見ていきます。
splitlines()は文字列の改行で分割して配列を作成する関数です。
text = "aaa\nbbb\nccc" lines = text.splitlines() for line in lines: print(line)
replace()は文字列の中の特定の文字や文字列を別に置き換える関数です。
text = "aaa\nbbb\nccc" new_text = text.replace("\n", "\t")
ファイルを扱うにはまず初めに開く必要があります。その際に使用するのがopen()関数です。
mode = "r" filepath = "./data.txt" file = open(filepath, mode) file.close()
with句を使用すると自動で閉じてくれるので、close()関数を実行してファイルを閉じる処理が不要になります。
mode = "r" filepath = "./data.txt" with open(filepath, mode) as file :
ファイル全体を読み込むにはread()関数を使用します。
mode = "r" filepath = "./data.txt" with open(filepath, mode) as file data = file.read() print(data)
ファイルに書き込むにはwrite()関数を使用します。
mode = "w" filepath = "./data.txt" with open(filepath, mode) as file file.write("Hello World!!")
import文が必要な標準ライブラリについて見ていきます。
datetimeモジュールは日時に関するさまざまな関数を提供します。
today()関数を使うことで本日日付が取得できます。
import datetime today = datetime.date.today() print(today.strftime('%Y%m%d'))
ftplibモジュールはFTPに関するさまざまな関数を提供します。
以下はFTP接続してディレクトリ一覧を表示する例です。
from ftplib import FTP with FTP(host='hostname', user='username', passwd='password') as ftp: ftp.retrlines('NLST')
以下はFTPS(FTP over TLS/SSL)接続してディレクトリ一覧を表示する例です。
from ftplib import FTP_TLS with FTP_TLS(host='hostname', user='username', passwd='password') as ftp: ftp.retrlines('NLST')
カレントディレクトリを変更する場合はcwd()関数を使用します。
以下はFTPS(FTP over TLS/SSL)接続してカレントディレクトリを変更する例です。
from ftplib import FTP_TLS with FTP_TLS(host='hostname', user='username', passwd='password') as ftp: ftp.cwd('./log') ftp.retrlines('NLST')
以下はFTPS(FTP over TLS/SSL)接続して特定のディレクトリ(logディレクトリ)からファイルをダウンロードする例です。 例を実行するにはローカルのプログラム実行ディレクトリにlogディレクトリを作成しておく必要があります。
from ftplib import FTP_TLS with FTP_TLS(host='hostname', user='username', passwd='password') as ftp: ftp.cwd('./log') filelist = ftp.nlst('.') for file in filelist: if file != '.' and file != '..': with open('./log/' + file, 'wb') as f: ftp.retrbinary('RETR %s' % file, f.write)
osの機能が利用できる関数を提供します。
makedirs関数は、再帰的にディレクトリを作成する関数です。mkdir() と似ていますが、末端ディレクトリを作成するために必要なすべての中間ディレクトリも作成します。 exist_ok の値が False の場合 (デフォルト)、対象のディレクトリがすでに存在すると FileExistsError を送出します。
import os dir_path = 'mkdir/sample' os.makedirs(dir_path, exist_ok=True)
timeモジュールは時刻に関するさまざまな関数を提供します。
処理を一定期間停止させたいときにsleepが使えます。
import time
time.sleep(秒数)
xmlモジュールはxmlに関するさまざまな関数を提供します。
Pythonでxmlを読み込むにはxml.etree.ElementTree.parseメソッドが使えます。
以下はPythonでxmlを読み込むサンプルプログラムです。
以下のXMLファイルをsample.xmlという名前でPythonプログラムのファイルと同じ位置に置きます。
<item>A</item>
サンプルのPythonファイル(sample.py)の記述内容です。
import xml.etree.ElementTree as ET tree = ET.parse('sample.xml') root = tree.getroot() print(root.text)
実行すると以下の表に表示されます。
python sample.py A
本記事では、活用しながらPythonの入門知識を得ていくポリシーです。 簡単なコードの実行が試せましたので、Webから情報して機械学習など行う方向をめざして外部モジュールを使っていきます。
PythonでSeleniumを使用して、ブラウザを起動しURLにアクセスしてスクリーンキャプチャを取得する方法を試してみます。
Selenium WebDriverは、Webブラウザを操作するAPIを提供するライブラリです。
pip install selenium
Python3を使用していますのでこれだけです。
Fifefoxを操作する方法を見ていきます。前提として、Firefoxをインストールしておきます。
PythonでSeleniumを使用してFirefoxを起動するには、webdriverをインポートして、webdriver.Firefox()を実行します。
from selenium import webdriver driver = webdriver.Firefox()
以下はPythonでSeleniumを使用してユーザエージェントを変更してFirefoxを操作する例です。
from selenium import webdriver from selenium.webdriver.firefox.options import Options ops = Options() ops.set_preference('general.useragent.override', 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1') driver = webdriver.Firefox(options=ops) driver.get('<URL 例)https://learning.zealseeds.com/contents/text/programming/python/index.html>')
Chromeを操作する方法を見ていきます。
SeleniumでChromeを操作するには、chromedirverを準備する必要があります。 以下よりご利用のOS環境に合わせてchromedriverをダウンロードしてきます。
https://chromedriver.chromium.org/downloads
PythonでSeleniumを使用してChromeでURLにアクセスするには、get()メソッドを使用します。
from selenium import webdriver driver = webdriver.Chrome('C:\\tmp\\chromedriver.exe')
各種操作方法について見ていきます。
PythonでSeleniumを使用してURLにアクセスするには、get()メソッドを使用します。 webdriverのところはご利用のブラウザ用に置き換えて読み進めてください。
from selenium import webdriver driver = webdriver.Chrome('C:\\tmp\\chromedriver.exe') driver.get('<URL 例)https://learning.zealseeds.com/contents/text/programming/python/index.html>')
現在のURLはcurrent_urlで取得できます。
from selenium import webdriver driver = webdriver.Chrome('C:\\tmp\\chromedriver.exe') driver.get('<URL 例)https://learning.zealseeds.com/contents/text/programming/python/index.html>') cur_url = driver.current_url print(cur_url)
PythonでSeleniumを使用してFirefoxでURLにアクセスして、その表示のキャプチャ画像を取得するには、save_screenshot()メソッドを使用します。
from selenium import webdriver driver = webdriver.Chrome('C:\\tmp\\chromedriver.exe') driver.get('<URL 例)https://learning.zealseeds.com/contents/text/programming/python/index.html>') driver.save_screenshot('保存先 例)C:/aaa.png')
プログラミング作法などプログラミングについてまとめています。Python、C言語、流れ図などプログラミングのオリジナル入門テキスト問形でまとめています。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…