• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosiłbym o przeanalizowanie programu. Program generuje hasło

Object Storage Arubacloud
0 głosów
271 wizyt
pytanie zadane 17 maja 2023 w Python przez szymar2020 Nowicjusz (120 p.)
edycja 18 maja 2023 przez Arkadiusz Waluk
#sposób prosty
import random
import string

def generuj_haslo(size = 8, chars=string.ascii_letters + string.digits + string.punctuation):
        return ' '.join(random.choice(chars) for _ in range(size))

haslo = int(input('Jaka ma byc dlugosc hasla? '))
print(generuj_haslo(haslo))

 

# s = abcdefghijkASDCFGH012345678!@#$%

# dlugosc_hasla = 8

# s = "".join(random.sample(s,dlugosc_hasla))
# print(haslo) pencolor(#ff0000)
print('Jeżeli chcesz nowe hasło wpisz Y.')
while True:
    name = input()
    if name == 'y':
        break
haslo = int(input('Jaka ma byc dlugosc hasla? '))
print(generuj_haslo(haslo))

 

# s = abcdefghijkASDCFGH012345678!@#$%

# dlugosc_hasla = 8

# s = "".join(random.sample(s,dlugosc_hasla))
# print(haslo) pencolor(#ff0000)
print("Program zamyka się po dwukrotnym naciśnięciu klawisza ENTER")
print('Jeżeli chcesz nowe hasło wpisz Y.')
while True:
    name = input()
    if name == 'y':
        break
haslo = int(input('Jaka ma byc dlugosc hasla? '))
print(generuj_haslo(haslo))
input("\n\nAby zakończyć program naciśnij dwukrotnie klawisz ENTER")
print('Dziękuję i do zobaczenia ponownie .')
1
komentarz 17 maja 2023 przez Wiciorny Ekspert (269,710 p.)
Sformatuj pytanie:
Kod nie jest umieszczony w odpowiednim bloczku

1 odpowiedź

0 głosów
odpowiedź 18 maja 2023 przez VBService Ekspert (253,140 p.)
edycja 18 maja 2023 przez VBService

Zapisałbym funkcję generuj_haslo np. tak

import random
import string

PASSWORD_CHARACTERS = string.ascii_letters + string.digits + string.punctuation

def generuj_haslo(size=8, chars=PASSWORD_CHARACTERS) -> str:
    return ''.join(random.choice(chars) for _ in range(size))

no i bez spacji w zwracanym haśle ''.join

 

kolejna rzecz wprowadzająca nieco w błąd (i nie zawsze oczywista dla użytkowników programu),

print('Jeżeli chcesz nowe hasło wpisz Y.')

dajesz do zrozumienia, że chodzi o dużą literę Y a w kodzie sprawdzasz dla małej y spróbuj np.

    if name in ['y', 'Y']:
        break

no i wybór jest jeden tylko na tak (Y) a gdzie możliwość wybrania nie (Nwink

 

Linia 39 piszesz: "... naciśnięciu klawisza ENTER"

print("Program zamyka się po dwukrotnym naciśnięciu klawisza ENTER")
print('Jeżeli chcesz nowe hasło wpisz Y.')

a kod zaraz poniżej

while True:
    name = input()
    if name == 'y':
        break
haslo = int(input('Jaka ma byc dlugosc hasla? '))
print(generuj_haslo(haslo))

nie "obsługuje" takiego założenia.

 

No i w miarę możliwość staraj się unikać DRY, sprawdź

 [ on-line ]

while True:
    try:
        size = int(input("Jaka ma być długość hasła? "))
        print("\n", generate_password(size), "\n", sep="")
        
        user_choice = input(" + Wpisz 'N' - aby zakończyć program\n" \
                            " + Naciśnij sam Enter - nowe hasło\n>> ")
        if user_choice in ['n', 'N']:
            break
    except ValueError:
        print("Nieprawidłowa wartość. Podaj liczbę całkowitą.")

 

Podobne pytania

0 głosów
1 odpowiedź 188 wizyt
0 głosów
1 odpowiedź 176 wizyt
0 głosów
1 odpowiedź 706 wizyt
pytanie zadane 27 maja 2020 w Algorytmy przez Maax17775 Nowicjusz (180 p.)

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...