CINXE.COM
Python - 言語仕様・歴史・実装例 | オンラインPython学習サービスPyQ(パイキュー)
<!DOCTYPE html> <html lang="ja"><head> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KRFJLTL');</script> <meta charset="UTF-8"> <meta name="author" content="BeProud"> <title>Python - 言語仕様・歴史・実装例 | オンラインPython学習サービスPyQ(パイキュー)</title> <!-- Web font --> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> <link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP&subset=japanese" rel="stylesheet"> <!-- End Web font --> <meta name="viewport" content="width=device-width, initial-scale=1"><meta name="robots" content="index, follow"><meta name="description" content="10分でわかる「Pythonとは」 Python専門のオンライン学習サービスPyQが、Python言語ののなりたちや特徴、ライブラリやコミュニティの紹介まで、「Pythonとは何か」をまとめました。 掲載情報は、Python公式ドキュメントの掲載内容をベースに実例などを調査し、現役Pythonエンジニアである開発チームの監修の元作成しています。"> <!-- cssはBlumaデフォルト。style適用時に変更する --> <link rel="stylesheet" href="https://landing.pyq.jp/mrkt/python/static/css/bulma.css"> <!-- js --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <!-- Vue.js --> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> <!-- favicon --> <link rel="shortcut icon" sizes="16x16 32x32 48x48" href="https://pyq.jp/static/favicon.2ea3b408368e.ico"> <!-- icon --> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <meta property="og:title" content="Python - 言語仕様・歴史・実装例 | オンラインPython学習サービスPyQ(パイキュー)"> <meta property="og:type" content="website"> <meta property="og:url" content="http://lpm.pyq.jp/python/"> <meta property="og:image" content="https://landing.pyq.jp/mrkt/python/static/img/og_img.png"> <meta property="og:site_name" content="PyQ"> <meta property="fb:app_id" content="182341215882503"> <meta property="og:locale" content="ja_JP"> <meta property="og:description" content="10分でわかる「Pythonとは」 Python専門のオンライン学習サービスPyQが、Python言語ののなりたちや特徴、ライブラリやコミュニティの紹介まで、「Pythonとは何か」をまとめました。 掲載情報は、Python公式ドキュメントの掲載内容をベースに実例などを調査し、現役Pythonエンジニアである開発チームの監修の元作成しています。"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" > <link rel="icon" href="/favicon.ico" type="image/x-icon" > <style>.mktoGen.mktoImg {display:inline-block; line-height:0;}</style> </head> <body class="has-navbar-fixed-top" id="PageTop"> <nav class="navbar is-fixed-top has-background-primary"> <div class="navbar-brand"> <h1 class="navbar-item"><a href="#PageTop" class="has-text-weight-bold has-text-white">Python</a></h1> <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navMenu"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span aria-hidden="true"></span> </a> </div> <div id="navMenu" class="navbar-menu nav-background mktoText"> <!--- マルケトナビタグ 下を書き換える --> <div class="navbar-start"> <a class="navbar-item has-text-white" a href="#overview">Pythonの概要</a> <a class="navbar-item has-text-white" a href="#Actual_operation">Pythonと実運用</a> <a class="navbar-item has-text-white" a href="#History-Specification">Pythonの歴史や仕様</a> <a class="navbar-item has-text-white" a href="#Society">Pythonと社会</a> </div> <div class="navbar-end"> </div> <!--- マルケトナビタグ終わり 上を書き換える --> </div> <!-- スマホで非表示になる --> <!-- スマホで非表示になる --> </nav> <div id="bodyHTML" class="mktoText"><div><br /></div> <!-- Above the Fold --> <section id="rootHead"> <div id="partsHero" class="hero is-medium"> <div class="hero-body hero-body-top add-top-img"> <div class="container"> <div class="columns is-vcentered"> <div class="column has-text-centered-mobile has-text-centered"> <h1 class="title has-text-info is-size-3">10分でわかる<br class="is-hidden-tablet" />「Pythonとは」</h1> <div class="columns"> <div class="column is-8 is-offset-2 content"> <p>このページでは、Pythonのなりたちや特徴から、ライブラリやコミュニティの紹介まで、「Pythonとは何か」を紹介します。 掲載情報は、Python公式ドキュメントの掲載内容をベースに、実例などをまとめています。</p> <p>Published by <a class="has-text-primary" href="https://pyq.jp/" target="_blank">PyQ</a></p> </div> </div> </div> </div> </div> </div> <div class="hero-foot"><nav class="tabs is-boxed is-fullwidth"> <div class="container"> <ul> <li class="section-background-color"><a href="#overview">概要</a></li> <li><a href="#Actual_operation">Pythonと実運用</a></li> <li><a href="#History-Specification">歴史や仕様</a></li> <li><a href="#Society">Pythonと社会</a></li> </ul> </div> </nav></div> </div> </section> <!-- Above the Fold end --> <div><br /></div> <!-- Pythonってなんだろう? --> <section id="overview" class="section section-background-color"> <div class="com-base-h1 line"> <div class="circle"> <h1 class="is-size-1 has-text-info">Pythonって、<br class="is-hidden-tablet" />なんだろう?</h1> </div> </div> <div class="container"> <div class="columns"> <div class="column is-10 is-offset-1 com-base-text"> <p>Pythonは、可読性が高く、Web開発から科学演算、機械学習などに用いられる汎用プログラミング言語です。 汎用プログラム言語とは、特定の用途に特化していない、さまざまなことができるプログラミング言語のことをいいます。 最近なにかと話題のPythonを、まずはその人気の秘密からひも解いてみましょう。</p> </div> </div> </div> </section> <!-- Pythonってなんだろう? end --> <div><br /></div> <!-- Python人気のひみつ1:システム開発以外もいろいろ使える --> <section class="section section-background-color"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Python人気のひみつ1:<br class="is-hidden-tablet" />システム開発以外もいろいろ使える</h1> <div class="columns"> <div class="column is-10 is-offset-1 base-text-h3"> <p>Pythonは、エンジニアだけでなく様々な人に役立つプログラミング言語です。 大規模なシステム開発だけでなく、ちょっとした作業の効率化にも役立つので、サブスキルとしても人気が高いです。</p> </div> </div> <div class="columns is-variable"> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-rocket fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">研究分野でPython</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>データ分析や解析ができる<a class="link" href="https://pandas.pydata.org/" target="_blank">pandas</a>、数値計算を行う<a class="link" href="https://numpy.org/" target="_blank">NumPy</a>などのPythonライブラリをつかうと、統計解析やデータ分析が便利になります。 Excelなどのデータを読み込ませば様々な形式で出力されます。 pandasやNumPyは、利便性の高さから多くのデータサイエンティストに利用されています。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-chart-line fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">マーケティング分野でPython</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>PythonはWebページ上の情報を分析するマーケティング業務にも役立ちます。 Pythonを使うことができれば解析サイトや自分のサイトのコンテンツ情報を手軽に一括で取得できます。 この手法をスクレイピングと呼びます。 今まで手動で行っていたレポーティングや分析作業を効率化できます。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-comments fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">コミュニケーションにもPython!</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>Pythonで、ユーザーとのコミュニケーションをとるための効率的な仕組みも作れます。 特定の入力に反応するbotをはじめ、AWSの<a class="link" href="https://aws.amazon.com/jp/lambda/" target="_blank">Lambda</a>のプログラムで「1日1回サイトをチェックし、通知を送る」なんて処理も作れます。 さらに、スクレイピングした結果をSlackに通知することもできます。</p> </div> </div> </div> </div> </div> </div> </div> </section> <!-- Python人気のひみつ1:システム開発以外もいろいろ使える end --> <div><br /></div> <!-- Python人気のひみつ2:無料で始められる --> <section class="section"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Python人気のひみつ2:<br class="is-hidden-tablet" />無料で始められる</h1> <div class="columns"> <div class="column is-10 is-offset-1 base-text-h3"> <p>Pythonがノンエンジニアにも人気な理由のひとつに、Pythonは無料で使えるという点があります。</p> </div> </div> <div class="columns is-variable"> <div class="column" id="development_environment"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">Python開発環境</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>プログラムを書いたり、動かしたりする為に必要なツールを総称して、開発環境といいます。 Pythonの開発環境は無料で準備できます。エディター「<a class="link" href="https://code.visualstudio.com/" target="_blank">VS Code</a>」や、総合開発環境(IDE)「<a class="link" href="https://www.jetbrains.com/ja-jp/pycharm/" target="_blank">PyCharm</a>」などが有名です。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">Pythonフレームワーク</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>フレームワークとは、誰でも作るであろう機能をはじめから備えているプログラムのことです。 フレームワークをソフトウェアの土台とすることで、効率的に開発できます。 Webサービスの構築に利用する<a class="link" href="https://www.djangoproject.com/" target="_blank">Django</a>や<a class="link" href="https://a2c.bitbucket.io/flask/" target="_blank">Flask</a>などのフレームワークは広く活用されています。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">Pythonライブラリ</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>Pythonのライブラリとは、一定の処理を誰でも使えるようにしたものです。 たとえば、日時の計算をしたりパスワードの生成をしたりできます。 標準で搭載されているライブラリの他にも、無料でたくさんのライブラリをダウンロードできます。</p> </div> </div> </div> </div> </div> </div> </div> </section> <!-- Python人気のひみつ2:無料で始められる end --> <div><br /></div> <!-- Python人気のひみつ3:入門者にやさしい --> <section class="section section-background-color"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Python人気のひみつ3:<br class="is-hidden-tablet" />入門者にやさしい</h1> <div class="columns"> <div class="column is-10 is-offset-1 base-text-h3"> <p>Pythonは無料で気軽に始められるだけではなく、習得しやすい言語でもあります。 基礎を短期間で習得しやすいので、学習を進めることで幅広く、汎用的に活用できます。</p> </div> </div> <div class="columns is-variable"> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-pen fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">読みやすい、書きやすい</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>Pythonは可読性が高い、すなわち読みやすい言語と言われています。 読みやすく、また書きやすいので、プログラミングの学習に適しています。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-book-open fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">豊富な日本語情報</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>ここ数年で、Pythonの日本語情報は爆発的に増えました。 書籍・Webなどで情報を集めやすく、日本人にとって学習しやすい環境といえます。</p> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <p class="has-text-centered section add--display-table-row"><span class="fa-stack fa-2x"> <i class="fas fa-circle fa-stack-2x has-text-emphasis"></i> <i class="fas fa-users fa-stack-1x has-text-warning"></i> </span><br /></p> <h2 class="title is-size-5 add--text-space has-text-centered has-text-primary add--display-table-row">コミュニティが活発</h2> <div class="content column add--space has-text-info is-size-6 add--display-table-cell add--valign-middle"> <p>Pythonはコミュニティの活発な言語です。 勉強会やカンファレンスの開催数も多く、共に学ぶ仲間もみつけやすいでしょう。</p> </div> </div> </div> </div> </div> </div> </div> </section> <section class="section com-accent" id="readability"> <div class="container"> <h1 class="title is-size-4 has-text-centered has-text-white">可読性が高く学習しやすい言語って、どんな言語?</h1> <div class="columns"> <div class="column is-10 is-offset-1 article"> <p>「Pythonは可読性が高く学習しやすい」というのは頻繁に耳にするPythonの強みですが、「可読性が高い」「学習しやすい」というのは、どんな特徴を持っているからなのでしょうか。</p> </div> </div> </div> </section> <section class="section section-background-color"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <div class="columns"> <div class="column is-7"> <h2 class="has-text-info is-size-4">Pythonのコードを読みやすくする、<br />インデントを強制するというルール</h2> <div class="content com-article-text article"> <p>Pythonのコードが読みやすい一番の理由は、インデント(字下げ)を強制するルールにあります。 ブロック(if文やfor文など)ごとに、インデントするルールが定められています。 インデントがルールとして決められていることで、誰が書いてもブロックが明確になります。 この特徴によって、Pythonは読みやすいのです。 Pythonのインデントを必須とするルールは、<a class="link" href="https://pep8-ja.readthedocs.io/ja/latest/" target="_blank">PEP8</a>というコードスタイルガイドラインに定められています。 インデントの他、一行ごとの文字数や空行の入れ方も定められています。</p> </div> </div> <div class="column is-5"> <figure class="image is-3by2"><img src="https://landing.pyq.jp/mrkt/python/static/img/01_easy_01indent.png" alt="Image" /></figure> </div> </div> <div class="columns"> <div class="column"> <h2 class="has-text-info is-size-4">Pythonは、書いたコードを少しずつ<br />動かしながら学べる</h2> <div class="content com-article-text article"> <p>実は、人間にとってわかりやすい言語と、コンピュータにとってわかりやすい言語は異なります。 Pythonは、人間にとってわかりやすい<mark class="marker_accent">高水準言語</mark><span class="has-text-primary">※</span>です。 そのため、書いたプログラムをコンピュータにとってわかりやすく翻訳する必要があり、この翻訳作業を<mark class="marker_accent">コンパイル</mark>といいます。 Pythonは、コードを実行する時に随時コンパイルを行う言語で、<mark class="marker_accent">インタプリタ言語</mark>といいます<span class="has-text-primary">※</span>。 インタプリタ言語<span class="has-text-primary">※</span>でプログラミングを学習すると少しずつ書いたコードを動かして結果を確認できるというメリットがあります。</p> <p class="has-text-primary">※1. 反対に、コンピューターにとってわかりやすい言語を低水準言語といいます。 <br /> ※2. 対義語となる言語はコンパイラ言語といいます。コードの実行前に一括でコンパイルを行う言語で、Cなどが有名です。</p> </div> </div> </div> </div> </div> </div> </section> <!-- Python人気の秘密:入門者にやさしい end --> <div><br /></div> <!-- 実運用とPython --> <section id="Actual_operation" class="section"> <div class="com-base-h1 line"> <div class="circle"> <h1 class="is-size-1 has-text-info">実運用と<br class="is-hidden-desktop" />Python</h1> </div> </div> <div class="container"> <div class="columns"> <div class="column is-10 is-offset-1 com-base-text"> <p>Pythonが、最初のプログラミング言語に向いていることはわかりました。 では、実運用ではどうなのでしょうか。 学びやすい無料の言語は、プロになりたい人には向いてないのでしょうか。 もちろんそんなことはありません。 サービスの開発や研究分野でPythonは広く使われています。 ここでは、Pythonの実運用に適した特徴と、実際のPythonの活用事例を見ていきましょう。</p> </div> </div> </div> </section> <!-- 実運用とPython end --> <div><br /></div> <!-- Pythonはすぐになくならない --> <section class="section"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonは<br class="is-hidden-tablet" />すぐになくならない</h1> <div class="columns"> <div class="column is-7"> <h2 class="has-text-info is-size-4">リリースが安定しているので、<br class="is-hidden-tablet" />実運用に向いています。</h2> <div class="content com-article-text article"> <p>実運用で採用する言語は、安定していることが大切です。 サービスを開発している言語が、ある日いきなりなくなってしまったりしたら大変ですよね。 そこまでのことが起こらなかったとしても、他の技術が変化していくなかで、長い間その変化に対応されなければ使いづらい言語だといえるでしょう。</p> <p>その点で、Pythonはとても安定している言語です。 1991年以来安定的にリリースが出ていて、主要なリリースは約18ヶ月ごとに出ます。 Python3.9以降は12ヶ月ごとにリリースされることが決定しています(参考:<a class="link" href="https://www.python.org/dev/peps/pep-0602/" target="_blank">PEP602</a>)。 そして、主要なリリースの後1年半に渡り”bugfix”リリースも公開されるため、既存のリリースも期間を追うごとに安定性が向上します。</p> </div> </div> <div class="column is-5"> <figure class="image"><img src="https://landing.pyq.jp/mrkt/python/static/img/02_stable_01release.png" alt="Image" /></figure> </div> </div> </div> </div> <h1 class="title is-size-4 com-note-text has-text-centered">PEPとは:<br class="is-hidden-tablet" />Pythonの安定した<br class="is-hidden-tablet" />リリースの理由</h1> <div class="columns is-multiline"> <div class="column is-10 is-offset-1 has-background-light"> <div class="columns"> <div class="column is-5"> <div class="add--shadow has-background-white"> <figure class="image note"><img src="https://landing.pyq.jp/mrkt/python/static/img/PEP.png" alt="Image" /></figure> <div class="column is-size-6 has-text-centered has-background-white-bis"> <p>PEPのリリースまでの流れ</p> <p class="is-size-7">Credit:PEP8(<a class="link" href="https://www.python.org/dev/peps/pep-0001/" target="_blank">https://www.python.org/dev/peps/pep-0001/</a>)</p> </div> </div> </div> <div class="column is-7"> <div class="content com-note-text"> <p>Pythonのリリースが安定している理由の1つに、Pythonではリリースまでの工程が明示的に定められている事があります。 <br /> リリースの際はPEP(Python Enhancement Proposals)という、Python拡張提案がまず作られます。 PEPには拡張の根拠や例となるコードが書かれています。 PEPの内容の議論を重ね、採択/却下が決定し、リリースまで進みます(主に左図のような流れでリリースに至ります)。 このようなPEPのリリースまでの流れや役割もまた、PEPに書かれています</p> </div> </div> </div> </div> </div> </div> </section> <!-- Pythonはすぐになくならない end --> <div><br /></div> <!-- Pythonを支えるライブラリ --> <section class="section section-background-color"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonを支える<br class="is-hidden-tablet" />ライブラリ</h1> <div class="columns"> <div class="column is-9"> <h2 class="has-text-info is-size-4">簡単に見つかる多くのライブラリで、<br />実運用の様々なニーズに対応できます。</h2> <div class="content com-article-text article"> <p>Pythonには、標準で使える機能の他に、分野を問わず様々なライブラリが公開されています。 使えるライブラリがある処理は自分で書く必要がないので、分析や開発など、Pythonを使って本来実現したい事に集中できます。</p> <p>Pythonのライブラリは<a class="link" href="https://pypi.org/" target="_blank">PyPI(Python Package Index)</a>というサイトにまとまっていて、便利な処理は大抵、誰かが作成してPyPIに登録されています。 ほとんどのライブラリはpipというコマンド1行で、簡単にインストールできることもPythonの強みです。 インストールが簡単なので、効率的に分析・開発できます。</p> </div> </div> <div class="column is-3"> <figure class="image"><img src="https://landing.pyq.jp/mrkt/python/static/img/02_library_01pip.png" alt="Image" /></figure> </div> </div> </div> </div> </div> </section> <!-- Pythonを支えるライブラリ end --> <div><br /></div> <!-- Pythonの使用例 --> <section class="section com-accent"> <div class="container"> <h1 class="title is-size-4 has-text-centered has-text-white">Pythonの使用例</h1> <div class="columns"> <div class="column is-10 is-offset-1 article"> <p>実際に、世の中ではPythonがどのように利用されているかを紹介します。 紹介する例はほんの一部ですが、Pythonでどんなものが作れ、どんなことが実現できる言語なのかイメージできることでしょう。</p> </div> </div> </div> </section> <!-- 海外・国内サービス --> <section class="section"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />海外・国内サービス</h1> <div class="columns"> <div class="column is-10 is-offset-1 base-text-h3"> <p>普段はインターネットで活用しているサービスが、どんな言語で実装されているか、意識する機会はあまりないでしょう。 実は、普段よく目にしたり活用しているサービスにも、Pythonで実装されているものがあります。その一部を紹介します。</p> </div> </div> <div class="columns is-variable is-multiline"> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.instagram.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Instagram</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"> <figure class="com-card-img-center"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_01instagram.png" alt="Image" /></figure> </div> <div class="column is-9"> <p class="com-card">写真・動画を共有するSNSサービス。PythonのWebフレームワークDjangoを用いて開発されています。<a href="https://us.pycon.org/2017/" target="_blank"> PyCon 2017</a>の基調講演では、Python2からPython3へのバージョンアップについての発表がありました。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>出典:<a href="https://instagram-engineering.com/what-powers-instagram-hundreds-of-instances-dozens-of-technologies-adf2e22da2ad" target="_blank">[What Powers Instagram: Hundreds of Instances, Dozens of Technologies]</a> / <a href="https://www.youtube.com/watch?v=66XoCk79kjM" target="_blank">[Lisa Guo, Hui Ding Keynote PyCon 2017]</a></p> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.dropbox.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Dropbox</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_02dropbox.png" alt="Image" /></figure> </div> <div class="column is-9"> <p class="com-card">クラウドとローカルの複数の媒体間でデータの共有や同期を可能とするオンラインストレージサービス。 Rian Hunter氏は、PyCon APAC 2013で、「DropboxはすべてPythonで開発している」と述べています。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>出典:<a href="https://www.youtube.com/watch?v=as3ISHCknz0" target="_blank">[Keynote: One Million Lines of Python by Rian Hunter]</a></p> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.pinterest.jp/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Pintarest</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_03pintarest@2x.png" alt="Image" /></figure> </div> <div class="column is-9"> <p class="com-card">Web上の画像や動画などを気軽にクリップしたり共有できるサービスPintarestは、Python,Djangoで開発しています。<a href="https://us.pycon.org/2019/" target="_blank">PyCon 2019</a> では、Python2からPython3へのバージョンアップについての発表がありました。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>出典:<a href="https://www.quora.com/Pinterest-product-1/What-is-the-technology-stack-behind-Pinterest-1" target="_blank">[What is the technology stack behind Pinterest?]</a> / <a href="https://www.youtube.com/watch?v=e1vqfBEAkNA" target="_blank">[Migrating Pinterest from Python2 to Python3]</a></p> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.reddit.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Reddit</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_04reddit.png" alt="Image" /></figure> </div> <div class="column is-9"> <p class="com-card">アメリカ最大の掲示板サイト。 2005年にPythonで書き直されました。 開発者Aaron Swartzは「Python版のコードは少なく、実行速度が速く、読み取りと保守がはるかに簡単でした」と述べています。2011年に再度リニューアルされて構成に変更がありましたが、<a href="https://github.com/reddit-archive/reddit" target="_blank">すべてPythonでかかれていた時期のコードが公開されています</a>。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>出典:<a href="http://www.aaronsw.com/weblog/rewritingreddit" target="_blank">[Rewriting Reddit]</a></p> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://connpass.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Connpass</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-4"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_05connpass.png" alt="Image" /></figure> </div> <div class="column is-8"> <p class="com-card">エンジニアをつなぐIT勉強会支援プラットフォーム。 IT勉強会を中心としたイベントの開催・参加を総合的にサポートします。 全体的にPython言語で開発し、フレームワークはDjangoを使用しています。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://pyq.jp/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />PyQ</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_service_06pyq.png" alt="Image" /></figure> </div> <div class="column is-9"> <p class="com-card">オンラインPython学習サービス。 サービスの開発もすべてPythonで行っています。 フレームワークはDjangoを使用しています。</p> </div> </div> </div> </div> </div> </div> <div class="com-note"> <h1 class="title is-size-4 com-note-text has-text-centered">実運用サービスの技術選定</h1> <div class="columns is-multiline"> <div class="column is-10 is-offset-1 has-background-light"> <div class="columns"> <div class="column content com-note-text"> <p>長く愛されるサービスでは、システムの開発に使われる技術は様々な要件に応じて日々変わっていきます。そのため、紹介したサービスで用いられているPython言語の領域は変更されている可能性もあります(項目の内容がいつのことなのか気になる場合は、記載された年次を参考にしてください)。日々移り変わる技術分野の中でも、Pythonは大きな存在感を持っています。</p> </div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- 海外・国内サービス end --> <div><br /></div> <!-- Pythonの研究での利用 --> <section class="section section-background-color"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonの研究での利用</h1> <div class="columns"> <div class="column is-10 is-offset-1 base-text-h3"> <p>医療分野や自然科学など、Pythonはデータサイエンスの分野でも活用されています。 Pythonの研究活用の例を紹介します。</p> </div> </div> <div class="columns is-variable is-multiline"> <div class="column is-12"> <div class="add--shadow has-background-white"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.ligo.caltech.edu/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />重力波検出</a></h2> </div> <div class="columns"> <div class="column is-3"> <figure class="credit"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_reserch_01ligo.png" alt="Image" /> <figcaption class="has-text-white com-card">Courtesy Caltech/MIT/LIGO Laboratory</figcaption></figure> </div> <div class="column is-9"> <p class="com-card">2015年に世界ではじめて重力波を検出したレーザー干渉計重力波観測所LIGO(ライゴ)では、データ解析やシステムの制御などにPythonが活用されています。 解析データは公開されており、解析を再現できます。</p> </div> </div> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>参考:<a href="https://www.ligo.caltech.edu/" target="_blank">[LIGO(Laser Interferometer Gravitational-Wave Observatory)]</a>/公開解析データ:<a href="https://www.gw-openscience.org/s/events/GW150914/LOSC_Event_tutorial_GW150914.html" target="_blank">[BINARY BLACK HOLE SIGNALS IN LIGO OPEN DATA]</a></p> </div> </div> </div> <div class="column is-12"> <div class="add--shadow has-background-white"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.miz.nao.ac.jp/eht-j/c/pr/pr20190410" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />ブラックホール画像化</a></h2> </div> <div class="columns"> <div class="column is-3"> <figure class="credit"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/02_reserch_02eht.png" alt="Image" /> <figcaption class="has-text-white com-card">Credit:EHT</figcaption></figure> </div> <div class="column is-9"> <p class="com-card">イベントホライズンテレスコープ(EHT)(日本研究チームEHT Japan)は、2019年、世界ではじめてブラックホールの画像化に成功しました。 撮影した画像の解析に用いられるスパースモデリングという手法を、Pythonで実装しており、解析データも公開されています。</p> </div> </div> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>参考:<a href="https://eventhorizontelescope.org/" target="_blank">[イベントホライズンテレスコープ(Event Horizon Telescope)]</a>/公開解析データ:<a href="https://eventhorizontelescope.org/for-astronomers/data" target="_blank">[EHT Data Products]</a></p> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.nasa.gov/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />アメリカ航空宇宙局(NASA)</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column"> <p class="com-card">アメリカ航空宇宙局(NASA)でも、Pythonが活用されています。 GitHubに公開されているプロジェクトには、Pythonで実装されたものがいくつも見受けられます。 また、パッケージやライブラリ・モジュールなども公開されています。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>参考:<a href="https://github.com/nasa?language=python" target="_blank">[GitHub]</a></p> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://home.cern" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />欧州原子核研究機構(CERN)</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column"> <p class="com-card">世界最大規模の素粒子物理学の研究所欧州原子核研究機構(CERN)でも、Pythonが活用されています。 CERNでは毎秒6億回の衝突データなどのビッグデータを扱うそうです。 そのような領域でも、その使いやすさからPython人気の高いことが示されています。</p> </div> </div> </div> <div class="add--display-table-row add--valign-bottom"> <div class="column has-text-info is-size-7 has-background-white-bis"> <p>参考:<a href="https://cds.cern.ch/record/2274794" target="_blank">[Python at CERN](EuroPython 2017 ポスターセッション)</a></p> </div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- Pythonの研究での利用 end --> <div><br /></div> <!-- Pythonをもっと深く知ろう --> <section id="History-Specification" class="section"> <div class="com-base-h1 line"> <div class="circle"> <h1 class="is-size-1 has-text-info">Pythonを<br class="is-hidden-tablet" />もっと深く知ろう</h1> </div> </div> <div class="container"> <div class="columns"> <div class="column is-10 is-offset-1 com-base-text"> <p>Pythonのことが好きになってきましたか? ここからは、Pythonの成り立ちや仕様など、少し深い内容をお話します。 今すぐに必要な情報ではないかもしれませんが、Pythonを学習する際に振り返るときっと役立つでしょう。</p> </div> </div> </div> </section> <!-- Pythonをもっと深く知ろう end --> <div><br /></div> <!-- Pythonの歴史 --> <section class="section"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonの歴史</h1> <div class="columns"> <div class="column is-7"> <div class="content com-article-text article"> <p>Pythonは1990年代の始めに、オランダ人のGuido van Rossumによって開発されました。 1989年のクリスマス休暇中に、趣味のプログラミングプロジェクトとして開発を開始したのがきっかけだとか。 Pythonという名称は、イギリスで大人気だったテレビ番組「空飛ぶモンティ・パイソン」(Monty Python’s Flying Circus)が由来です。</p> <p>2001年には、<a class="link" href="https://www.python.org/psf/" target="_blank">Pythonソフトウェア財団(PythonSoftwareFoundation,PSF)</a>が組織されました。 <br /> PSFはPython関連の知的所有権を所有するために作られた非営利団体で、Pythonのリリースはすべてオープンソースです。</p> </div> </div> <div class="column is-5"> <figure class="image"><img src="https://landing.pyq.jp/mrkt/python/static/img/03_histrory_01timeline.png" alt="Image" /></figure> </div> </div> </div> </div> </div> </section> <!-- Pythonの言語仕様 --> <section class="section com-accent"> <div class="container"> <h1 class="title is-size-4 has-text-centered has-text-white">Pythonの言語仕様</h1> <div class="columns"> <div class="column is-10 is-offset-1 article"> <p>言語仕様とは、その言語がどのような設計で作られているかを表すものです。 Pythonでは、<a class="link" href="https://docs.python.org/ja/3/reference/index.html" target="_blank">Python 言語リファレンス</a>で明示されています。</p> </div> </div> </div> </section> <!-- Pythonの特徴 --> <section class="section section-background-color"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonの特徴</h1> <div class="columns"> <div class="column"> <h2 class="has-text-info is-size-4">Pythonは、<br class="is-hidden-tablet" />インタプリタ言語</h2> <div class="content com-article-text article"> <p><a class="link" href="#readability">Pythonの可読性の高さ</a>でも説明したとおり、Pythonはコンピュータ言語への翻訳(コンパイル)を実行しながら随時行うインタプリタ言語です。 標準インストールにより「Pythonインタプリタ(以降インタプリタ)」が利用できるためです。 Pythonは「やりたいことをシンプルに記述」でき、インタプリタにより「ちょっと書いて確認」が簡単にできます。 インタプリタ言語に対するものとして、コンパイラ言語があります。 コンパイラ言語は、実行するのにコンパイルという作業が必要になります。 一手間かかりますが、コンパイルにより実行前にコードの間違いを確認できるという面もあります。 Pythonでは、コンパイルとは違いますが、コードをチェックするコマンドとして<a class="link" href="http://flake8.pycqa.org/en/latest/" target="_blank">flake8</a>や<a class="link" href="http://pylint.pycqa.org/en/latest/" target="_blank">pylint</a>などがあります。</p> </div> </div> </div> <div class="columns"> <div class="column is-6"> <h2 class="has-text-info is-size-4">Pythonはオブジェクト指向</h2> <div class="content com-article-text article"> <p>オブジェクト指向とは、プログラミングに用いられる考え方で、現在のプログラミングでは必須とも言われている概念です。 <br /> Pythonは、オブジェクト指向をサポートする言語です。言語の機能面では、クラスが使える言語と考えるとよいでしょう。</p> <p>クラスとは、同じような構造を持つデータの元になる型です。 <br /> データをすべてモノ(すなわちオブジェクト)と捉えた時に、クラスはオブジェクトの設計書のような役割を果たします。 <br /> この時、設計書に書かれている属性をプロパティ、設計図を元にして作ったモノをインスタンスと言います。 <br /> Pythonは、このクラスという機能が最小限の構文・意味付けを用いて実装されています。</p> </div> </div> <div class="column is-6"> <div class="add--display-table add--border-collapse"> <div class="add--display-table-cell add--valign-middle"> <figure class="image has-background-white add--shadow add-image-padding"><img src="https://landing.pyq.jp/mrkt/python/static/img/oop_basic_06.png" alt="Image" /></figure> </div> </div> </div> </div> </div> </div> </div> </section> <!-- 機能紹介 --> <section class="section section-background-color"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonの機能を<br class="is-hidden-tablet" />一部紹介</h1> <div class="columns is-variable is-multiline"> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/string.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />文字列処理</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonは本格的なプログラミング言語ですが、ちょっとした文字列処理でも便利に使えます。 たとえば、2つの文字列の変数<code>s</code> と <code>t</code>があったときに、<code>s + t</code>は連結した文字列になります。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/num.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />数値演算</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonでは、Cなどの他のプログラミング言語のように数値演算をできます。 Pythonでは整数は何桁でも計算できます。 実数は有限の有効桁数ですが、sympyなどのライブラリーを使うと何桁でも計算できます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/if.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />if文</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">プログラムの制御構造の条件分岐の文法があります。 条件分岐とは「晴れていたら庭に水をまく」のように条件に当てはまれば処理を実行し、条件に当てはまらない場合は処理を実行しなかったり、別の処理を行うことです。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/for.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />for文</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">プログラムの制御構造の「繰り返し処理」の文法があります。 繰り返し処理とは「1から100までの数値を順番に足し算する」のように、対象になるいくつかのデータを1つ1つ処理することです。 何度も繰り返し行う処理について何度もプログラムを書かなくてよくなります。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/re.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />正規表現</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">正規表現を使うと、似たような表現をまとめて処理できます。 たとえば <code>re.findall('@([^.]+).co.jp', text)</code> のようにすると、text中の <code>'@XXX.co.jp'</code> からXXXを抜き出せます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><span class="link"> <img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />デコレーター </span></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">デコレーターとは、関数を修飾(デコレート)するものです。 デコレーターを関数に設定することで、関数の前後に処理を追加できます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/file.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />with文</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonのwith文を使うと、ブロックの開始、終了時に処理を追加できます。 たとえば <code>with open()</code> とファイルを開くと、withブロック終了時にファイルが自動でクローズされ便利です。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/module.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />モジュールインポート</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonは他のPythonファイルから関数やクラスをインポートして活用できます。 Pythonではファイルを分割してプログラムを設計できます。 Pythonはインポートの仕組みがよくできているので、大規模なプログラムでも破綻せずに設計できます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.pyq.jp/python/library/datetime.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />日付処理</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonでは、日付や時間データを操作するためのクラスを提供しています。 単なる数値で日付を扱うと「月またぎ」のときなど計算が必要になりますが、datetimeモジュールを使うと11月30日の「次の日」は12月1日だとすぐに計算できます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://docs.python.org/ja/3.6/library/calendar.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />カレンダー処理</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">calendarライブラリーを使うと、カレンダーを表示したり、カレンダーに関係する色々な計算ができたりします。 具体的には1年分のカレンダーを表示したり、今年はうるう年か調べたり、2019年11月5日は何曜日かを計算できます。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><!-- <a class="link" href="" target="_blank"> --> <span class="link"> <img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />可変長引数 </span> <!-- </a> --></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-10 is-offset-1"> <p class="com-card">Pythonの関数には可変長引数を使って、任意の個数の引数を受け取れます。 また <code>**</code> のようにするとキーワード引数を可変長引数として受け取れます。</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- Pythonと社会 --> <section id="Society" class="section"> <div class="com-base-h1 line"> <div class="circle"> <h1 class="is-size-1 has-text-info">Pythonと<br class="is-hidden-tablet" />社会</h1> </div> </div> <div class="container"> <div class="columns"> <div class="column is-10 is-offset-1 com-base-text"> <p>ここまで、Pythonの概要や歴史、詳しい機能を見てきました。 次は、Pythonと社会の関わりを見ていきたいと思います。 Pythonを学ぶことで、あなたがどんな未来に関わっていく可能性があるのか、ぜひ想像してみてください。</p> </div> </div> </div> </section> <!-- Pythonの将来性 --> <section class="section com-accent"> <div class="container"> <h1 class="title is-size-4 has-text-centered has-text-white">Pythonの将来性</h1> <div class="columns"> <div class="column is-10 is-offset-1 article"> <p>Pythonの未来を考える時「Pythonは将来性があるのか?」という問いかけは、重要な疑問ではないでしょうか。 そこで、社会へのPythonの広がりにともなう、将来を見越した社会の動きについて紹介します。</p> </div> </div> </div> </section> <!-- Pythonとキャリア --> <section class="section"> <div class="container"> <div class="columns is-multiline"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonとキャリア</h1> <div class="columns"> <div class="column is-7"> <h2 class="has-text-info is-size-4">Pythonエンジニアは<br class="is-hidden-tablet" />安定して需要があり、<br />適切な報酬体系が整っている</h2> <div class="content com-article-text article"> <p>求人検索エンジン「<a class="link" href="https://jp.stanby.com/" target="_blank">スタンバイ</a>」の調査によると、2018年Pythonのエンジニアの年収が、国内でTOP3に入りました。 この調査では中央値を元に調査が行われており、Pythonは安定した収入を見込めることが読み取れます。 この調査では求人件数も公開されており、Pythonは、1位のGo・2位のScalaに比べても多くの求人が出ています。 また、2017年から1.7倍の求人件数が増加しています。 これらのデータからも、Pythonの需要が多くあり、かつ将来的にも増加傾向にあることがわかります。</p> </div> </div> <div class="column is-5"> <figure class="image is-3by2"><img src="https://landing.pyq.jp/mrkt/python/static/img/04_career_01ranking.png" alt="Image" /></figure> </div> </div> </div> </div> </div> </section> <!-- Pythonの試験 --> <section class="section section-background-color"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Pythonの試験</h1> <h2 class="has-text-info is-size-4">Pythonの能力を<br class="is-hidden-tablet" />適切に測れる評価基準の統一</h2> <div class="content com-article-text article"> <p>Python技術者の就労需要の増加にともない、Pythonの技術力を効果的に表現し、統一された基準で評価する必要性も高まってきています。 国内でPython基礎力を測る資格試験の開設など、能力の表現・評価の為の動きが広がっています。</p> </div> <div class="columns"> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <div class="add--display-table-row"> <h2 class="title is-size-5 has-text-centered has-text-primary">Pythonエンジニア基礎試験</h2> </div> <div class="add--valign-top add--display-table-cell"> <div class="content column add--space is-size-6"> <p>Pythonの基礎的な能力を試すため、国内で受けられる資格試験があります。 Python3エンジニア認定基礎試験は2019年7月までに5000人以上が受験しており、Python3エンジニア認定データ分析試験の開始も進められています。</p> <p><a class="link" href="https://www.pythonic-exam.com/exam/basic" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Pythonエンジニア基礎試験</a> <br /> <a class="link" href="https://www.pythonic-exam.com/exam/analyist" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Pythonエンジニアデータ分析試験</a></p> </div> </div> </div> </div> <div class="column"> <div class="add--display-table add--border-collapse add--shadow has-background-white"> <div class="add--display-table-row"> <h2 class="title is-size-5 has-text-centered has-text-primary">基本情報技術者試験</h2> </div> <div class="add--valign-top add--display-table-cell"> <div class="content column add--space is-size-6"> <p>国家試験でもPythonが使用可能に。2020年4月から、IPA(独立行政法人情報処理推進機構)の提供する基本情報技術者試験をPythonで受けられます。 基本情報技術者試験は、ITに関する基本的な知識・技能を評価するための国家試験です。</p> <p><a class="link" href="https://www.jitec.ipa.go.jp/1_11seido/fe.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />基本情報技術者試験</a></p> </div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- Pythonと技術コミュニティ --> <section class="section com-accent"> <div class="container"> <h1 class="title is-size-4 has-text-centered has-text-white">Pythonと<br class="is-hidden-tablet" />技術コミュニティ</h1> <div class="columns"> <div class="column is-10 is-offset-1 article"> <p>Pythonなどの技術領域には、大小さまざまな技術コミュニティが存在します。 ここでは、Pythonのコミュニティについて紹介します。</p> </div> </div> </div> </section> <!-- 技術コミュニティとは? --> <section class="section"> <div class="container"> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />技術者コミュニティとは?</h1> <h2 class="has-text-info is-size-4">技術者コミュニティは、<br class="is-hidden-tablet" />技術の知見を共有・交換し合う<br class="is-hidden-tablet" />エンジニア文化です</h2> <div class="content com-article-text article"> <p>技術分野で言われる「コミュニティ」とは、同じ技術に興味を持った人が集まり、知見を共有したり一緒に学ぶ文化です。 技術者たちは、自発的に企画・運営される勉強会やセミナーを通して、様々なテーマで学んだことや得た知識を交換しています。</p> </div> <div class="com-note"> <h1 class="title is-size-4 com-note-text has-text-centered">なぜ技術者コミュニティは<br class="is-hidden-tablet" />ボランティアで<br class="is-hidden-tablet" />運営されているの?</h1> <div class="columns is-multiline"> <div class="column is-10 is-offset-1 has-background-light"> <div class="columns"> <div class="column content com-note-text"> <p>多くの技術者コミュニティは、ボランティアで運営されています。 テーマとして扱われる技術本体が、オープンソースとしてボランティアで開発されていたり、オープンな環境で技術を広く交換することなどが理由です。 ですが、何よりも、その根底には技術者の情熱があるでしょう。</p> <p>「好きな技術の良さを多くの人に広めたい」「知見を共有、交換することで自分の技術レベルを高めたい」 <br /> 「同じものが好きな仲間でわいわいと盛り上がりたい」</p> <p>そんな気持ちで、多くの技術者がコミュニティに参加したり、運営に関わっています。</p> </div> </div> </div> </div> </div> </div> </div> <div class="columns"> <div class="column"> <h1 class="title is-size-4 has-text-info"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-h3.png" alt="icon" class="com-base-icon-center" />Python分野の<br class="is-hidden-tablet" />コミュニティ</h1> <div class="content com-article-text article"> <p>Pythonのコミュニティはとても活発で、国内外で様々なカンファレンスやイベントが開催されています。 国内でのPythonコミュニティの特徴を聞くと、「親切な技術者が多い」「初めてでも参加しやすい雰囲気」という感想を聞くことが多いです。 <br /> また、仕組みの面でもどんな人も不快な思いをせず過ごせる、コミュニティの健全運営の文化が浸透しています。 PyConなど大きなカンファレンスでは、ハラスメントなどのポリシーを規定する行動規範が明文化されています。 Pythonを学び使う上でコミュニティへの参加を視野に入れると、大きく世界が広がることでしょう。</p> </div> <div class="columns is-variable is-multiline"> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.python.jp/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Python.jp</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-4"> <figure><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/04_community_01pyjug.png" alt="Image" /></figure> </div> <div class="column is-8"> <p class="com-card">Python.jpは日本のPythonコミュニティです。 Pythonのドキュメント翻訳などのプロジェクト、イベントやコミュニティなど国内のPython情報が配信されています。 公式のDiscordサーバでは、情報交換・質問・雑談など活発にコミュニケーションしています。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://www.pycon.jp/index.html" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />PyCon JP</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-4"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/04_community_02pyconjp.png" alt="Image" /></div> <div class="column is-8"> <p class="com-card">PyConは、世界各地でPythonやPythonを使ったソフトウェアについて情報交換し、交流するためのカンファレンスにつけられる名称です。 PyCon JPは日本で開催されるPyConであり、国内外のPythonユーザーの情報交換の場として2011年より継続して開催されています。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://django.connpass.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Django Congress JP</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/04_community_03djangocongress.png" alt="Image" /></div> <div class="column is-9"> <p class="com-card">PythonのWebフレームワークであるDjangoの、日本開催のカンファレンスです。 Djangoに関わるすべての人が参加できます。 Django Congressのように、Python関連技術のコミュニティも活発に活動しています。</p> </div> </div> </div> </div> </div> <div class="column is-6"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://pyladies-tokyo.connpass.com/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />Pyladies Tokyo</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/04_community_04pyladies.png" alt="Image" /></div> <div class="column is-9"> <p class="com-card">PyLadies Tokyoは、女性のPythonista(Python使用者)をつなぐPyLadiesの東京(または日本)支部です。 Pyladiesのように、Pythonをベースに共通点を持つつながりを得られるコミュニティも、数多く存在しています。</p> </div> </div> </div> </div> </div> <div class="column is-10 is-offset-1"> <div class="add--shadow has-background-white add--display-table"> <div class="add--display-table-row"> <div class="com-card link"> <h2 class="title is-size-5"><a class="link" href="https://connpass.com/category/Python/" target="_blank"><img class="com-card img-link" src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-listmark.png" alt="Image" />connpassの「Python」カテゴリ</a></h2> </div> </div> <div class="add--display-table-row"> <div class="columns"> <div class="column is-3"><img class="image com-card" src="https://landing.pyq.jp/mrkt/python/static/img/04_community_05connpass.png" alt="Image" /></div> <div class="column is-9"> <p class="com-card">有志が運営するPythonコミュニティやイベントは多くあります。 ここでは、connpassの「Python」カテゴリのページを紹介します。興味を持ったら、自分にあったコミュニティを探してみてください。</p> </div> </div> </div> </div> </div> </div> </div> </div> <!-- おすすめのPythonコミュニティを教えてください --> <div class="com-note"> <h1 class="title is-size-4 com-note-text has-text-centered">おすすめの<br class="is-hidden-tablet" />Pythonコミュニティを<br class="is-hidden-tablet" />教えてください。</h1> <div class="columns is-multiline"> <div class="column is-10 is-offset-1 has-background-light"> <div class="columns"> <div class="column content com-note-text"> <p>本セクションは、コミュニティで活動しているPythonistaのみなさんの意見を元に更新します。</p> <p>このページは、Python学習サービスPyQが公開する、Python言語の解説ページです。 本ページでPythonを学びたくなった人に勧めたい、Python関連技術のコミュニティを教えてください。 自薦・他薦は問いません。 お寄せいただいたコミュニティは、定期的に活動しているか・継続的な活動が見込めそうか等一定の基準で判断し、定期的に追加・更新します。 オススメのコミュニティがある!という方は、ぜひご意見をお寄せください。</p> <div class="has-text-centered columns"> <div class="column is-6 is-offset-3"><a class="button is-rounded com-base is-fullwidth has-text-white" href="http://lpm.pyq.jp/Recommend_community.html">ご意見フォーム</a></div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- おわりに --> <section class="section section-background-color"> <div class="com-base-h1 line"> <div class="circle"> <h1 class="is-size-1 has-text-info">おわりに</h1> </div> </div> <div class="container"> <div class="columns"> <div class="column is-8 is-offset-2"> <div class="content is-size-6"> <figure class="has-text-centered"><img src="https://landing.pyq.jp/mrkt/python/static/img/img-icon-hero.png" alt="icon" /></figure> <p>このページの、Python文法についての掲載情報は、主にPythonの公式ドキュメントで裏付けを取っています。 Pythonに興味が出たら、ぜひ公式ドキュメントにも目を通してみてくださいね。 そこからPythonistaへの第一歩がはじまることでしょう。</p> <div class="has-text-centered columns"> <div class="column is-6 is-offset-3"><a class="button is-rounded com-base is-fullwidth has-text-white" href="https://docs.python.org/3/" target="_blank">公式ドキュメント</a></div> </div> <p>早速インストールしてみたくなった場合は、以下のページからインストールできます。開発環境を使いたい人は<a class="link" href="#development_environment">開発環境紹介</a>セクションで紹介しています。</p> <div class="has-text-centered columns"> <div class="column is-6 is-offset-3"><a class="button is-rounded com-base is-fullwidth has-text-white" href="https://www.python.org/downloads/" target="_blank">ダウンロードページ(Python.org)</a></div> </div> </div> </div> </div> </div> </section> <!-- ページ作成者について --> <section class="section com-accent"> <div class="container"> <h1 class="title is-size-4 has-text-white has-text-centered">このページの<br class="is-hidden-tablet" />作成者について</h1> <figure class="has-text-centered"><a href="https://pyq.jp"><img src="https://landing.pyq.jp/mrkt/python/static/img/pyq_logo_white.png" alt="icon" /></a></figure> <div class="columns"> <div class="column is-10 is-offset-1 article last content"> <p>このページは、Pythonを実際に書きながら独学できるオンラインサービス、<a class="has-text-primary link" href="https://pyq.jp" target="_blank">PyQ(パイキュー)</a>の運営チームが作成しました。</p> <p>「何かプログラミングをやってみたいけど、Pythonってどうなの?」と感じているあなたや、「Pythonってどうして人気なの?」と思っているあなたに、Pythonの魅力を伝えたくて書きました。 PyQは、Pythonを愛する技術者が、Pythonをもっと身近に感じてほしいという思いで作っているサービスです。 このページを読んで、Pythonの使い手「Pythonista」仲間が増えるとうれしいです。</p> <p>PyQはPythonのインストールや環境構築などが不要で、ブラウザだけですぐPythonを学習できます。 <br /> 10日間、基礎文法を無料で試すこともできますので、もし、試しに少しPythonを触ってみたいと思ったら、私たちのサービスにもぜひ遊びにきてください。</p> <div class="column is-6 is-offset-3"><a class="button is-rounded is-fullwidth has-text-info has-background-white" href="http://lpm.pyq.jp/free-plan.html" target="_blank">PyQ無料体験</a></div> </div> </div> </div> </section> <!-- マルケトボディタグ 上を書き換える --></div> <!-- totop --> <div class="footer-CTA footer-CTA-hidden"> <div class="add--elements-totop add--fixed-button"> <a class="icon has-text-primary is-hidden-mobile" id="page_top"><i class="fas fa-2x fa-chevron-circle-up"></i></a> </div> </div> <!-- totop終了 --> <footer class="navbar is-secondary"> <div class="navbar-brand is-right"> <p class="navbar-item"><a href="http://www.beproud.jp/privacy_policy/" target="_blank" class="has-text-light is-size-7">プライバシーポリシー</a></p> </div> <div class="navbar-end"> <p class="navbar-item"><a href="http://www.beproud.jp/" target="_blank" class="has-text-light is-size-7">© BeProud</a></p> </div> </footer> <script src="https://landing.pyq.jp/mrkt/python/static/js/scripts.js"></script> <script type="text/javascript" src="//munchkin.marketo.net//munchkin.js"></script><script>Munchkin.init('498-OPB-366', {customName: 'python', wsInfo: 'j1RR'});</script> <script type="text/javascript" src="/js/stripmkttok.js"></script></body> </html>