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

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

ただいまの
回答率

90.50%

  • Python

    8007questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • プログラミング言語

    682questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

プログラムの保存(拡張子)について

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 328

annaharg

score 4


 前提・実現したいこと

pythonプログラミング初心者です。連投失礼します。
練習で作ったコードはエディタで管理すればいいことはわかりました。
その作成したコードの保存について知りたいです。

 発生している問題・エラーメッセージ

annaconnda のspyderや手持ちの本だと拡張子をtxtにするようにしたほうがいいと読み取れます。
しかし、いくつかのエディタの説明ではそのコードの拡張子(pythonなら.py)にして保存する又は拡張子で自動保存するようになっているようですがどちらが良いのかわからないです。
何らかの決まりがあったり、メリット、デメリットがあったりするのであれば教えてほしいです。

 該当のソースコード

print("hello world")
名前を付けて保存「hello worldを表示.py」か「hello worldを表示.txt」

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • LouiS0616

    2018/05/03 17:36

    『annaconnda のspyderや手持ちの本だと拡張子をtxtにするようにしたほうがいいと読み取れます。』どんな記述があるんです?

    キャンセル

  • annaharg

    2018/05/03 17:45 編集

    そのまま保存しましょうと書いてあって、プリントスクリーンで.txtになっています。 spyderを動かすときはそのまま保存すると.txtになるので.pyに変える必要あるのかなぁと思いました。 どちらも保存されたものを開くときは.txtでも開けるのでそういうものかと思っています。

    キャンセル

  • pepperleaf

    2018/05/03 17:56

    手元のSpyder3(anacondaが勝手にインストール)では、*.py の拡張子でしたが、、、設定が違うのでしょうか?

    キャンセル

  • annaharg

    2018/05/03 18:05

    以前にいじってしまったのかもしれません。

    キャンセル

回答 3

+5

こんにちは。

拡張子の件は、既に回答されている通りです。

ファイル名にスペースやASCII文字以外の文字を使うことは、避けた方が良い場合が少なくありません。

 ASCII文字以外の文字を使う際の問題点

そのファイルを取り扱うプログラムが日本製や多国語化されている場合には問題は出にくいですが、そうでないプログラム(プログラミング言語の処理系は割と多い)は、無用なトラブルに苦しむことがあります。
ですので、プログラムのソース・ファイル名にASCII以外の文字を使っていると素人丸出しという状態になりますし、無駄なトラブルに悩むことがあります。

 スペースを使う際の問題点

対応はできますが、面倒なことが結構起きます。プログラマーはコマンドプロンプトやターミナルを使うことが少なくないのですが、そこでファイルの内容を表示したりコピーしたり等のコマンドを入力することがあります。
その時、ファイル名にスペースが含まれていると、複数の単語に分解されて認識されてしまい、一つのファイル名として処理されない場合がほとんどです。多くの場合、"(ダブルクォート)や'(シングルクォート)で囲むことで対処できますが、まぁ面倒な思いをすることになります。
ということで、こちらも上記と同じくプログラムのソース・ファイル名にスペースを入れていると素人丸出しとなり、かつ、ちょっと面倒な思いをすることになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/03 18:26

    追記ありがとうございます。文字の種類とスペースにきちんと気を付けます。コードを書く部分の中の話はよく書いてあるのですが、周りについてはおまじないのようにさらっと流されていることが多いようで四苦八苦しています。

    キャンセル

  • 2018/05/03 18:30

    なるほど。解説する人にとって既に「体が覚えている」状態になっていることって意外に説明の必要性に気づくことが難しいので、不慣れな人にとって辛いですね。
    このサイトはそのような時に利用すると結構便利と思います。説明の必要性に気がついていないだけで聞かれれば答えることが出来る人は多いですから。

    キャンセル

  • 2018/05/03 18:31

    ありがとうございます。

    キャンセル

  • 2018/05/03 18:32

    私が詳しく説明しなかったことを代わりに書いてくださってありがとうございます

    キャンセル

+3

Pythonなら拡張子は py です。
ファイル名に空白や全角文字を含めるのは良識を知らない奴だと思われるから止めた方が良いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/03 17:50

    良識を知らない奴>>そこまでになってしまうことなのですね。気を付けます。

    キャンセル

  • 2018/05/04 13:36

    annahargさん。
    横からすみません...
    "良識を知らないやつ"
    までは行かないでしょうけど、
    プログラミングってほとんどが半角英数字なので「無教養」か「あえてクラッシュさせたりするやつ」と
    見られる可能性があるということでは?

    キャンセル

  • 2018/05/04 19:35

    Chironianさんも書かれていますが、素人丸出しがバレバレです。
    シングルバイト圏のソフトがマルチバイト圏でまともに動くと思うのは地雷原を突っ切って無用なトラブルに巻き込まれたり、会社によっては他のメンバーに軽んじられることもあります。
    個人的にはOracle11gのバージョンアップに伴う移行でキャラクタセットがSJIS(マルチバイト文字1文字が2バイト)→Unicode(同3バイト)に変わり、半角英数字で設計するって規約があったのにマルチバイト文字で設計されていたテーブル名や列名が多数あることが発覚し、テーブル名や列名は30バイト以内で定義しなければならない、って制約でエラーが多発して泣きました。

    キャンセル

checkベストアンサー

+2

pythonコードならすべて***.pyで良いです。jupyterなら.ipynbになるはずです。
***.txtにする理由はないと思います・・・。

 追記

「hello worldを表示.py」

だと、

  • スペースが入る
  • ascii以外の文字列が入る

の2点であまり良いファイル名ではありません。

改善案は、

  • print_hello_world.py
  • hello_world.py

などです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/03 17:45

    スペースが入ると良くない理由、ascii以外の文字が入ると良くない理由もあった方が良いと思います。
    コマンドプロンプトからだと、結構、困るのですが、それが通じない人が多いようです。

    キャンセル

  • 2018/05/03 17:49

    ありがとうございます。asciiのみで名づけるようにします。改善案もつけていただきありがとうございます。(今までの直さなきゃ)

    キャンセル

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Python2系と3系の違い

    今までPython2.x系を使っていましたが、3.x系に移行しようかと考えています。両者は互換性がないとのことですが、違いを教えてください。

  • 解決済

    pythonで文章内の改行数を数える方法

    pythonやmecabを使って文章内に出現する改行数をカウントしたいのですが、良い方法が見つかりません。 教えていただけませんでしょうか? 例: これはサンプルです。 これはサ

  • 解決済

    Python2.7のprint文で変数を展開したい

    $a = 10; echo "Hello,World!".$a.$a+2;のようにどこでも変数を展開し、演算などをしたい。 a = 10 print "Hello,World!" 

  • 解決済

    pythonの関数の引数にlistを使いたい

    pythonの関数の引数について質問です。 def hello(int x[], int y[]): のようにlistを引数として使いたいのですがどうすればよろしいのでしょうか

  • 受付中

    Pythonの2系と3系の互換性について

    対話型シェルにおいて3系をグローバル指定にした状態で、2系のprint文「print "Hello World!"」を実行してもエラーにならずちゃんと表示されます。一方、2系をグロ

  • 受付中

    pythonで好きな画像を表示するやり方

    python3.5,OpenCV3.3を使っているプログラミング初心者です。 好きな画像を入力して、表示するプログラムを書きたいのですが、 error: (-215) si

  • 解決済

    print文について。

    前提・実現したいこと pythonでは、print文に()を付けないとエラーになりますか? こちらのサイトでは、 print文にカッコが付いていなくて、この通りに実行したらエラーに

  • 解決済

    Pythonの実行を簡略化

    pythonで任意の拡張子をもつファイルを削除するプログラムを書きました。 いちいちファイルの場所に行って Python hogehoge.py とするのは面倒なので、un

同じタグがついた質問を見る

  • Python

    8007questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • プログラミング言語

    682questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。