Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Scrip pro přihlašovací údaje

Aktivity
Avatar
Václav Franz
Tvůrce
Avatar
Václav Franz:18.3.2021 16:18

Zdravím,

jsem teprve na začátku učení a potřeboval bych poradit s tímto scriptem. Stačí abych zadal jen počáteční písmeno hodnoty ze slovníku a uzná mi to jako správné heslo. Jak to napsat jinak, aby to vzalo jen "celé" heslo a zároveň to bylo vázané na klíč "jméno"?

user_pass = {'jmeno': 'heslo'}


pokus = 0
while pokus < 3:
    user = input('User name: ')
    if user in user_pass:
        u_pass = input('Password: ')
        if u_pass in user_pass.get(user):
            print('access allowed')
            break
        else:
            print('wrong password')
            pokus += 1
    else:
        print('wrong user name')
        pokus +=1


if pokus == 3:
    quit()

print('ur here')

Zkusil jsem: nic moc ještě neumím

Chci docílit: uznání jen celého hesla

 
Odpovědět
18.3.2021 16:18
Avatar
Pavel
Člen
Avatar
Pavel:18.3.2021 16:41

Dělá to přesně to, co jsi napsal.

u_pass in user_pass.get(user):

u_pass in user_pass.get(u­ser) kdyz zadas jako heslo 'he', tak ten zapis bude prelozen nejak takto:
'he' in 'heslo' a to je v pythonu pravda, dokonce by ti stacilo zadat libovolne pismeno z hesla nebo nezadat nic.
V tomto pripade musis pouzit == pro porovnani retezcu a ne in.
Jinak k heslu ze slovniku muzes pristoupit i takto user_pass[user]

Editováno 18.3.2021 16:42
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
18.3.2021 16:41
Avatar
Pavel
Člen
Avatar
Pavel:18.3.2021 17:12

Slo by to i takto:

import sys

users = {'jmeno': 'heslo'}
attemps = 3

for i in range(attemps):
    user = input('User name: ')
    password = input('Password: ')

    if user in users and password == users[user]:
        print('access allowed')
        break

    print('wrong credentials')

else:
    print('Too many wrong attempts')
    sys.exit()

print('ur here')
 
Nahoru Odpovědět
18.3.2021 17:12
Avatar
Václav Franz
Tvůrce
Avatar
Odpovídá na Pavel
Václav Franz:18.3.2021 21:45

Díky za pomoc. Má příkaz sys.exit() v tomhle případě nějaký benefit oproti quit()?

 
Nahoru Odpovědět
18.3.2021 21:45
Avatar
Pavel
Člen
Avatar
Pavel:18.3.2021 22:12

Tady je celkem pekne vysvetlene
Python exit commands - why so many and when should each be used?

 
Nahoru Odpovědět
18.3.2021 22:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.