私はPythonにかなり慣れていません。
私は数独の解決策と抑止が正しいかどうかを読むスクリプトを作成しようとしています。
必要なもの:
1]数独番号を含むファイル/ファイルパスの入力をユーザーに要求します。 9行と9列の.txtファイル。数字のみで構成されている。
2]なんらかのエラー処理がある。
3]次に、数独が有効な場合は、元の入力ファイルと同じフォーマットを使用し、「Correct_」というプレフィックスを付けて、新しいテキストファイルを作成します。
プログラムを完全には終了していませんが、誤ったパスまたはファイル名を入力すると、このエラーが発生します。
Hello to Sudoku valitator,
Please type in the path to your file and press 'Enter': example.txt #This is a non existing file, to test the Error Exception
'Traceback (most recent call last):
File "C:/Users/FEDROS/Desktop/bs.py", line 9, in <module>
sudoku = open(Prompt, 'r').readlines()
FileNotFoundError: [Errno 2] No such file or directory: 'example.txt'
これが私のスクリプトです:
while True:
try:
Prompt = input("\n Hello to Sudoku valitator,"
"\n \n Please type in the path to your file and press 'Enter': ")
break
except (FileNotFoundError, IOError):
print("Wrong file or file path")
sudoku = open(Prompt, 'r').readlines()
def check(game):
n = len(game)
if n < (1):
return False
for i in range(0, n):
horizontal = []
vertical = []
for k in range(0, n):
if game[k][i] in vertical:
return ("File checked for errors. Your options are wrong!")
vertical.append(game[k][i])
if game[i][k] in horizontal:
return ("File checked for errors. Your options are wrong!")
horizontal.append(game[i][k])
return ("File checked for errors. Your options are correct!")
print (check(sudoku))
おかげで、アドバイスや助けをいただければ幸いです。
try
ブロックは開いている必要があります。プロンプトの周りではありません。
while True:
Prompt = input("\n Hello to Sudoku valitator,"
"\n \n Please type in the path to your file and press 'Enter': ")
try:
sudoku = open(Prompt, 'r').readlines()
except FileNotFoundError:
print("Wrong file or file path")
else:
break