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

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

新規登録して質問してみよう
ただいま回答率
85.35%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

Q&A

解決済

2回答

2827閲覧

【Python】入力したPrint関数が出力されません!

bran

総合スコア1

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

標準出力

標準出力(stdout)は、プログラムが標準的に用いるデータ出力元。標準出力に書き込み要求を発行しすることにより、ディスプレイ装置にデータを表示することができます。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

0グッド

0クリップ

投稿2021/09/06 16:56

前提・実現したいこと

干支の計算プログラムを作ってみようと思い、ターミナルとAtomを使っていたのですが、それ以前の問題が発生しました。
パソコンはMacbook Airで、Python初心者です。

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

Macbookのターミナルで、Atomのファイルに入力したprint関数が出力されません...
原因には何が考えられますか?

Atom: print(3 + 4) ターミナル: /Users/name/Desktop/yasashiipython/python eto.py 入力と出力という基本的なプロフラムを行えるはずなのですが、計算結果が表示されず困っています。 ### 試したこと print(3 + 4)をAtomで入力したあと、ファイルの保存。デスクトップのファイルを開いて、保存されたことも確認しました。 その後、ターミナルでpython eto.pyと何度入力しても計算結果は表示されず。デスクトップファイルの情報を開いても、 「このアプリケーションで開く」の欄は「Atom」となっています。ターミナルとAtomがしっかり紐付けされているはずなのですが。 これ他に、何か試せることはありますか? ### 補足情報(FW/ツールのバージョンなど) Pythonのバージョンは3.9.1で最新のはずです。 Atomで出てくるデフォルトの文章は、大した重要度はないと思ったのでXボタンで消していますが、他に何か見落としていないでしょうか?拡張子も.pyなのでちゃんと繋がっていると思います。

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

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

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

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

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

jbpb0

2021/09/06 17:04

python3 eto.py だと、どうなりますでしょうか?
bran

2021/09/06 17:07

質問ありがとうございます。 python eto.py でも python3 eto.pyでも SyntaxError: invalid syntax >>> python3 eto.py File "<stdin>", line 1 python3 eto.py ^ と表示されます。ただの構文エラーを意味するのでしょうか?
jbpb0

2021/09/06 17:23

あ、おそらくPythonを起動した状態でやってますね それなら、そこに print(3 + 4) と入力してリターンキーを叩いたら「7」と表示されませんか?
bran

2021/09/06 17:23

上記の結果は対話モードの場合で、quit()してから通常のモードで python eto.pyと入力すると onamaename(←名前)noMacBook-ea:~ name(←名前)$ となります。説明の順序悪くてすみません!
bran

2021/09/06 17:24

あ、投稿が重なってしまいましたね。 いますぐ試します!
jbpb0

2021/09/06 17:25

対話モードじゃない状態の時に python3 eto.py だと、どうなるのでしょうか?
bran

2021/09/06 17:32

対話モード時(Python起動状態ですか?)にターミナルで「python eto.py」と入力 →File "<stdin>", line 1 python eto.py ^ SyntaxError: invalid syntax >>> となりました。quit()を押してから通常モードのターミナルで「python eto.py」と入力 →onamaenamenoMacBook-ea:~ name$ となりました。
bran

2021/09/06 17:33

python3 eto.pyと入力しても結果は同じでした。
jbpb0

2021/09/06 17:39

ターミナルで、対話モードじゃない状態で下記を実行したら何て表示されたかを、それぞれ教えてください which -a python which -a python3 python -V python3 -V
bran

2021/09/06 17:39

失礼しました。ターミナルでprint(3 + 4)を入力したときは 問題なく 7 と表示されました。しかし、Atomでの計算結果は表示されない という状態です。
jbpb0

2021/09/06 17:43

対話モードにする時は、どんなコマンドをターミナルで実行してるのですか? python ですか?
jbpb0

2021/09/06 17:46

あれ? ターミナルで python eto.py が実行できない、という質問ではないのですか?
bran

2021/09/06 17:48

・which -a python と入力 (~~~~~は名前) → /usr/bin/python ~~~~~~~~~~~noMacBook-ea:~ ~~~~$ ・which -a python3 と入力 → /usr/local/bin/python3 ~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ ・python -V と入力 →Python 2.7.16 ~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ ・python3 -V と入力 →Python 3.9.1 ~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ となりました。
jbpb0

2021/09/06 17:50

それなら、ターミナルで(対話モードではない状態で) python3 eto.py はうまくいくはずですが、それは大丈夫ですか? (一旦atomは忘れてください)
bran

2021/09/06 17:52

説明不足ですみません。python eto.pyの結果が表示されずに困っています。 ターミナルでpython eto.pyと入力したら 本来は 7 と表示されるはずですが、表示されないというご相談です。 その計算を、Atomでprint(3 + 4)という形で行うはずですが Atomで計算を保存しても ターミナルでは計算結果が表示されません。わかりづらくで申し訳ないです。
jbpb0

2021/09/06 17:54

pythonは2.7なのでダメです python eto.py じゃなくて python3 eto.py です atomじゃなくてターミナル(の対話モードではない状態)
bran

2021/09/06 17:55

ご指摘ありがとうございます。対話モードではない状態のターミナルで python3 eto.py と入力すると -bash: syntax error near unexpected token `python3' ~~~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ と返って来ました。
jbpb0

2021/09/06 18:06 編集

python3 -V が実行できたのだから、 python3 eto.py でエラーになるのは変です 「eto.py」が置いてある場所で実行してますよね? ls -l を実行したら「eto.py」がありますよね? もし、「ls -l」で「eto.py」が無いなら、「eto.py」が置いてある場所に「cd」して、再度「ls -l」で確認して、確かに「eto.py」があることが確認できたら、 python3 eto.py を実行してみてください
bran

2021/09/06 18:06

eto.py」の保存場所が間違っているのでしょうか? ls -l と入力したところ、以下のようにファイルの情報が出ました。初めて知りました。ありがとうございます total 0 drwx------@ 6 ~~~~ staff 192 4 30 07:23 Applications drwxrwxr-x@ 3 ~~~~ staff 96 7 22 2019 Creative Cloud Files drwx------@ 15 ~~~~ staff 480 9 7 01:15 Desktop drwx------@ 7 ~~~~ staff 224 10 13 2020 Documents drwx------+ 630 ~~~~ staff 20160 9 6 12:52 Downloads drwxr-xr-x 4 ~~~~ staff 128 9 1 00:54 GameMakerStudio2 drwx------@ 62 ~~~~ staff 1984 4 9 2019 Library drwx------+ 9 ~~~~ staff 288 6 27 19:49 Movies drwx------+ 7 ~~~~ staff 224 7 2 11:16 Music drwx------+ 7 ~~~~ staff 224 2 15 2021 Pictures drwxr-xr-x+ 4 ~~~~ staff 128 9 29 2018 Public -rw-r--r--@ 1 ~~~~ staff 0 7 6 17:59 Undertale drwxr-xr-x 3 ~~~~ staff 96 4 15 04:13 Users -rw-r--r-- 1 ~~~~ staff 0 7 8 16:13 cd drwxr-xr-x 5 ~~~~ staff 160 7 11 18:16 ddd -rw-r--r-- 1 ~~~~ staff 0 9 7 01:18 eto.py -rw-r--r-- 1 ~~~~ staff 0 9 7 01:23 python drwxr-xr-x 3 ~~~~ staff 96 2 15 2021 ?Library ~~~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ ファイル場所の間違いは、どうやって見つけられますか?
bran

2021/09/06 18:19

ファイルも確認でき、python3 eto.py をターミナルで実行しましたが ~~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ の文章だけ表示されました。
bran

2021/09/06 18:22

ファイルの存在はターミナルも正しく認知しているが、そのファイルの中にある計算には反応しない という状態でしょうか?なぜターミナルがこのような反応を示すのか、よくわかりません。
jbpb0

2021/09/06 18:27

そこに > -rw-r--r-- 1 ~~~~ staff 0 9 7 01:18 eto.py がありますが、サイズが0なので、「print(3 + 4)」とは書かれてませんね atomで編集して保存したのとは別の「eto.py」なのでしょう あと、下記もおかしい > -rw-r--r-- 1 ~~~~ staff 0 7 8 16:13 cd -rw-r--r-- 1 ~~~~ staff 0 9 7 01:23 python そんな名前のファイル作ったらダメです (それらもサイズ0)
jbpb0

2021/09/06 18:32

atomで編集した「eto.py」をデスクトップに置いたのなら、 cd Desktop ls -l で、別の「eto.py」があるかも もしあれば、 python3 eto.py してみてください
bran

2021/09/06 18:36

eto.py を何度も消したり作ったりを繰り返したせいですかね... ありがとうございます。しかし、デスクトップ上ではeto.pyはひとつしかありません (他は全て削除したので)。名前だけが残ってしまったのでしょうか? であれば、新しく別名のファイルを作り、そこでprint(3 + 4)の計算式を入れたほうがよろしいですか? お手数おかけして申し訳ないです。
bran

2021/09/06 18:45

何度もすみません、根本的な原因として ・ファイル名のせいでプログラムが読み込まれない ということでしょうか?デスクトップ上では拡張子に.pyもついており どこで問題の修正を行えばよいのかわかりません...。
bran

2021/09/06 19:17

ターミナルで ls -l と入力したところ、先ほどと違い デスクトップ上のフォルダ名が(日本語含め) 出てきました。 ここにあるyasashiipythonというフォルダの中に eto.py のファイルが入っており その他にeto.pyは確認できませんでした。
bran

2021/09/06 22:19

すみません、一点、気になったので教えてください。 実は先ほど、eto.py のファイルを yasashiipython のフォルダの外へ出して 命令を実行したら、計算結果が表示されました。 ここで気になったのですが、この eto.py のファイル(命令内容)はフォルダの中に入った状態では 読み込まれないものなのでしょうか?
jbpb0

2021/09/06 22:44 編集

> フォルダの中に入った状態では 読み込まれないものなのでしょうか? そんなことはありません Desktopのyasashiipythonにあった状態で、 cd cd Desktop/yasashiipython python3 eto.py で実行できたはずです 「*.py」ファイルがある場所に「cd」するのです
jbpb0

2021/09/06 22:42

あるいは、「*.py」ファイルの場所を指定して実行する方法もあります 「eto.py」がDesktopのyasashiipythonにあった状態で、 cd python3 ./Desktop/yasashiipython/eto.py で実行できたはずです
etherbeg

2021/09/07 03:55 編集

カレントディレクトリと、相対パス/絶対パスの概念について学んでおくとよさそうですね。 こちらの説明が単純明快でわかりやすいかと思います(macOSはUNIX系OSです)。 https://www.tohoho-web.com/ex/draft/path.htm 「カレントディレクトリにあるファイルは、ファイル名だけで指定することができます」の一文が重要です。逆に言うと、カレントディレクトリにないファイルはファイル名だけで指定することはできず、相対パスか絶対パスかのいずれかで、パスとして指定する必要があるということです。 ターミナルでコマンドを実行する際は、カレントディレクトリを意識しておくことが、絶対に必要です。 以下補足。 質問者さんのコマンドプロンプト ~~~~~~~~~~~~~~noMacBook-ea:~ ~~~~$ の中の、「~」の部分に表示されているのが、カレントディレクトリです。「~」(チルダ)は、ユーザのホームディレクトリ (/Users/your_name) を意味する記号ですので、この場合、現在は /Users/your_name のディレクトリにいるということになります。 cd Desktop/yasashiipython を実行してカレントディレクトリを移動したら、この部分の表示が変化するのがわかると思います。 またカレントディレクトリはターミナルでコマンド pwd を実行することによっても確認することができます。 cd はカレントディレクトリを移動するためのコマンドです。なお引数にパスを指定せずに単に cd と実行すると、ホームディレクトリへの移動になります。 ls コマンドで一覧表示されるのはカレントディレクトリのファイル/ディレクトリです。引数にディレクトリのパスを指定して実行すれば、そのディレクトリのファイル/ディレクトリが一覧表示されます。
bran

2021/09/07 14:34

> jbpb0さま cd python3/Desktop/yasashiipython/eto.py と入力しても計算結果は表示されず、 -bash: syntax error near unexpected token `cd' ~~~~~~~~~~~~~noMacBook-ea:Desktop ~~~~$ と表示されました。記号のミスはないはずですが、私の入力した構文におかしな点はございませんか? また、cd Desktop/yasashiipython/python3 eto.py のときは No such file or directory と表示されます。 フォルダの中にあるときだけ反応がおかしいのはどういった原因が考えられますか?
bran

2021/09/07 14:36

>etherbegさま ご指摘ありがとうございます。たった今気づいたのですが eto.py が入っている yasashiipython のフォルダに拡張子がついていないのですが フォルダに拡張子は必要なのでしょうか? ファイルの保管場所としか思っていませんでしたが...。
bran

2021/09/07 17:12

みなさま、たくさんの助言をありがとうございます! 行き詰まっていた箇所はクリアできましたが、どうやら私の理解や知識に問題があるので まずは基本的な用語を覚え、実戦へと移したいと思います。ありがとうございました!
etherbeg

2021/09/07 17:21

フォルダに拡張子は必要ありません。
jbpb0

2021/09/08 00:17

私が上のコメントで書いたのを、コマンド行の間に「#」で始まるコメントを付加して再度書きます まず一つ目 #1行目 cd #2行目 cd Desktop/yasashiipython #3行目 python3 eto.py 引き続き二つ目 #1行目 cd #2行目 python3 ./Desktop/yasashiipython/eto.py 上記と、質問者さんが実際に実行した下記のコマンドは、全然違いますよね 複数行を一つの行につなげたり、「.」(ピリオド)を削除したり cd python3/Desktop/yasashiipython/eto.py cd Desktop/yasashiipython/python3 eto.py 全然違うことをやって、うまくいかないと言われても
bran

2021/09/08 00:22

>jbpob0さま どうやら私の読み取り不足でした。 ご教授くださったのに、正しく実行できず申し訳ありません。
guest

回答2

0

ベストアンサー

pwd を実行してください。
/Users/name/Desktop/yasashiipython/python と表示されますか?

cat eto.py を実行してください。
print(3+4) と表示されますか?

python3 eto.py を実行してください。
7 と表示されますか?

追記
cd yasashiipython/python を実行してください。
そのあと、pwd から順に実行してください。どうなりますか?

追記2
eto.py はどこにあるんですか?
仮に、/Users/name/Desktop/abc/def/eto.py だったとします。
まず、cd /Users/name/Desktop/abc/def を実行してください。
そのあと、pwd から順に実行してください。

投稿2021/09/07 15:34

編集2021/09/07 16:00
kazuma-s

総合スコア8224

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

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

bran

2021/09/07 15:42

回答ありがとうございます。 pwd → /Users/name/Desktop cat eto.py → cat : eto.py : No such file or directory python3 eto.py → /Library/Frameworks/Python.framework/Versions/3.9/bin/python3: can't open file '/Users/bran/Desktop/eto.py': [Errno 2] No such file or directory となりました。全て、おっしゃる通りに表示されませんでした。何が原因なのでしょうか?
kazuma-s

2021/09/07 15:51

追記が間違っていたので修正しました。
bran

2021/09/07 15:54 編集

ありがとうございます! cd yasashiipython/python cd yasashiipython/python3 cd yasashiipython/eto.py の3つを試しましたが、全て No such file or directory と返ってきました。
bran

2021/09/07 16:00

pwd → /Users/name/Desktop と表示され、python関連の文字が見あたらず。 cat eto.py → No such file or directory (先ほどと変わらず) python3 eto.py → /Library/Frameworks/Python.framework/Versions/3.9/bin/python3: can't open file '/Users/name/Desktop/eto.py': [Errno 2] No such file or directory と返ってきました。
bran

2021/09/07 16:08 編集

追記2にあった文章に自分の情報を当てはめて cd /Users/name/Desktop/yasashiipython/eto.py と入力したら -bash: cd: /Users/name/Desktop/yasashiipython/eto.py: Not a directory と返ってきました。ファイルとして認識されていない、ということですか?
kazuma-s

2021/09/07 16:18

なぜ、cd /Users/name/Desktop/yasashiipython と入力しないのですか? cd の引数はディレクトリ名です。eto.py はファイル名なのでダメです。
bran

2021/09/07 16:26

失礼しました。 cd /Users/name/Desktop/yasashiipython と入力したら ~~~~~(name)~~~~noMacbook-ea:yasashiipython name$ と表示されました。正しく反応したように見えます。
kazuma-s

2021/09/07 16:27

そのあとの pwd, cat はどうなりますか?
bran

2021/09/07 16:35

ありがとうございます。pwd と入力したあと、 /Users/name/Desktop/yasashiipython と表示され、先ほどまで無かったyasashiipythonが加わっていました。 ですが、次に cat と入力してしまった直後、 入力した文章が繰り返される、といった事態が起こりました。 その後にもう一度、pwdと入力しても pwd と返ってくるため 困っています。
kazuma-s

2021/09/07 16:37

回答が読めないのですか? cat eto.py を実行するのです。 cat だけ入力すると、Ctrl-D を入力するまで、キーボード入力を表示し続けます。 Ctrl-C で実行を中断することもできます。
bran

2021/09/07 16:41

そうだったのですね。ありがとうございます! Control+Cボタンで元に戻せました。
bran

2021/09/07 16:42

ありがとうございます! cat eto.py と入力したところ print(3 + 4)が表示されました!
bran

2021/09/07 16:49 編集

私が使っているテキストでは、cat 〜〜 という動作について一言も書いてなかったのですが どういったときに使う文章なんですか? それと、計算結果ではなく、ファイルに書き込んだ内容そのものが表示された理由も教えていただけると助かります。
kazuma-s

2021/09/07 16:50

python3 eto.py は実行したのですか? 「catコマンド」、「pwdコマンド」、「cdコマンド」で検索しないのですか?
bran

2021/09/07 16:54

失礼しました。調べる癖をつけておくべきでした。 python3 eto.py と入力したところ ついに、eto.py計算結果 7 が表示されました! たくさん助言をいただけて助かりました!
bran

2021/09/07 17:04 編集

最後に質問させてください。 計算結果を表示するのにここまで時間を要したのはなぜなのでしょうか。 原因がまるでわかりません。 自分の今までの動きを振り返っても、イマイチ思い当たる節がありません。 下手にプログラムをいじった覚えもなく、準備不足だったのかもわかりません。 意見をいただけると助かります。
kazuma-s

2021/09/07 17:05

基本事項を知らないからです。 次の用語をすべて説明できますか? コマンド、引数、ファイル、ディレクトリ、カレントディレクトリ、パス名、絶対パス、相対パス。 今、自分がどのディレクトリで作業しているのかを意識していない。 ファイルシステムの階層構造を理解していない。
guest

0

ターミナルではeto.pyが入っているディレクトリで実行していますか?

投稿2021/09/07 07:04

Spi_muto

総合スコア75

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

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

bran

2021/09/07 14:40

はい。print(3 + 4)が eto.py に書かれており eto.py は yasashiipython というディレクトリ(フォルダ)に入っております。 ターミナルとAtomの紐付けは正しく行われていると思います。
bran

2021/09/07 14:41

実行というのは、そのディレクトリの名前を正しく指定しているか という意味ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問