発生している問題・エラーメッセージ
line 49, in <module> with open(name,encoding='UTF-8') as file: TypeError: open() missing required argument 'flags' (pos 2)
該当のソースコード
Python
1from math import * 2from os import * 3 4x=[] 5y=[] 6 7def 平均(x): 8 a=0 9 for n in x: 10 a+=n 11 a/=len(x) 12 return a 13 14def 標準偏差(x): 15 xa=平均(x) 16 for n in x: 17 a+=(n-xa)**2 18 a=sqrt(a/len(x)) 19 return a 20 21def 共分散(x,y): 22 if len(x)==len(y): 23 xa=平均(x) 24 ya=平均(y) 25 for n in range(0,len(x)): 26 a+=(x[n]-xa)*(y[n]-ya) 27 a/=len(x) 28 return a 29 else: 30 return '2つのファイルのデータ数が違います' 31 32def 相関係数(x,y): 33 if len(x)==len(y): 34 a=共分散(x,y)/(標準偏差(x)*標準偏差(y)) 35 return a 36 else: 37 return '2つのファイルのデータ数が違います' 38 39print('計算アプリにようこそ!') 40print('ここではファイルの中に入っている情報を使っていろいろなものを求められます') 41print('今できること:平均,標準偏差,共分散,相関係数,やめる') 42while True: 43 do=input('求めたいことを入れてね>>') 44 if do=='平均' or do=='標準偏差' or do=='共分散' or do=='相関係数' or do=='やめる': 45 break 46while not do=='やめる': 47 name=input('ファイル名を入れてね>>') 48 if path.exists(name): 49 with open(name,encoding='UTF-8') as file: 50 for data in file: 51 data=data.rstrip('\n') 52 x.append(int(data)) 53 break 54 else: 55 print('ファイルが見つけられません') 56while do=='共分散' or do=='標準偏差': 57 name=input('ファイル名を入れてね>>') 58 if path.exists(name): 59 with open(name,encoding='UTF-8') as file: 60 for data in file: 61 data=data.rstrip('\n') 62 y.append(int(data)) 63 break 64 else: 65 print('ファイルが見つけられません') 66 67if do=='平均': 68 print(str(平均(x))) 69if do=='標準偏差': 70 print(str(標準偏差(x))) 71if do=='共分散': 72 print(str(共分散(x,y))) 73if do=='相関係数': 74 print(str(相関係数(x,y))) 75print('アプリを終了します') 76
試したこと
別のファイル名をいれてみたり、求めることに別のを入れてみたりした
補足情報(FW/ツールのバージョンなど)
Python 3.7.7 64bit
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。