Format – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Format – Python – Fórum – Programujte.comFormat – Python – Fórum – Programujte.com

 

Mirko1960
Newbie
10. 6. 2019   #1
-
0
-

ahojte, mozem poprosit o pomoc stymto kuskom kodu vazne sa neviem pohnut uz tyzden googlim hladam ale neviem ako dalej :(

mam tento kusok kodu:

if funkcia == "1":
    print('vybral si si: ', typ_funkcie)                            
    hash_objekt = hashlib                                         
    print('{0}'.format('typ_funkcie'))        
    list = hash_objekt.hexdigest()                            
print(hash_objekt.hexdigest())                                   

urobil som si list kde su niektore typi hashov ale potrebujem aby si uzivatel vybral sam teda ked is vyberie sha1 tak z toho litu sa to zapise do toho foramta ale ja neviem ako to mam uribit aby sa vybrana funkcia zapisala do toho ciklu a vysiel hash v zadanom hase ked ho tam doprdu urcim tak sa vypise teda

hash_objekt = hashlib.sha1(b' ') tak sa vypise ale potrebuje aby sa tu zapisal ten typ ktory si vyberie uzivatel. nie aby to bolo dopredu urcene

teda pod tym mam tu funkciu format ale ked to spustim vyhodi mi to este aj toto

vybral si si:  sha1
hashlib typ_funkcie
Traceback (most recent call last):
  File "init.py", line 38, in <module>
    print(hashlib.hexdigest())
AttributeError: module 'hashlib' has no attribute 'hexdigest'


vazne uz neviem ako to mam urobit a chcem sa pohnut dalej ale v pisani scriptu ale kym toto nevyriesim nemozem dakujem za kazdu pomoc

Nahlásit jako SPAM
IP: 193.87.56.–
gna
~ Anonymní uživatel
1849 příspěvků
10. 6. 2019   #2
-
0
-

Tohle ti funguje:

hash_objekt = hashlib.sha1(b' ')
hash_objekt.hexdigest()

A tohle ne: 

hash_objekt = hashlib
hash_objekt.hexdigest()

Udělej mi radost a napiš, že ten rozdíl vidíš.

O co se celkově snažíš vůbec netuším. 

if funkcia == '1':
    hash_objekt = hashlib.sha1(b' ')
else:
    hash_objekt = hashlib.md5(b' ')

print(hash_objekt.hexdigest())
Nahlásit jako SPAM
IP: 213.211.51.–
Mirko1960
Newbie
10. 6. 2019   #3
-
0
-

okej takto

typ_funkcie = input('sha1(), sha224(), sha256(), sha384(), sha512() => ')
list = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512']  # assert typ_funkcie in []

if funkcia == "1":
    print('vybral si si: ', typ_funkcie)
    hash_objekt = hashlib.'{}'.format('list')
    list = hash_objekt.hexdigest()
print(hash_objekt.hexdigest())


mam list kde su hashe a teraz chcem aby clovek ktory bude script pouzivat a vyberie si odtialto

typ_funkcie = input('sha1(), sha224(), sha256(), sha384(), sha512() => ')


dajme tomu sha256 tak aby sa tu

if funkcia == "1":
    print('vybral si si: ', typ_funkcie) # 1
    hash_objekt = hashlib.'{}'.format('list')  # 2
    list = hash_objekt.hexdigest() # 3
print(hash_objekt.hexdigest()) # 4


teda

1: funguje tam sa len zapise co si vybral dajme tomu sha1()

2: tu je problem lebo ked dam  

hash_objekt = hashlib.sha1(b' ')


tak je to dopredu uz urcene cyklus ide dalej a vychrly hash ale len v tom co uz bolo urcene ale ja potrebujem aby sa namiesto sha1 dalo to co si vyberiem dajme tomu sha256

bolo mi poradene ze to mam robit cez funkciu format ako som sa presvedcil funkcia je uzitocna ale neviem ju tu zapisat ako mam zariadit to ze sa zadana hodnota od uzivatela zapise na to miesto a pokracuje dalej tak som sa to pokusil urobit takto  

hash_objekt = hashlib.'{}'.format('list')


ale tu mi to hadze error a neviem preco a nasledne mi to dava error na cely cyklus

proste potrebujem to zapisat tym formatom aby sa to tam doplnilo co si vyberiem

uz je to viac pochopitelne?

      #s3gt_translate_tooltip_mini { display: none !important; }
Nahlásit jako SPAM
IP: 193.87.56.–
gna
~ Anonymní uživatel
1849 příspěvků
10. 6. 2019   #4
-
0
-

Ten format používáš úplně nesmyslně.

To co jsem ti radil, protože to pro tebe bude nejstravitelnější, je volat jednotlivé funkce explicitně:

seznam_funkci = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512']
vybrana_funkce = input(', '.join(seznam_funkci) + ' => ')
assert vybrana_funkce in seznam_funkci

print('vybral si si:', vybrana_funkce)

if vybrana_funkce == "sha1":
    hash_objekt = hashlib.sha1(data)
elif vybrana_funkce == "sha224":
    hash_objekt = hashlib.sha224(data)
...ostatni...

print(hash_objekt.hexdigest())

To o co se asi snažíš (přístup k funkci dynamicky podle jména) jde udělat přes getattr:

seznam_funkci = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512']
vybrana_funkce = input(', '.join(seznam_funkci) + ' => ')
assert vybrana_funkce in seznam_funkci

print('vybral si si:', vybrana_funkce)

funkce = getattr(hashlib, vybrana_funkce)
hash_objekt = funkce(data)

print(hash_objekt.hexdigest())
Nahlásit jako SPAM
IP: 213.211.51.–
Mirko1960
Newbie
10. 6. 2019   #5
-
0
-

ano assert funkciu som pouzil tiez kedze to bola jedna z moznosti ale asi som ju pouzil zle

Nahlásit jako SPAM
IP: 193.87.56.–
gna
~ Anonymní uživatel
1849 příspěvků
10. 6. 2019   #6
-
0
-

#5 Mirko196
Ten assert nemá na funkci žádný vliv.

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
11. 6. 2019   #7
-
0
-

#4 gna
ten assert zjištuje zda je vybrana_funkce v seznamu ne? 

neměla by ta část kodu pod tím být v pythonu odsazená

Nahlásit jako SPAM
IP: 91.139.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Formát 1:2 — založil Counter

Format datumu — založil Milan

Formát písma — založil Martin

Formát PSD — založil Lidka

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý