基本的には、ID番号を入力して同じ番号で再度入力すると、エラーが表示されるシステムを作りたいと思っています。私はいくつかのソリューションをオンラインで探すことを試みましたが、実際に動作するソリューションを見つけることはできませんでした。これまでに行ったコードです:ファイル内の重複を見つける方法
import sys
N = 0
while N < 2:
ID = input("Please input ID code ")
if (len(ID)) == 6:
with open('ID1.txt', 'a') as file:
file.write(ID + ' ')
file.write('\n')
N += 1
print("ID length: Valid")
else:
print("ID Code: Error")
sys.exit()
どのようにすればいいですか?
N = 1
while N <= 2:
input_id = input('Type your ID: ')
assert input_id == 6, 'Invalid ID length'
with open('IDs.txt', 'r+') as ids:
id_list = ids.read().split('\n')
if input_id in id_list:
print('This ID already exists')
N += 1
continue
else:
ids.write('\n'+input_id)
print('valid ID')
break
しかしクリーナー:
すでに使用されているIDを保存する必要があります。例えば、リスト内にある。次に、それがすでにリストに入っているかどうかを確認します。 – pawelty
IDが2回目に入力されたとき、つまり最初に入力されたIDが入力されたとき、または入力されたIDがすでにファイルに含まれているときに、エラーをスローしたいとしますか? – Lex
セットを使用してIDを格納できます。 IDの数が少ない場合は、アクセスの時間に大きな違いはありませんが、数百万のIDがあるとします。セットはより速くなります –