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

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

新規登録して質問してみよう
ただいま回答率
87.20%
関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

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

解決済

python 関数の戻り値の処理について

yu_jin
yu_jin

総合スコア4

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

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

3回答

0評価

0クリップ

378閲覧

投稿2022/01/05 11:50

編集2022/01/05 12:06

Pythonの質問です。
利用環境はPYcharmです。
Pythonの関数処理の勉強で下記コードを実行し、中身を確認しながら進めているのですが
#1のコードはreturnで値をget_first_last_wordに戻しているので、printした際に実行結果になる
ことはわかったのですが、#2を同じようにprintで中身を確認したら<function greeting.<locals>.inner at 0x000001E3959A9F30>
と表示されます。これはreturnでinner関数の値をgreeting(func)に戻しているからこの結果になるのでしょうか。
#2も#1と同じようにprintで出力すると同じような出力をすると思っていました。

教えていただきたいこと
1 <function greeting.<locals>.inner at が表示される理由
2 printでgreeting関数を表示させる際に引数に(func)を使うとエラーが起こる理由

独学ゆえに質問内容におかしなところがあるかもしれませんが
宜しくお願いします。

実行結果
#1
1 Hello, my name is Mike
2 Hello my name is Mike
3 ['Hello', 'my', 'name', 'is', 'Mike']
Hello Mike
1 Hello, my name is Mike
2 Hello my name is Mike
3 ['Hello', 'my', 'name', 'is', 'Mike']
('Hello', 'Mike')
#2
<function greeting.<locals>.inner at 0x000001E3959A9F30>
Hello!
I'm Jiro
Nice to meet you!
<function greeting.<locals>.inner at 0x000001E3959AA050>

コード #1 def get_first_last_word(text): print("1", text) text = text.replace(",", "") print("2", text) words = text.split() print("3", words) return words[0], words[-1] text = "Hello, my name is Mike" first,last = get_first_last_word(text) print(first, last) print(get_first_last_word(text)) #2 def greeting(func): def inner(*args, **kwargs): print("Hello!") func(*args, **kwargs) print("Nice to meet you!") return inner print(greeting("abc")) # a = greeting(func) # print(a) @greeting # say_name = greeting(say_name)と同じ def say_name(name): print(f"I'm {name}") say_name("Jiro") print(greeting("abc"))

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

ozwk

2022/01/05 12:00

コードはコードブロック内に書いてください 読みづらいです。 さらにpythonの場合はインデントが消えて意味がわからなくなってしまいます
yu_jin

2022/01/05 12:07

すみません。テラテイルの使い方を把握していませんでした。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

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