回答編集履歴

1

修正。

2025/06/18 16:51

投稿

cametan
cametan

スコア104

answer CHANGED
@@ -35,7 +35,7 @@
35
35
  return 計算結果
36
36
  ```
37
37
 
38
- 例えば例示だけど、本当だったらこの程度だったら次のようにして書いた方がいい。
38
+ 例えば例示だけど、本当だったらこの程度次のようにして書いた方がいい。
39
39
 
40
40
  ```Python
41
41
  #!/usr/bin/env python3
@@ -50,14 +50,14 @@
50
50
 
51
51
  もう直接```a + b```を返しちゃうね。わざわざ```c```に代入しない。冗長になるから。
52
52
  ```result```なんて変数も用意しない。変数に「代入」するのは、**使い回し前提**、ってのが原則なんだ。関数内で一回しか登場せんような「計算」はわざわざ代入せんでもエエです。
53
- あと、早いうちに慣れてた方がいい作法は、出力関数(```print```)の使用は```if __name__ == 'main':```の後にく。
53
+ あと、早いうちに慣れてた方がいい作法は、出力関数(```print```)の使用は[```if __name__ == 'main':```](https://note.nkmk.me/python-if-name-main/)の後にく。
54
- もっと慣れれば[ユニットテスト](https://docs.python.org/ja/3.13/library/unittest.html)とか使うかもしんないけど、まぁ、その辺は々、で。
54
+ もっと慣れれば[ユニットテスト](https://docs.python.org/ja/3.13/library/unittest.html)とか使うかもしんないけど、まぁ、その辺は々、で。
55
55
 
56
56
  > 引数と戻り値の扱い方がよくわかりません。
57
57
 
58
58
  これも割に良くある説明だけど、基本的には「関数」って言った場合、数学の「関数」と同一視していいです。
59
59
  引数ってのは単純には数学の関数に於ける[**独立変数**](http://kentiku-kouzou.jp/suugaku-dokurituhensuu.html)だ。
60
- まぁ、こう言い切っちゃうと、じゃあ「引数に文字列を取った場合は?」とか「引数に構造体を取った場合は?」とかツッコミどころもあるんだけど(笑)、取り敢えずはそう思ってていいです。プログラミング言語に於ける「関数」とは数学で言う関数をベースにし、もうちょっと抽象化したもの、と捉える事ができる。
60
+ まぁ、こう言い切っちゃうと、じゃあ「引数に文字列を取った場合は?」とか「引数に構造体を取った場合は?」とかツッコミどころもあるんだけど(笑)、取り敢えずはそう思ってていいです。プログラミング言語に於ける「関数」とは数学で言う関数をベースにした上で、もうちょっと抽象化したもの、と捉える事ができる。
61
61
  むしろ、プログラミング初心者が意外と概念的に捉えづらいのが「戻り値」の方かね。これはPythonだと「```return```する値」を戻り値と呼ぶ、って捉えた方が逆説的だけど分かりやすいかも。
62
62
  この辺、プログラミング言語の「設計」に纏わる話なんだけど、世の中には「明示的に```return```」する言語と「暗黙に```return```する」言語の二種類があるのね。後者は端的に言うと「計算の最後が**自動的に**```return```される」言語だ。
63
63
  例えば、[Ruby](https://www.ruby-lang.org/ja/)って言語は基本的には「計算の最後が自動的に```return```される」。
@@ -95,7 +95,7 @@
95
95
  3
96
96
 
97
97
  ```
98
- とかね。こう書けば1と3は捨てられる。より正確に言うと、処理系は```return```を見た時点で、2を持って関数```bar```を**脱出**しちまうんだ。
98
+ とかね。こう書けば1と3は捨てられる。より正確に言うと、Python処理系は```return```を見た時点で、2を持って関数```bar```を**脱出**しちまうんだ。
99
99
  結果、Pythonでは次のようなプログラムを書くと、文法違反ではないけど、この関数は1しか返さない。
100
100
 
101
101
  ```Python
@@ -133,7 +133,7 @@
133
133
  > 複数の値を返すにはどうすれば良いでしょうか?
134
134
 
135
135
  Pythonでは複数の値を返す事は出来ない。複数の値を返すにはそのプログラミング言語は**多値関数**と言う機能が無いといけない。言い換えると、Pythonは多値関数を持たない。
136
- 代わりと言ってはなんだが、Pythonではタプルを用いる。```return```する複数の値をコンマで並べる。
136
+ 代わりと言ってはなんだが、Pythonではタプルを用いる。```return```する複数の値をコンマで区切って並べる。
137
137
 
138
138
  ```Python
139
139
  def foo(a, b):
@@ -190,7 +190,7 @@
190
190
  File "/usr/lib/python3.12/idlelib/run.py", line 580, in runcode
191
191
  exec(code, self.locals)
192
192
  File "<pyshell#18>", line 1, in <module>
193
- File "/home/sun/test.py", line 3, in bar
193
+ File "/home/hoge/test.py", line 3, in bar
194
194
  n += i
195
195
  ^
196
196
  UnboundLocalError: cannot access local variable 'n' where it is not associated with a value