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í.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
discount 30 + hiring

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

Aktivity
Avatar
Václav Franz
Supertvů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í
+1 bodů
Ř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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Václav Franz
Supertvů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.