Generowanie nr telefonów

Generowanie nr telefonów
DZ
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 2 lata
  • Postów:21
0

Cześć wszystkim, parę dni temu wymyśliłem sobie, że wygeneruje sobie telefony, żeby później poćwiczyć SQL'a. Sądziłem, że to będzie banalne, natomiast posiedziałem nad tym trochę i jedyne na co wpadłem to kod, który wrzucam poniżej. Natomiast obstawiam, że da się to zrobić 10x prościej, tylko totalnie nie mam pomysłu jak. Ktoś coś? :) Z góry dzięki za odpowiedź

Kopiuj
import random
def number_generator():
    first_3 = str(random.randint(600,899))
    second_3 = str(random.randint(1,999))
    if int(second_3) < 10:
        second_3 = '00' + second_3
    elif int(second_3) < 100:
        second_3 = '0' + second_3
    last_3 = str(random.randint(100,999))
    if int(last_3) < 10:
        last_3 = '00' + last_3
    elif int(last_3) < 100:
        last_3 = '0' + last_3
    phone_number = first_3 + second_3 + last_3
    return phone_number
phone_numbers = [number_generator() for y in range(1,9)]
AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 4 godziny
  • Postów:973
5
Kopiuj
def number_generator():
    return random.randint(600000000, 899999999)

Jeśli chcesz z tego zakresu


Zdalna praca dla Senior Python Developerów --> PW
Zobacz pozostałe 2 komentarze
AN
To autor chciał taki zakres
DZ
Dokładnie o to mi chodziło, jestem kretynem. Tak się zafixowałem, na tym żeby tego nie robić w podobny sposób, że zupełnie zapomniałem, że można to zrobić w tak prosty sposób. Przez to, że parę razy mi coś nie wyszło, zrezygnowałem z generowania po prostu losowej liczby z przedziału zupełnie, co było mega głupotą. Dzięki bardzo. Chociaż teraz mi głupio, że sam na to nie wpadłem.
AN
@Dzikiwąż: Normalna sprawa ;p Często żeby wpaść na najprostsze rozwiązania trzeba przebrnąć przez trudniejsze ;d
szatkus
@anonimowy: dokładnie. Napisz g**no -> napisz testy -> napisz dobrze
DZ
@anonimowy: dzięki za słowa otuchy, ale Ty na to wpadłeś pewnie w sekundę xD ja dobre 40minut myślałem jak to zrobić parę dni temu i wymyśliłem pokrakę jakąś. To tylko pokazuje, jak bardzo muszę sobie podszlifować logiczne myślenie, jeśli chodzi o programowanie, co sprowadza się do tego co wszyscy pisali. Jak chcesz nauczyć programować, to programuj, inaczej się nie da. I coś w tym zdecydowanie jest ;)
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:2 minuty
  • Postów:4927
1

@Dzikiwąż: Nie analizuję logiki, zapewne testowałeś na wszystkie "corner casy", ale z "dizajnerskiego" punktu widzenia, mógłbyś zamknąć całe generowanie numerów w funkcji, tak, aby klient pisał tylko:

Kopiuj
numbers = number_generator(#unique_numbers)

Jeśli chcesz, żeby numery były różne.

EDYCJA: Internet też ma coś do dodania:
https://duckduckgo.com/?q=generate+unique+phone+numbers+python&t=ffab&ia=web


edytowany 1x, ostatnio: lion137
DZ
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 2 lata
  • Postów:21
0

@lion137:
Możesz rozwinąć myśl?

numbers = number_generator(#unique_numbers)

No z logiką tutaj widać, że popłynąłem, co do internetu i tego co ma do powiedzenia, to widziałem PhoneNumbers, natomiast chciałem sobie sam poradzić z tym. I poradziłem ale w absurdalnie głupi sposób.
No trochę mi głupio, ale przynajmniej zapamiętam to na długo.</p>
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:2 minuty
  • Postów:4927
0

Hehe, mnie też można wyśmiać, bo tego nie zauważyłem :). Ale, do rzeczy, chodzi o to, żeby klient nie musiał się silić na "list comprehension", aby wywołać Twoją funkcję, tylko mógł napisać, coś "ala" opisałem w poście.


DZ
aaa, okej już łapie. Generowałem to sam dla siebie i dlatego zdecydowałem się na taki sposób, żeby wbić sobie do głowy na stałe, zasadę tworzenia list przy pomocy list comprehension:) Więc wciskam to gdzie się da ;)
lion137
Jasne, "list comprehension" is awesome :), ale API, to ma być API.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.