質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

4回答

945閲覧

変数の初期化について。

GuMasi

総合スコア73

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/04/19 23:59

編集2019/04/20 01:33

コードを写経してみたのですが、いまいち変数を初期化する理由がわからず質問させていただきました。変数を初期化する理由を教えてください。

a = "this is"
b = "a"
c = "test text"
a+b+c
a = ""
print(a, b, c)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/04/20 00:13

写経したコードを、ある程度示していただけませんでしょうか?
GuMasi

2019/04/20 01:35

回答していだだきありがとうございます。 コードを追加させていただきました。
maisumakun

2019/04/20 01:38

どの行が疑問なのですか?
GuMasi

2019/04/20 01:55

a= ""でa="this is"を初期化してるのかと思うのですが、なぜ初期化が必要なのかと疑問を持ちました。
guest

回答4

0

ベストアンサー

Pythonには言語仕様としての変数の初期化という概念はありません!!
というのが直截の回答です。

とはいえあなたが聞きたいことはそういうことではないのでしょうから、あなたが書いたコードを示してください。そうでないとあなたが聞きたいことについて話ができません。


「言語機能を説明する」ための目的のないコードなのでそれぞれに意味はありません。
強いて言うと

  1. 値を名前に束縛することができる(俗に言う変数への代入)ことの説明
  2. 名前で値が取り出せることも説明
  3. 文字列を+で連結できることの説明
  4. a+b+cを評価しても、abcという名前に束縛されている値に影響はないことの説明
  5. 1度値を束縛した名前も、もう1度別の値を束縛し直すことができることの説明

のためのソースでしょう。

""に束縛させていることに意味はありません。再束縛できますよ、と言っているだけかと思います。

投稿2019/04/20 00:14

編集2019/04/20 04:12
quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/04/20 01:37

回答していただきありがとうございます。 そうなのですね。 コードを追加させていだだきました。よろしくお願いします。
GuMasi

2019/04/20 09:21

ありがとうございます。 わかりやすく教えていただき助かりました。
guest

0

a= ""でa="this is"を初期化してるのかと思うのですが、なぜ初期化が必要なのかと疑問を持ちました。

a=""は、変数aに空文字列を代入している。
a="this is"は、変数aにthis isという文字列を代入している。

特に、初期化でも、必要でもありません。「初期化が必要」と思うから疑問なのであって、「そんなことはない」と思えば疑問は消えます。

投稿2019/04/20 06:07

otn

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/04/20 09:36

回答していただきありがとうございます。そうでよね、エラーを減らすためとかに初期化するのかと思い今回質問させていただいたのですが、皆さんに教えていただいてそのようでないと言う事がわかりとても助かりました。
guest

0

a= ""でa="this is"を初期化してるのかと思うのですが、なぜ初期化が必要なのかと疑問を持ちました。

それは単に、「あとでa= ""が必要だから代入している」以上の意味はありません。

投稿2019/04/20 01:58

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/04/20 02:13

ありがとうございます。そうなのですね、もし同じような事をお聞きしていたらすみません。 エラーを防ぐために使われると言う事もありますでしょうか?
himazin.blm

2019/04/22 00:54

エラーを防ぐために「a=""」をやるとしても、やるのは「aを利用した後」ではなく、「aを再利用する直前」になります。なぜそうするかといえば、デバッグする際に確認が困難になるからです。
GuMasi

2019/04/23 20:19

ありがとうございます。 理解する事が出来ました。
guest

0

変数の初期化をしないということは、飲食店で伝票が置かれた席に座ってオーダーをはじめるようなものです。
その店の伝票取扱ルール(=お使いの言語環境が何か)次第では問題ないかもしれませんが、自分のオーダー以外の分も含めた請求をされても文句は言えません。
家計簿を合わせる(デバッグする)ときに余計な可能性を考えたくなければ、大丈夫だと思っている環境でも変数の初期化をやっておいたほうが精神衛生上良いかもしれません。

投稿2019/04/20 00:45

himazin.blm

総合スコア581

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuMasi

2019/04/20 01:40

回答してくださりありがとうございます。 そうなんですね、とてもわかりやすく教えてくださり助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問