Re: Zadaci za wannabe pythoniste
08.03.2020. u 15:02 · pre 80 meseci
#381
"Kada pravi lozinku, njena dužina ne treba da bude manja od 10 slova, a da reči koje se koriste nisu kraće od tri slova"
Mislim da nisi dobro procitao zadatak. U matematici, "A nije manje od B" znaci "A >= B", a "A nije vece od B" znaci "A <= B". Ako duzina lozinke nije manja od 10 slova, znaci da mora da bude veca ili jednaka od 10. U tvom programu vidim 12 (?!). Slicno tome, zadatak kaze da reci nisu krace od 3 slova, a ti poredis duzinu reci sa 4. Po meni bi trebalo:
Takodje, zasto filtriranje duzine ne radis odmah prilikom citanja iz fajla? Ne vidim razlog zasto bi prolazio kroz petlju dva puta. A ako to vec radis, zasto ti je redovi3 string, a ne lista? Elemente liste redovi2 ti nadovezujes u string redovi3, da bi kasnije koristio redovi3.split() (sto je opet treci prolazak kroz petlju, istina ovaj put "ispod haube" Pythona). Pokusaj da to malo optimizujes, nije tesko.
Mislim da nisi dobro procitao zadatak. U matematici, "A nije manje od B" znaci "A >= B", a "A nije vece od B" znaci "A <= B". Ako duzina lozinke nije manja od 10 slova, znaci da mora da bude veca ili jednaka od 10. U tvom programu vidim 12 (?!). Slicno tome, zadatak kaze da reci nisu krace od 3 slova, a ti poredis duzinu reci sa 4. Po meni bi trebalo:
Code:
import random
lozinka = ''
redovi3 = ''
with open('words.txt', 'r') as fajl:
redovi2 = fajl.readlines()
for i in redovi2:
if len(i) >= 3:
redovi3 += i.capitalize()
while len(lozinka) < 10:
lozinka += random.choice(redovi3.split()).rstrip()
print('Tvoja nova lozinka je:\n\n', lozinka)
import random
lozinka = ''
redovi3 = ''
with open('words.txt', 'r') as fajl:
redovi2 = fajl.readlines()
for i in redovi2:
if len(i) >= 3:
redovi3 += i.capitalize()
while len(lozinka) < 10:
lozinka += random.choice(redovi3.split()).rstrip()
print('Tvoja nova lozinka je:\n\n', lozinka)
Takodje, zasto filtriranje duzine ne radis odmah prilikom citanja iz fajla? Ne vidim razlog zasto bi prolazio kroz petlju dva puta. A ako to vec radis, zasto ti je redovi3 string, a ne lista? Elemente liste redovi2 ti nadovezujes u string redovi3, da bi kasnije koristio redovi3.split() (sto je opet treci prolazak kroz petlju, istina ovaj put "ispod haube" Pythona). Pokusaj da to malo optimizujes, nije tesko.