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

Pytthon jak połączyć ze sobą listy które przechowują inne typy danych?

Object Storage Arubacloud
+1 głos
184 wizyt
pytanie zadane 11 listopada 2022 w Python przez niezalogowany

Tworzę generator haseł i nie wiem jak połączyć je ze sobą

I dlaczego lista dodaje się do listy w zmiennej result jak objekt a późńiej dodaja się jej elementy

INPUT:

def generated_password():

    chars_password = ['a','b','c','ć','d','e','ę','f','g','h','i','j','k','l','m','n','ń','p','r','s','t','w','q','y','z','x','ż','ź','dż','dź','A','B','C','D','F','G','H','I','J','K','L','M','N','Ń','P','R','S','T','W','Q','Y','Z','X','Ż','Ź','Ć','DŹ','DŻ','SZ','CZ','!','@','#','$','%','^','&','*','(',')',':',';','"','<','>','`']
    number = list(range(101))
    chars_password.append(number)
    result = chars_password + number

    print(result)


#a = input("Z ilu znaków ma się składac hasło?")

generated_password()

OUTPUT:

['a', 'b', 'c', 'ć', 'd', 'e', 'ę', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ń', 'p', 'r', 's', 't', 'w', 'q', 'y', 'z', 'x', 'ż', 'ź', 'dż', 'dź', 'A', 'B', 'C', 'D', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ń', 'P', 'R', 'S', 'T', 'W', 'Q', 'Y', 'Z', 'X', 'Ż', 'Ź', 'Ć', 'DŹ', 'DŻ', 'SZ', 'CZ', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', ':', ';', '"', '<', '>', '`', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2022 przez reaktywny Nałogowiec (40,950 p.)
edycja 11 listopada 2022 przez reaktywny

Jeśli chodzi o temat wątku:

Użyj metody extend() lub operatora plus (+).  W Pythonie nie ma problemu aby lista przechowywała różne typy danych.

Jeśli chodzi o problem który opisałeś to jest w tej linii:

number = list(range(101))

Jak chcesz wybrać jedną liczbę losowo to użyj np. randint z modułu random.

Metody append() i extend() różnią się - sprawdź sobie jak działają. append() generalnie używa się do dodania jednego elementu, extend() pozwoli dodać wiele elementów na koniec listy. Jak z pomocą append() dodajesz kilka elementów, to powstanie lista typu nested (lista zagnieżdżona),

 

Poniżej moja propozycja (nie jest idealna bo na module random, ale działa):

import random

MIN_CHARS = 5
MAX_CHARS = 60
VALID_CHARS = [chr(i) for i in range(ord('A'), ord('Z'))] + [chr(i) for i in range(ord('a'), ord('z'))] \
              + [str(i) for i in range(10)] + ['_', '*','-','+','$','#','%','@','^','&']


def generated_password(chars_number):
    return ''.join([random.choice(VALID_CHARS) for _ in range(chars_number)])


n = int(input(f"Z ilu znaków ma się składac hasło? (od {MIN_CHARS} do {MAX_CHARS}): "))
if MIN_CHARS <= n <= MAX_CHARS:
    print(generated_password(n))
else:
    print('Podałeś nieodpowiednią liczbę znaków dla generowanego hasła!')

 

 

komentarz 11 listopada 2022 przez niezalogowany
Dzięki za pomoc nie wiesz w jaki spoób mógłbym przechowywać w zmiennej ciąg danych składajacy się z dwóhc typów danych?

czyli np. taki ciąg 137adAA%&$
1
komentarz 11 listopada 2022 przez reaktywny Nałogowiec (40,950 p.)
W łańcuchu znaków (str)?
komentarz 11 listopada 2022 przez niezalogowany
Próbowałem nie da się.
komentarz 11 listopada 2022 przez reaktywny Nałogowiec (40,950 p.)
edycja 11 listopada 2022 przez reaktywny
Nie do końca rozumiem pytanie. Co to znaczy przechowywać? Gdzie? W pamięci? Na dysku? I jakie masz dwa różne typy danych?

Spróbuj:

moje_trudne_haslo = "137adAA%&$"

Może być problem z niektórymi znakami. Spróbuj wtedy użyć raw string:

moje_trudne_haslo = r"137adAA%&$"

W liście nie ma problemu z przechowywanie danych różnych typów - już o tym pisałem. Pokaż przykład kodu...

Podobne pytania

0 głosów
2 odpowiedzi 224 wizyt
pytanie zadane 6 listopada 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
1 odpowiedź 307 wizyt
pytanie zadane 13 września 2022 w Python przez Ziom Początkujący (430 p.)
+1 głos
1 odpowiedź 244 wizyt
pytanie zadane 3 listopada 2021 w Python przez jakubjordanek Obywatel (1,320 p.)

92,536 zapytań

141,377 odpowiedzi

319,454 komentarzy

61,922 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!

...