あるプレゼント懸賞の募集を行ったところ,100名の応募があった。 このプレゼント懸賞の当選者は5人である。 表1は,その応募者の応募番号,住所,氏名,年齢の一部を示している。
この応募者(応募番号1〜100)の中から乱数を用いて5人を選び出し, 当選者5人の住所,氏名,年齢を出力するプログラムを作成しなさい。
import random N = 100 #応募者数 n = 5 #当選者数 address = [] name = [] age = [] labels = input() i = 0 while (ア): line = input() ls = line.split('\t') address.append(ls[1]) name.append(ls[2]) age.append(ls[3]) i = i + 1 i = 0 while (イ): winner = random.randint(1, 100) print(address[winner-1], name[winner-1], age[winner-1]) i = i + 1
H:\Documents\prg1\08> python winners.py < applicants.txt↵
市川市妙典2丁目 河野 昴 20
市川市中国分4丁目 吉原 龍之介 30
市川市塩焼5丁目 越沼 裕 29
市川市鬼高1丁目 小林 彩 17
市川市大洲4丁目 森田 貴幸 10
上のプログラムを実行すると,次のように同一人物が2回出力されてしまうこともあり得る。 このようなことがないように上のプログラムを改良しなさい。
H:\Documents\prg1\08> python winners.py < applicants.txt↵
市川市市川2丁目 市川 久美 27
市川市田尻4丁目 池嶋 真一 29
市川市鬼高2丁目 伊澤 祐太 43
市川市鬼高2丁目 伊澤 祐太 43
市川市行徳駅前3丁目 大金 義明 50