まず、エラーメッセージぐらいは読みましょう。
エラーメッセージは暴言でもないし、罵声でもありません。
コンパイラやインタプリタ等からのメッセージです。
つまり、『んー?? なあ、これって……こうじゃね?』っていう相手のセリフ?を聞いて「あああああああああ、わかんないいぃぃぃ!!! 聞こえないぃぃぃぃぃいぃぃ!!!」と相手の話を遮って逆ギレ的なことをして暴走している状態です。
そりゃ、コミュニケーションなんて取れないですよね?
まずはメッセージぐらい読みましょう。
TypeError Traceback (most recent call last)
<ipython-input-128-3ee61c238b54> in <module>()
14 C = int(K)
15
---> 16 F1(C)
<ipython-input-128-3ee61c238b54> in F1(A)
3 def F1(A):
4 print("A:",A)
----> 5 print("最大値:", max(A))
6 print("最小値:", min(A))
7 print("相加平均:",statistics.mean(A))
TypeError: 'int' object is not iterable
[訳]
TypeErrorっす。
場所は……っと、えーっと、15行目のF1(C)って行っす。
そこで呼び出されている、F1関数の中の、
えーっと、5行目の位置にある、 print("最大値:", max(A))が原因っすね。
具体的には、えーっと、TypeError、つまり 'int'オブジェクトはイテラブル(反復可能)ではないっすよ?
という感じです。
簡単に言えば、『リストのようなものを渡すべきところなのに、なぜか変数(のデータ一個分)しか渡されていないことが原因』です。
つか、ロジックを読めば当たり前って感じです。
次に、コードを読みましょう。
コードを読むコツは、『一行レベルで、その行が何をしているかを考えながら読む』です。
たとえば、コメント文にするとか。
今回の場合、def F1...っていう行の周辺は単なる関数定義なので今は読まない。
で、while True: の部分からスタートするのですよね?
コードを読んでみましょう。
Python
1# 無限ループ( 常に真になるから )
2while True:
3 # ユーザ入力を受け取ってこれをKとする
4 K =input("数値:")
5 # Kの長さが0なら
6 if len(K)==0:
7 # ループから抜ける
8 break
9 # Kを整数に変換して Cとする
10 C = int(K)
11
12# F1関数にCを渡して処理してもらう
13F1(C)
これを、疑似コードにします。
[疑似コード1]
1. 以下を無限ループ
1.1. ユーザ入力を受け取ってこれをKとする
1.2. Kの長さが0なら
1.2.1. ループから強制的に抜ける
1.3. Kを整数に変換してCとする
2. F1関数にCを渡して処理してもらう
さて、この疑似コードを使って考えてみてください。今の時点では F1関数はちゃんと動いていると仮定してみます。
まず(1)によって無限ループします。初回なので確実に行う。(無限ループだから)
(1.1)に行き、ユーザが入力した数字等がKに入る。
でもこの時点ではたとえば 3 とかみたいな数字になっているはずです。
(文字列系が渡された場合はどうするんだっていう問題はあるが…)
で、(1.2)で『Kの長さが0なら』の条件に一致しますか?
たとえば 3 が入力されたとかで。
何かしらの値が入力されればおそらくfalseになるはずです。(偽になる)
よってスルー。で(1.3)に行き、Kを整数にしてCとする。
もし K = "3" なら C = 3 となる感じです。
で、(1)に戻って (1.1)に行き、入力してもらう。
たとえば、
であれば、K = "2" になっているはずです。(3はすでに処理したため)
で、(1.3)で C = 2 に。
また(1)に戻って K = "1" 、よって C = 1 となります。
また(1)に戻ります。K = <無し> の状態なので、EOFErrorになるはずです。
(まあ、while True: じゃなくて for文で回数制限していると仮定してスルーします。今回の問題はこれじゃないので)
で、最終的に F1関数を呼び出す時の K や Cの状態を考えてみてください。
おそらく、K = "1", C = 1 の状態になっているはずです。
F1関数の中も同じようにやってみてください。
そうすると、print("最大値:", max(A)) の部分で、maxを使っています。でもこれって処理内容的にも『リスト』とかのような複数のデータがあるやつを対象にしているのでは?
ヒント: 公式リファレンス
なのでエラーになる。
厳密には例外っぽいですが。