In the document.
NetID.txt
rxwafvi2
tgdjlh2
qgdp8
rywwse4
czhih2
pqzmhgb6
mjswgg4
vviybz5
uqgrho5
yeznjac5
uwypn8
vbhs2
pewwfou7
icatxia6
tocs5
cpgfbl5
kumv2
nbueqjz3
jeoe6
cffpph8
smmm7
prpek5
zfstcmu5
xkglscb6
bhvvjns2
dlfhz9
rufuz2
fxrgd9
djpb8
jdu4
kklwgs5
dlphyn7
kwfqb5
pxzznsx6
wfxj2
vho6
bdsaw3
tyrqpd8
yxm4
rhhfh3
eyjbf8
zkz9
hkl2
gwtywsp9
qqxb4
ugeel6
gkitx5
zgvfk8
atrbejc3
aprmw7
kpam6
ardfvh6
dkrerx4
bmvmtl4
gzl9
vbt2
umld3
zgq4
khoqyh5
elf2
sahh6
bizpkv6
nhdyxjf3
gjoqzo2
haext5
zowp8
kxafrh8
ypphnh6
qxqxc9
hdvrkst3
kvrewt5
qeutma3
eyox6
yvv7
kowhdj6
ump8
htjapv9
dcgnk2
vtvxeem8
mdy3
gggqu4
dklbi4
znvhvz8
zkqjrn7
fntrecs9
bxm2
ktyh9
oxrpcu5
clxvwy6
qyd9
ehbf2
qnkylo8
ozzg4
sesouk7
gkl7
eayb7
twclwod9
ohpah4
bgdj3
zyocxdx2
pxi5
htifhga9
ukhtgw5
mbxizf3
alaitbj9
zgagf9
laffji5
vrty6
bgbh7
yxm7
qpee6
ohnw7
ukft3
wtpnn7
sjl4
wzh5
odysbmf2
tfb7
xwdfnm8
mxytywu3
vbhknjp9
ksten4
mgxej8
mpp3
ardoc2
uugu9
uqzrij7
zpaw3
xdl8
vvoc5
unto7
vjq2
jlyvuph5
blcs6
ubcxoeq2
bhvpenv8
kqxvu8
mbosje5
mgzkaik9
jdgng3
qwgpdl5
gelfnj5
dxm3
xndq4
jigpz4
dphfp6
jcislk3
bjibgdw6
qajiazw3
nuxz2
tqnir5
fhwl2
mlpgikh8
iflvty5
aba7
lvnihvt6
rxs4
fluml9
yws4
hgtqzhl4
pao4
rshu9
luy2
lvm8
bjiv4
mjfcwch2
fvjpbvu3
alvk7
qoqh7
fxnd7
wbjl9
cdzbh9
uhl8
llfj3
zkncplf5
ucuwevd9
gylnmkx6
camh9
eug9
lkliul4
imldpc7
ogbd7
bku9
bnio6
miks2
aqynz6
jaoe3
fxusnou4
wlhlprt5
zkb7
ophaivt2
oghtxgm3
yhkp4
ydxwk3
azl3
hzlaqjl2
ikovik6
pfajqg2
xzzplus5
yscrpd3
pnc3
ppvl7
riq8
udp5
jmiesqr8
ygs3
vwl7
whekwya4
zakmgno9
xerhv6
eytzmjr3
ygufo2
bvu9
nauxuh4
anirbpq6
strho5
aiw5
lgzeiz7
jcaz8
xmqu3
blv2
bzcx3
svp5
ukxbtx7
rgbppuk5
uwkb2
lkyza8
arpea8
opcakxv3
iddjxb6
ayuvzu4
exjrlp5
qiesp6
qwv9
oknedwu5
dwnjsd2
teouh4
igpiod9
xidfpje5
ijqsfsl3
weuiixe9
snrwn8
abjo9
rum5
rtbrk3
xgsm9
mqhllep4
wuj4
ilbhbc5
yzrmjv2
xui9
esnf9
vsvpgen6
aivaf8
jge5
wfpk6
jgzmu3
pjmjq6
nkvm2
lwkx6
otj2
duunbfk5
zndzrsz2
eev7
tuyisa8
pypj3
efp5
osdww2
tqgn2
sbae4
erwz7
mqo4
czpyloj4
itxy7
nrmp3
nspszqk2
slcnjs7
gtjy7
papt9
qvppfr5
pleddo5
rrbr3
qfz5
jebghhu2
erhcznd7
bdmg6
iczqh7
orw3
azkmnb6
qylory9
kaqm4
lfepqb5
ekcu6
sumn8
oricnw3
rlhxlgj5
fxmnnwu6
flg2
xulo9
bac4
wajtmh8
tkcr2
yrxpfsk8
yttpbt8
kbqsuo9
lydywxs8
bqkjopn5
tcxpdvy4
lio9
fon5
vripn2
coqf5
zwq7
ecehn6
ssyqxa4
alup2
qsccc9
iides2
yvgw6
sjwo7
opsir7
qnaq2
anb6
uxrcjf2
hrdwvmj3
kxnc6
lrl4
nogmdpp3
hls8
qytmk3
tgm9
gmaxz2
mehtlbi9
qqwcn4
ymzgae2
shugc5
oaft7
gwyk9
siolbg5
nvptf3
nfiuj5
svgsr7
cfdyo7
sydmyr7
sqzedxz4
eni5
jar9
gsfd3
yhrzh9
etilrzy4
lck7
izctqp5
yiiovty2
pbr2
qisc4
mvp5
oamyy3
zcmujc4
npnwqj3
gxkcahk2
yraee7
zstzon5
byo8
edb8
txz4
euibzd5
sepccxi7
wzvjb9
tqnir5
uaoghsh9
gzr2
dejlpmm5
xxy5
tbnu3
rttyed3
jhqk3
pyh4
poeuhi2
zdnrath4
hjpoh6
lwlmm3
apmer5
tpi4
avsnt5
rikno3
pde6
npvy3
ypgbwc7
eiy2
fptvt4
hbrxrwt4
jit4
wxtkn2
aorrevw6
zbivb6
hshlt8
rjoxzud9
adskzz9
puvrm8
dbcgd9
plvnngv5
llfj3
cknfwrb3
ccho6
vkomuss4
fsxfqqh9
alwqg6
zaalytk6
irrfw5
gyni2
tyrwic3
ywt3
kpknfqf5
frv7
tocvf3
hib5
mpexy8
ovr9
rpak7
jsnz7
qxa6
cob5
qfr5
yjw5
kgmzfpd8
oxs7
aiq5
tis7
jjko7
vsg8
uexdvn9
bwhr9
eokb4
xzs4
vcztbl8
bxmcd2
qvwt4
oxqk2
lxxkuzf6
wkcou9
yooyfru5
hnefd4
gkmu4
ztnta4
psfr3
bpshn4
klotbgr7
soyqbc5
hfwi3
xvw3
zpm8
tci9
nwobkk2
pfqwjor4
dieybgz3
zyuxl7
vkvybs5
smcg3
ict6
gohbkfy8
jubcg2
nccalb7
wsohm8
nrd5
uoxaqwb2
lsmbwms3
mcorbr4
yad2
vjjlpnd2
cntuhli9
psmjwm4
vjozl7
ughz7
mogquhv8
kck3
zuvkty5
nmsa7
xvjzq6
eei2
kqqvbjj6
gxjeowr7
phzvquw8
pyle8
mgzkaik9
ycpjx4
ctqexo9
frm4
nuhp2
mkj7
hzmonl7
mmneyjz2
kzck9
zwqqu6
gxbd5
dpbzfk4
xdlhyx8
ehxy7
enhen4
lhouwnb5
psmzgfi7
pagi7
aznmyeg5
ojnlll4
ayldki4
uwsv8
ejp4
crpx7
drrxupk6
sugvc6
iogz6
rbu5
fhsllh3
regrj3
yxh7
wvfgxc9
iuoz9
eeva6
iwz6
pcaciid3
jfrqlqz2
gyjedh7
zbnlo7
oxmbk5
zgav3
qlg8
vokzhf7
yusznl9
aaujd8
otg3
yrb3
qbj4
hba9
qpv5
iond6
fejg7
yxpwvxv7
hae4
vogad8
xulthb9
gtm8
vwo8
saf4
yarsthe5
xshp6
retgl5
xjjch4
dattx6
tesio4
jqegbd8
mmxzjo4
loenkik2
dszjzif7
fazqfy5
vulqdmf3
xerhv6
cwtqurj6
gfnx2
laiuto5
vtgn4
qzjhp7
zdtth7
ernk7
ylkse8
nfiuj5
hosyk2
rkbhw4
tmtpch9
xaewf6
dflk8
jrlmp3
vsjbsy8
qnu3
uagwqd3
hnt6
bfdiiek6
jnnkwbu4
hhnb3
mqha5
fifdch4
feuff6
hrpk5
crxrdl8
vygqou7
ueegg2
fcjmbd7
baia7
rulsua2
zynnu9
ejbue8
alcdh4
wdwgv7
ljmsc4
nfyrvoh3
gamkbup3
rfuit7
mofcqd8
wie5
znl5
aae5
npugkpj7
jcrw6
nprcu4
jro7
syqa3
gxi7
dvefey2
pdtutc9
bpey4
mnwrgm6
iubrhh8
fkmtaqo9
noys6
jbmm5
xrnmwg6
ydd8
roxpee8
vpr3
mfowqf6
zbbp2
rps6
bsad3
fvqns6
mne6
sayihe8
kscldwd6
lppj3
eijb5
ffc7
dacyfyp7
fuybopq2
gsviyuu2
hypngr2
xqxnvqj2
rzm4
gxtston6
nov2
zcifcyg7
gyegwsr4
otjwhkh6
znqppcr2
bxcabv5
zos9
fwrr5
powrtq8
uxqdkk9
klcdgyj7
doe5
ifkf4
tgtaq9
fgs4
qxpohml7
ituej3
salwgpo5
vhsiplx7
rggzgcj8
ophlct8
gvawijs5
etsxf5
aejujbv8
znzki6
ujamsg6
tiqg2
ygj8
rvnmrkn9
bttj7
opefu3
dheukb5
gfbx8
ltkw9
thowcm8
vzw3
xfye9
dkio7
mumg3
djrf7
waonr6
qet6
ndnaxw2
vkukiya8
qvrqcv7
rtbvrt2
pawfi4
pioescm7
epjto6
obhp5
mzamcph4
drfgl2
vywybbf4
twmndbw3
mgt4
nrhocd7
dbhuoiq4
hlmtveg6
qain7
eflq7
iahum8
dzv8
cqoq5
ovs2
zccxaty7
tjipb6
lptqzi5
yyfdgtt7
dargr2
ayad5
zqjmgjr4
aqulthu8
iexdi7
osirzs3
xpynfg2
babqap2
ypp3
yqw5
dhgd2
yiixs8
tsah4
zejr4
ixi7
arqbrje7
wean2
bdk5
rabyu2
vzna3
rwbzx3
uhtgs3
sjzh7
gwv4
effcciv9
rogpa2
oavsh8
zocaiyq6
ugia2
xgqlia8
uvliw9
egouqt5
qszcwa9
dmwyb4
nvxbv4
pps8
tfyi2
mrppyk9
pgsqlqd9
fxsel9
wgkh3
fkssul9
fvziax7
defs8
lfmzii9
whb2
gchyca2
pzjyid7
gzxqcwt2
yscrpd3
bjupwf4
cqns3
pjqwma8
svz2
auebeg5
xusmuy4
oyhbs2
xne9
crjueqo9
izfkru5
dqnauwu2
qhfa6
xxhb9
rpm5
cypw8
mjfdduw4
mids8
avgdfop2
tps3
hilkx5
uzhllfd4
wuphyox8
zeekb8
hlyh8
rhhfh3
xdqxm9
spo2
qnaq2
knvuopg6
stqn3
gthlcpf3
xwqa3
zkz9
mhcyd6
zfjq5
wvdogl8
gvm9
foft5
yyurodk9
aoznryo2
zker4
ank7
pcs6
icboh9
jous8
fmtyzkh9
qewt6
ltrdo2
ynnbj9
iplyqs9
dmi8
eupyrw7
lujn5
engamp5
jmy2
ypwprnc7
qww8
hvw9
fhbydw8
aqtl3
hahh6
vzi8
ksznz4
sbsfd7
xafyha9
nla9
ygcbjo5
yysq8
sdj9
ykcvyvb6
qju2
mze3
frv7
ejnvtap8
konpkg2
enwblr7
dbkdtls6
vbhf4
jeem9
rqzr3
pam3
shmls2
aamtmx6
ibyv5
ucsqxx4
dqtp6
kdqcigy2
ogur8
iiqktrh2
gjdsiu8
lpdwpiw6
qip8
jllvyd4
sevhrl7
zegrd9
twhjo8
yozfquj3
uec5
coyvki2
wcrp9
fwk5
fdskq6
czfwcra6
kpew8
zntzfz9
szgcmj9
ncgmzcf2
evmouhy5
jbve7
reiely5
aqo7
sqpn3
ihg8
fke8
htj7
nrwyjd7
wgym3
vzwmz6
bngezw3
yym3
zkiermy2
vca5
osyadzd3
xee4
iwob3
gfkqoho5
pak7
wgcgcpz4
vaixsm5
clwgu6
rvxam4
epyofb7
pauxmk2
exf4
ttihbsv2
cga8
yof7
isafqxl3
stj5
kqakip5
podxqxf2
aanzm4
zmydso9
nunj7
nyu4
jejnpnb5
sqzedxz4
utr7
zndzrsz2
njpx5
tah5
nxjbr8
dpcjquc6
znkz7
xwqlv7
wmkbil8
wlt8
dmrrf4
lkrwenm2
eiutfd4
dyctqlk9
utwh3
shgtni6
nbg8
fqew2
enay6
eohz3
ufifa8
yzwvn6
ulagk3
vwg8
xkavz5
xzqv2
qjy5
itz5
zhsqvw3
fzo2
lifd8
pzt5
efzjjk9
lpodq9
lrt9
ejf5
jkbv6
mmcdb8
kuvdyn2
nan3
exwdx8
fsqghwb9
ezmlgob3
nkum4
nnhg8
dnghag4
pdapoy6
uoyjf8
srjisj5
tcog3
zpj4
mufr4
kygk9
mvkmuvf3
ttgbhe5
mcbobke3
mujzhrn3
njwsz2
jzmvq3
gsajp7
ghkiff4
ybo2
bductnp4
lbnahy6
sanz7
lux6
rrwoiu3
mulag8
uhj4
gxeoa9
ceyyev7
njtrqay3
gvi3
uga7
jrkvi6
qivgfwn2
ftbss9
fwv3
yuag6
ixxxf6
qmggcrl4
srg7
wsudm5
vwyqeb4
rpa3
gerceap6
sgimhzn3
ajs7
mijavqd3
mgyxp9
gjum8
oth5
ppgyn4
gcz3
qpjq5
tvjzu4
gjd3
durfp3
rbmkr7
huohwmt9
lfdnbev6
lwih7
dzdnve4
jfbrobr9
cfg8
znlt7
vlehn5
kowotr8
xiwq4
elpmwti8
xgzvyv3
iqwx8
rsgwcn9
lergay2
apdlp6
xgovii7
dnq3
bipb7
lma2
zuboudc9
xhrm4
flwfsa7
fvzdgx3
ujaxr7
opkzb6
ary7
obywyp8
hybxer2
qfymcj8
mmcdb8
vviduf9
rumrvxr5
dcj9
udwrb6
pvjkjrz5
htk4
hcenz5
UIN.txt
571552
736960
869095
361166
600994
509906
812709
888207
105368
652863
995159
542415
955283
295197
45191
433994
92094
617798
219694
779954
995061
219412
19917
563699
67049
373909
821075
430393
352340
511052
450393
445878
515674
555422
971581
518665
345270
853970
160492
76366
355835
378180
271144
463395
504894
166495
608059
860912
784936
523108
92636
800462
325154
932485
283334
408602
658760
152844
272243
797430
59884
445681
799713
464816
984807
191309
135886
119179
100261
362949
398985
189398
582741
62644
909784
521168
442276
346397
938361
236370
51520
707540
293881
730894
156660
749644
706037
524054
255954
426135
932946
12952
613082
395510
696670
875550
327950
642532
281841
580684
622340
141060
428797
150438
841298
906077
105983
368343
945034
484123
894100
463883
375892
267881
226082
295440
169170
518429
483309
219224
35081
366537
69601
326868
877700
225583
147380
625581
638487
938967
39221
952909
633782
519190
539667
212597
868609
998618
965796
692192
600139
372456
258296
699052
520704
866173
384551
503914
300680
175249
701697
591251
632886
800255
128021
117870
89646
394725
861206
704089
697116
345609
390491
470600
395943
451428
496197
696040
976727
272684
312881
103871
144062
725638
58977
541647
638835
780060
529346
234499
345032
70535
735517
509128
448541
615085
695411
79916
493856
871867
339661
617564
371470
646484
497743
237464
879027
96473
806536
262068
856503
586057
821574
704145
883301
147725
226011
433509
343369
203092
190983
358397
306373
286911
684082
801231
523429
99863
290399
967743
182619
488874
377155
104792
713988
319122
18947
102095
271030
893615
689680
667699
938255
33174
680324
930468
766411
73944
293347
937592
694915
760598
193219
475650
668499
912621
207655
898187
65289
78779
306865
174927
896433
370022
140639
197447
726475
938523
56246
744984
500575
401276
217394
757298
426308
537734
110529
799362
775124
668621
797969
287797
107093
944700
610352
383188
436815
222829
211808
733437
11259
212963
557944
500871
273069
377095
616657
81822
177345
653604
481594
952994
78350
950283
479936
73370
696689
106571
804277
311417
675961
374173
480554
422905
439998
893474
202836
715278
335914
499701
911016
534162
664971
945036
223242
518485
488599
515227
920134
439686
247644
672101
500120
352090
635569
883218
341800
952535
582312
898490
793194
474770
42789
407689
553247
599691
608803
639334
629949
635899
499819
226414
606479
269108
646795
790042
453796
503593
995884
5452
216850
14507
30708
528285
565283
590821
726034
581872
882084
41096
223555
996885
444669
54396
362062
308242
716918
340949
701697
800773
911437
720381
702648
738991
88983
828192
209827
661934
482462
869165
472259
396045
285288
170471
718192
445078
642201
473275
798166
652726
348897
203154
666931
546925
677243
175002
760926
409721
322928
796855
281592
725638
517027
775710
800157
440258
397080
551167
104988
320232
272651
245830
946025
713025
145774
625303
208598
478741
699483
622377
47589
380503
520469
939695
803889
97804
854203
728780
484964
294300
402416
786390
186009
757293
205899
913768
164231
100544
911399
57227
755225
797544
305387
274779
289020
333777
722189
365907
937887
948650
807489
185836
962125
520845
632526
340816
892421
349264
591303
795204
332298
323640
506587
133515
298848
643670
32415
717579
292865
848189
428918
820221
877381
842453
769278
467777
550398
477370
751308
747937
513642
826097
277348
965796
713826
177713
18580
865579
857564
936387
515200
987461
115966
934231
733197
483993
476570
796636
392983
112742
987438
619307
709342
760848
457400
675815
977826
497590
169064
443495
80374
577988
693530
365774
80580
535831
156683
632876
636215
281483
92260
287271
880389
165249
835926
694172
583058
616975
986362
525256
625675
215013
827533
743870
305472
730064
321203
102534
284125
573722
6407
511263
398011
502935
994943
925451
684170
951212
702535
64595
137130
691500
172974
972695
203092
592560
692177
865561
91384
260154
734009
849681
971911
499819
7956
268795
147939
658721
145612
139458
360959
953979
954070
651400
798797
210737
641663
49770
577529
699237
393827
954644
920247
806433
428555
970211
719235
44023
921613
15380
589187
78054
332723
287430
196263
949542
919162
242642
163389
625693
392485
439907
945853
877276
766266
205694
857739
943581
550494
598336
531712
45071
169538
90735
959931
60318
562543
173798
896360
676055
532726
207713
967814
315318
152783
918659
699520
902869
812749
574002
526367
531161
739645
908028
286985
453648
849202
251196
514468
238638
212554
848279
716012
396572
769045
504028
793721
985643
93694
998535
19859
258331
896420
757766
519551
32760
623171
365807
985020
331321
62063
899600
295903
836183
864606
191822
458024
123222
805551
340650
15686
964225
90862
610166
815332
173099
706164
320948
369542
980865
590129
379783
443971
787203
10902
47870
810675
228522
653876
288815
327118
571924
901440
637998
265215
834547
125085
910116
877716
404105
218646
555068
655381
685663
520024
707742
363001
61860
99192
895871
747448
635834
94667
252479
182866
713874
257935
624785
913980
19118
829244
857496
746130
739990
778913
626866
764427
398030
610072
462225
433537
586707
74875
970666
913205
569038
558410
417439
414360
368395
880652
517182
874083
796019
345505
476663
667664
754937
421663
791339
892372
772367
262068
225775
928945
676149
261990
429767
675605
450634
306985
402219
962240
701284
817026
441880
952827
2542
872321
945377
56048
862476
209932
307053
988947
989010
111048
76366
253554
906224
672101
396883
745194
453113
552089
378180
787563
367191
369541
204438
335149
774756
286209
293652
605503
728912
909114
116281
301207
400645
690541
426616
505485
52495
122992
100363
986417
978989
512294
406877
910970
883401
977334
808592
778414
59148
853764
836490
800921
327559
408242
377886
885754
281816
287586
713025
507898
971072
198950
999887
809696
114167
743210
322519
808043
826787
196512
580708
219175
29289
982571
323158
952442
264431
350681
101047
212931
876
502481
936506
678685
948997
329139
50921
163047
593609
947716
517492
221211
803592
788324
140476
817986
259997
313278
449378
502078
268663
218813
246171
883528
587316
781274
734052
429260
707566
383802
575827
519011
243917
939379
420654
309291
348613
580560
170694
549825
569516
518057
792344
900351
942896
647097
792927
789213
377761
626774
615089
110558
646795
204121
217394
483079
139638
499847
595767
946583
311158
217347
97484
994260
310809
393674
580348
21953
53576
250043
415664
957090
427386
504469
516551
895856
874713
423541
544330
427236
795845
744853
452138
908525
767670
200615
874102
485316
921449
347344
791760
434203
95186
101590
867626
580579
310196
19353
660321
460861
220865
247559
133320
436230
98996
178344
726241
824788
209894
60837
504501
960788
179631
873408
288457
702162
966000
299445
497098
713198
85764
726257
640021
745883
245354
517998
323886
346459
622521
826525
302616
572885
78843
734874
430441
783261
799563
451298
329181
707114
576055
62993
508331
92652
3384
901304
530695
354218
506530
546771
716845
841561
628259
972258
291251
355075
110189
881257
251294
347758
697952
641936
91936
223839
715073
797607
602057
585357
770656
668844
47280
811872
457566
30601
953412
7669
997380
468297
77923
987151
156788
108459
791760
158887
719230
295993
82593
386258
156766
136472
MCS 260 Intro to Computer Science Spring 2022
Project 2
Due in Gradescope by Wednesday, March 2 by 11:59pm
RESOURCES ALLOWED: This project is to be completed individually. The only resources you
may use when completing the project are
� Material posted on the course Blackboard page
� The course textbook and “further resources” listed in the Syllabus
If you are unsure about whether a resource is allowed, then please ask your instructor. You should
also consult the course syllabus for a further explanation of academic honesty.
WHAT TO SUBMIT: You will submit two Python files project2-create-
and project2-login-
are replaced with your last and first name, respectively.
The first lines of each of your files should include the following:
#
#MCS 260 Spring 2022 Project 2
#I hereby attest that I have adhered to the rules for projects as well as UIC’s
Academic Integrity standards while completing this project.
The rest of your file should perform the actions described below.
ACTIONS: 1. In the project2-create-
PasswordGenerator. This function will generate a password with the following conditions:
� the password should be between 4 and 8 characters long, with each length being equally
likely to be chosen
� the only characters allowed in the password are upper and lower case vowels, so AEIOUaeiou
� adjacent characters of the password cannot be the same vowel; for example AEeoiu is not
allowed since E and e are adjacent, and IoeaaUE is not allowed since a and a are adjacent.
2. Retrieve the two files UIN.txt and NetID.txt from Blackboard. Note that the ith line of
UIN.txt is the UIN corresponding to the ith NetID listed in NetID.txt. In the
project2-create-
a dictionary AllUsers where the key:value pair is as follows:
The key is the user’s UIN value as a string padded with 0’s at the beginning so that the UIN
is seven characters long. For example, the first UIN is 571552, so the first key should be
“0571552”.
The value associated to the key is a dictionary with two keys: “email” and “password”. The
value associated to “email” should be the user’s NetID with @uic.edu added to the end. The
value associated with “password” should be randomly generated using the PasswordGenerator
function described in the step above.
3. Note that there are duplicate entries in the UIN.txt and NetID.txt files, so a user should
not be added to the dictionary twice. If a second (or later) instance of the same UIN is
encountered, it should be ignored (as well as the corresponding NetID). Only the first instance
should be considered. IMPORTANT NOTE: Yes you could manually look through and remove
the duplicates, but you must remove the duplicates as part of your program.
4. After your dictionary is created, you will write all of its data to a file called users.txt in the
format described. Assume we have the following entry in AllUsers:
University of Illinois at Chicago page 1
MCS 260 Intro to Computer Science Spring 2022
AllUsers[UIN] = {
“email” =
“password” =
}
For this UIN, you will print the following two lines of code (AND ONLY THESE TWO LINES)
to the users.txt file:
5. Now we will talk about the project2-login-
prompt the user for their email (using input) and their password1 (again using input). You
will then check the users.txt file to see if the credentials are proper. There are three cases
that could happen:
(a) The email and password match for a user, in which case you will print “You have successfully
logged in!”
(b) The email is in the file, but the password does not match, in which case you will print
“That password does not match the email provided.”
(c) The email is not in the file, in which case you will print “That email is not in our
system.”
Important Note: It is poor practice to give a user the print statements in parts (b) and (c)
because you are potentially giving information to a hacker. In fact, in part (b) you’re telling
them that the email they supplied is actually in the system. In part (c), you’re telling them
that email is NOT in the system. A better solution, in any case where the user does not have
proper credentials is to just tell them “Incorrect login. Please try again.” However,
we are going to employ the method described in the three cases above, even if it is not a best
practice.
6. ADD COMMENTS to clarify your choice of variables and to indicate what is happening at
different steps of the program. A good rule of thumb is one line of comments for every four
to five lines of code. Your comments will be checked to see that you understand how your
code is structured and what it is doing in the big picture. Code lacking in comments will be
penalized!
1The input function is not ideal for this purpose since it displays the user’s password as it is typed. A better option
would be to use the getpass method of the getpass module which acts just like input except that it hides the typed input.
You do not need to use this, but it is worth pointing out.
University of Illinois at Chicago page 2