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

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

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

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

Q&A

解決済

6回答

410閲覧

pythonのreturnのエラーについて

BOM

総合スコア16

Python

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

0グッド

0クリップ

投稿2019/04/13 13:33

編集2019/04/13 16:12

def area(radius):
result = radius * radius * 3.14
return result

area(5)

上記のコードがAtom Runnerで実行すると
pid=5632). Exited with code=0 in 0.077 seconds.と表示され

と表示されて実行できません
原因は何でしょうか?

コードは本に書いてあるものです

追記
コマンドプロンプトでは実行できました

ですがAtom Runnerでは area(5)で関数を呼び出していますが何も表示されません

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

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

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

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

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

nskydiving

2019/04/13 14:16

インデントが崩れてしまっているため、コードが実行できません。 コードを<code>タグに囲んで、実行できる形で提示するようにしてください。
guest

回答6

0

追記

コマンドプロンプトでは実行できました

対話モードで実行したのではないでしょうか?
対話モードでは実行結果が自動的に表示されますが、これは対話モードの特殊な動作です。
一般的にはprint(area(5))のようにprint関数にて画面に表示させる必要があります。

投稿2019/04/13 21:38

can110

総合スコア38266

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

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

0

ベストアンサー

実行できています。

実行できない(ように見える)原因

python

1area(5)

の部分は「画面に表示しろ」という処理を実行している訳ではありません。areaという関数に5という引数を与えて呼び出しています。関数areaは「返り値」として結果を返します。

pythonでは式と文の概念の区別があり、式とされるものはすべて何らかの返り値を返します。関数「呼び出し」は式です(関数「定義」のdef文は文になりまったく別物なので注意)。そしてコマンドプロンプトからpythonコマンドだけで立ち上がったりする、対話的インタプリタと呼ばれるような環境では、この「返り値」を画面に表示する、ということになっています。can110さんの「対話モードでは実行結果が自動的に表示されますが、これは対話モードの特殊な動作です。」というのはそういう意味です。

そういう動作になるのは対話環境全般が異端だからで、一般的な方法で実行すれば(たとえばファイルに書いて実行すれば)通常は返り値が勝手に表示されるということはありません。返り値を見る必要のない関数もある訳で、そんなものまで呼び出す度に返り値を表示してくれたら鬱陶しいでしょう?

対処

pythonではprint関数があるので、これを使って「返り値を受け取り表示する」処理を書いてください。

python

1print(area(5))

とするか

python

1result = area(5) 2print(result) 3

とするかのどちらかです。どちらもほとんど等価です。

投稿2019/04/14 05:43

hayataka2049

総合スコア30933

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

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

0

python

1print(area(5))

これでも?

投稿2019/04/13 21:00

_Victorique__

総合スコア1392

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

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

0

printを使って出力する必要がある

投稿2019/04/14 10:10

BOM

総合スコア16

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

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

0

コマンドプロンプトではうまく実行できましたがAtomではExited with code=0 in 0.096 seconds.と表示されてしまいます

投稿2019/04/13 15:14

BOM

総合スコア16

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

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

y_waiwai

2019/04/13 15:43

それ、正常に実行しているというメッセージでは
Y.H.

2019/04/13 15:58

>BOM 回答に書くのではなく、質問を編集し追記ください。
BOM

2019/04/13 16:11

これが正常に実行されている場合何も表示されないのは何が原因なのでしょうか?
BOM

2019/04/14 10:09

対話モードは特殊な動作環境なので他ではprintを使って出力しないといけないのですね 理解できました ご回答いただいた方々大変ありがとうございました。
guest

0

あなたが本から写し間違えた、んでしょうね

投稿2019/04/13 14:17

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問