• 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

VPS Starter Arubacloud
0 głosów
262 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,120 p.)
Sformatuj pytanie:
Kod nie jest umieszczony w odpowiednim bloczku

1 odpowiedź

0 głosów
odpowiedź 18 maja 2023 przez VBService Ekspert (251,170 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ź 187 wizyt
0 głosów
1 odpowiedź 173 wizyt
0 głosów
1 odpowiedź 684 wizyt
pytanie zadane 27 maja 2020 w Algorytmy przez Maax17775 Nowicjusz (180 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...