NameError: name ‘xxx’ is not defined | Python用語辞典

Python独学ならTech-Joho TOP > Python用語辞典 > NameError: name ‘xxx’ is not defined

Pythonのプログラムをつくっていて、”NameError: name ‘xxx’ is not defined”というエラーの意味や、このエラーが表示されたときのなおし方についてのページです。

エラーの全体は、このような内容になっているはずです。

Traceback (most recent call last):
module __main__ line 145
traceback.print_exc()
module <module> line 10
NameError: name ‘xxx’ is not defined

このうち、重要なのは一番最後の行です。

このxxxの部分は人によって違うと思いますので、実際のエラーにある内容に置き換えて考えて下さい。

エラーの意味

NameErrorは日本語にすると名前のエラー。

つまり、変数の名前に関するエラーです。

name ‘xxx’ is not definedの意味は、xxxという名前の変数が定義されていませんという意味です。

考えられる原因となおし方

1 変数名の書き間違い

恐らく、一番ありがちなのは、定義してある変数を間違った変数名で呼び出そうとしている場合です。

変数 xxを定義したのに、xxxに代入しようとしている、

変数pictureの綴りを間違えて、pictuleになっている等です。

2 変数がない

本当に定義されていない変数に値を代入しようとしている場合もあります。

コピペを駆使してプログラムを作っている時に、起こりがちです。

そのようなときは、エラーの下から2行目を見て、エラーが発生している箇所を突き止めましょう。

module <module> line 10

このような場合、line 10、つまり1行目でエラーが発生しています。

10行目より上で、変数(例のエラーの場合xxx)を定義しましょう。

 

Python = | Python用語辞典

Python独学ならTech-Joho TOP > Python用語辞典 > Python =

Pythonの”=”の意味

このページでは、Pythonでの”=”の意味について説明します。

“=”は、イコールと読みます。

 


=の意味

Pythonでは、”=”は、その右に書いた値を、左に書いた変数に代入するための文字です。

例えば、”x = 10″と書くと、”=”の右の10を”=”の左のxに代入します。

“=”は、正確には、代入演算子(だいにゅうえんざんし)とよびます。

 


代入とは

代入の意味は、変数を箱として考えるとわかやすいかもしれません。

xという箱(変数)に、10という整数の値を入れるのが、代入だと考えてみて下さい。

Pythonにおける代入のイメージ

 


“=”をためしてみる

下の黒い欄では、Pythonのプログラムを入力して実行することができます。実際に”=”を使ってみましょう。

 

まず、”x = 10″と入力して、エンターを押してください。

これで、変数xに10という数字(整数)が代入されました。

この状態で、”print(x)”と入力してエンターを押してください。

これは、xに設定されている値を表示して下さい、とPythonに命令しています。

すると、先程xに代入した10が表示されます。

xに10を代入する例

 

続けて、”x = 20″と入力して、エンターを押してください。

これで、変数xに20という数字(整数)が新たに代入されました。

この状態で、”print(x)”と入力してエンターを押してください。

これは、xに設定されている値を表示して下さい、とPythonに命令しています。

すると、最初に代入した10ではなく、次に代入した20が表示されます。

代入演算子による代入の例


==と=の違い

数学や算数では、”=”は左辺と右辺が等しい、同じ値であることを表す記号、等号(とうごう)です。

そのため、Pythonでも、”=”を左右が等しい、という意味と勘違いしてしまう人がいます。

しかし、Pythonでは、”=”はその左右の値が等しいという意味ではありません。

 

Pythonでは、イコールを2つ横に並べる”==”がでてきます。

“==”と”=”は、によく似ていますが違う意味です。

“==”は、Pythonで、左右の値が等しいかどうかを調べ、等しければ”True”を、等しくなければ”False”を返す比較演算子です。

詳しくは、”==”の記事をご覧ください。


 

簡単な計算をしてみよう | Python独学ならTech-Joho(3)

Python独学ならTech-Joho TOP > Python入門カリキュラム > 簡単な計算をしてみよう

簡単な計算をしてみよう

Pythonをつかって、電卓のような簡単な計算をしてみましょう。

下の黒い欄に、”1 + 2″と入力しエンターキーを押して下さい。


3が表示されましたか?

このように、数式を入力するだけですぐに計算をしてくれます。

“4 + 5″、”3 – 1″等、いろんな数字の計算を試してみて下さい。

ちなみに、”-“で引き算、”/”で割り算、”*”で掛け算ができます。


Pythonで使用できる計算の記号を演算子といいます。下の表は、主な演算子の一覧です。

参考
Python3 reference operators

演算子計算内容
+足し算
引き算
*掛け算
/割り算
%割り算の余り
// 割り算の余り以外の答え( 整数の商 )

少数の計算も試してみて下さい。
“3.14 * 2″を入力してエンターキーを押して下さい。

ちゃんと2倍になり、6.28が表示されましたか?

次に、”2.0 * 2″を計算してみましょう。
4ではなく、4.0と表示されましたか?

Pythonでは、整数と小数は区別されています。

小数の計算は小数になります。


今度は、文字列を入れてみましょう。

適当に文字列を入力して、エンターキーを押して下さい。

下のようなエラーが表示されたはずです。

文字列のエラーの例

文字列を入力するには、シングルクォーテーション(‘)かダブルクォーテーション(“)で、入力したい文字列を囲む必要があります。

こんな感じです。

クォーテーションマークでくくった文字列入力の例

試してみて下さい。


Pythonを使う感覚がつかめたでしょうか?

練習問題をこちらに用意したので、試してみて下さい。
簡単な計算の練習問題1

次に進みましょう。

第4回 変数に値を代入する方法


Pythonでできること | Python独学ならTech-Joho(2)

Python独学ならTech-Joho TOP > Python入門カリキュラム > Pythonでできること

Pythonとは

Pythonは、全世界で最も人気なプログラミング言語の一つです。
https://www.python.org/

シンプルで書きやすく、他の人が作ったプログラムも読みやすいので、初心者にも優しい言語です。
しかも、拡張に優れ、本格的なプログラムも作ることができるので、昔から研究者の間でよく利用されていました。

最近では、InstagramやYouTube等のWebサービスや、人工知能・機械学習のツールとしてよく使われています。

また、あまりはやってはいませんが、パソコン上で動作するアプリを作ることもできます。
ゲームや動画の再生など、マルチメディアを利用したアプリの開発が簡単にできます。

本サイトの記事を読むと、Webサービスを実際に作ったり、人工知能の利用を試したりすることができます。

詳しくは下のリンクから各記事をごらんください。

PythonでTwitterからツイートを収集する

Python DjangoでWebアプリケーションを作ってみる

Webサイトから定期的に情報を取得する(スクレイピング)

Pythonでお絵かきしてみる

Pythonでディープラーニングしてみる(AWS Cloud9/Keras)


Pythonとへび

このページの上の絵はへびです。Pythonは英語でニシキヘビを意味する単語で、ロゴマークも蛇を模した物になっています。

なお、プログラミング言語としてのPythonの名前の由来は、

イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』である。

https://ja.wikipedia.org/wiki/Python 

とのことです。


Pythonが使われているサービス

Pythonでできることを理解するには、実際にPythonを使って(一部でも)作られているWebサービスを見るのが早いと思います。

Python製のサービスをいくつか見てみましょう。

Instagram

instaのロゴ

おしゃれな写真がたくさん共有されているサービス、InstagramはPythonでつくられているようです。

また、Pythonの有名なWebフレームワークであるDjangoを使っているそうです。

参考

https://engineering.instagram.com/what-powers-instagram-hundreds-of-instances-dozens-of-technologies-adf2e22da2ad

本サイトのWebサービスをつくる初心者用の記事でも、Djangoを使ってサービスを作ります。

PythonでWebサービスをつくってみる。

YouTube

tubeのロゴ

動画の共有サービス、YouTubeもPythonが使われています。

YouTubeに限らず、GoogleのサービスはPythonが使われている例が多いようです。

参考

http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html

あなたもPythonでやってみる

本サイトでは、初心者に向けて、Pythonを使ってサービスをつくる流れの丁寧なチュートリアルを用意しています。(現在準備中)

PythonでTwitterからツイートを収集する

Python DjangoでWebアプリケーションを作ってみる

pythonでディープラーニングを試してみる。Webサイトから定期的に情報を取得する(スクレイピング)

Pythonでお絵かきしてみる

Pythonでディープラーニングしてみる(AWS Cloud9/Keras)

これを参考にして、YouTubeやInstagramのようなすごいサービスをつくりましょう!

 


次はこちら

第3回 簡単な計算をしてみよう

 


Python入門

Pythonについて、より詳しいことを知りたい方は、
こちらから、本サイトのPython入門シリーズをご覧ください。

 

第1回 Python Hello World

Python2 と Python3

Pythonには2と3があります。

Pythonをパソコンにインストールするには、Pythonの公式ページからダウンロードします。

https://www.python.orgから引用(2017年8月29日時点でのスクリーンショット)Python公式ページのダウンロード欄

公式ページの”Downloads”をクリックすると、ダウンロード欄が表示されます。

ここからは、Python3の最新版”Python3.6.2″か、Python2の最新版”Python2.7.13″のどちらかをダウンロードできます。

 

2と3の違い

だいたいわかると思いますが、Python2はPython3の前のバージョンです。

ほとんどの場合、新しい方のPython3をインストールすればいいと思います。

ただし、Python2とPython3は大きく仕様が変わった点がいくつかあります。

そのため、特定のライブラリの過去のバージョンを利用したい等、Python2を利用する場合もあります。

 

 

なお、本サイトで利用できる、ブラウザ上のPython実行環境では3系が動きます。

 

スマートフォンでもできる。ブラウザですぐPython HelloWorld | Python独学ならTech-Joho(1)

Python独学ならTech-Joho TOP > Python入門カリキュラム > スマートフォンでもできる。ブラウザですぐPython HelloWorld

試してみよう

Pythonの最初の一歩、”Hello world”を表示するプログラムを試してみましょう。

下の黒い欄に直接Pythonプログラムを入力すると、実行できます。

こんな風にprint(“Hello World”)という文字を入力してエンター(⏎)を押して下さい。

Hello worldと表示されたら成功です。

解説

Continue reading “スマートフォンでもできる。ブラウザですぐPython HelloWorld | Python独学ならTech-Joho(1)”