実現したいこと
幾つか数字を入れ(入れるデータ数は固定しない)、その平均値、最大値、最小値を出すpythonプログラムを作りたいのですが、平均値、最大値、最小値を出すプログラムはパッケージにし、メインプログラムから呼び出す形としたいです。
パッゲージは、from パッケージ名 import * で呼び出し、パッケージ内には、init.pyを入れておきます。
ここに実現したいことを箇条書きで書いてください。
- パッケージ機能を使えるようにしたい。
前提
anaconda内、pythonで作業しています。pythonは、3.10.8です。
発生している問題・エラーメッセージ
該当のソースコードのプログラムを実行すると、以下のエラーが発生します。 name 'calc_all2' is not defined ## いくつか数字を入れてみたところ、この部分は問題なく作動していますが、パッケージ呼び出しで、前記の通り、未定義エラーとなります。 (返し部分) 23 -6 正の整数を入力して下さい。 100 200 600 ['23', '100', '200', '600'] 入力したデータ値は、4個です。
該当のソースコード
python
1from package import * 2##別行で、以下、入力 3num=[] 4while True: 5 i=input() 6 n2=len(num) 7 if len(i)==0: 8 print(num) 9 print("入力したデータ値は、{}個です。".format(n2)) 10 11 calc_all2.avg_nums(num) 12 calc_all2.max(num) 13 calc_all2.min(num) 14 break 15 16 elif not i.isdigit(): 17 print("正の整数を入力して下さい。") 18 continue 19 20 elif int(i)<0: 21 print("正の整数を入力して下さい。") 22 continue 23 24 else: 25 num.append(i) 26 continue 27 28**## package内 calc_all2.py** 29def avg_nums(num): 30 print(sum(num)/len(num)) 31 32def max(num): 33 print(max) 34 35def min(num): 36 print(min) 37 38 print() 39 40**## package内 __init__.py** 41from.import calc_all2 42 43【2023.2.15 修正後】 441行目 45from training6_2 import * 462行目 47num=[] 48while True: 49 i=input() 50 n2=len(num) 51 if len(i)==0: 52 print(num) 53 print("入力したデータ値は、{}個です。".format(n2)) 54 int_list = list(map(int, num)) 55 print(int_list) 56 57 calc_all3.avg_nums(int_list) 58 calc_all3.max_num(int_list) 59 calc_all3.min_num(int_list) 60 break 61 62 elif not i.isdigit(): 63 print("正の整数を入力して下さい。") 64 continue 65 66 elif int(i)<0: 67 print("正の整数を入力して下さい。") 68 continue 69 70 else: 71 num.append(i) 72 continue 73 74#フォルダーtraining6_2には、__int__.pyと、calc_all3.pyが入っています。 75#__int__.pyの構文 76from.import calc_all3 77#calc_all3.pyの構文 78def avg_nums(num): 79 print(sum(num)/len(num)) 80 81def max_num(num): 82 print(max(num)) 83 84def min_num(num): 85 print(min(num)) 86
試したこと
プログラム内のタイプミス等のチェックはしましたが、当方には、不具合は見つけられませんでした。
↓
皆様のアドバイスをいただき、【2023.2.15 修正後】のプログラムで期待通りに走るようになりました。
迅速、正確なアドバイス、ありがとうございました。
補足情報

回答1件
あなたの回答
tips
プレビュー