مازندهاست | خدمات میزبانی وب

تولید شماره تلفن همراه و ثابت در چند خط در پایتون

خب، احتمالا همان‌طور که می‌دانید برای تولید یک بازه عددی از تابع range() باید استفاده کنیم که خواهیم دید. کار این تابع تولید عدد در بازه خاصی هست و در آرگومان اختیاری نیز چند تا در میان هم قبول می‌کند. مثلا از بازه ۳ تا ۹۹ می‌خواهیم که هر ۳ تا ۳ تا عدد را جدا و تولید کند. پس اعداد ما می‌شوند ۳ و ۶ و ۹ و ۱۲ و الی آخر.

بپردازیم به بحث اصلی. اول از همه یک تابع range() ساده برای عددهای مورد نظر می‌نویسیم:

Python
numbers = range(9359510000, 9359510010)

ما در این مثال می‌خواهیم که شماره‌های بین 9359510000 و 9359510010 را تولید کنیم که خود شماره 9359510010 شامل آن نمی‌شود و تا یک عدد قبل آن تولید می‌شود. دقت کنید که تابع range عدد صحیح و غیر اعشاری که رقم اول آن 0 باشد را قبول نمی‌کند که این مورد را پایین‌تر برطرف می‌کنیم.

حالا برای این‌که عددها را نمایش دهیم باید از حلقه for استفاده کنیم:

Python
for number in numbers:
    print(number)

خروجی:

Code
9359510000
9359510001
9359510002
9359510003
9359510004
9359510005
9359510006
9359510007
9359510008
9359510009

برای این‌که شماره‌ها را با 0 ابتدایی یا حتی فرمت کد کشوری یعنی +98 نشان دهیم می‌توانیم از فرمت f-string هم استفاده کنیم:

Python
for number in numbers:
    print(f'0{number}')

خروجی:

Code
09359510000
09359510001
09359510002
09359510003
09359510004
09359510005
09359510006
09359510007
09359510008
09359510009

همین کار را برای کد ایران +98 هم می‌توانید انجام دهید.

حالا فرض کنیم که شما همه شماره‌های اپراتورهای ایرانسل و همراه اول را می‌خواهید تولید کنید و در یک یا چند فایل ذخیره کنید. برای این کار باید چه کنیم؟

Python
phone_numbers = range(9359510000, 9359510010)
for phone_number in phone_numbers as numbers:
    with open('numbers935.txt', 'a'):
        numbers.write(f'0{phone_number}\n')

در این کد پس از حلقه for، ما از تابع open() و عبارت with استفاده کردیم که یک فایل به نام numbers935.txt را می‌سازیم و mode آن را نیز a یا append قرار دادیم که پس از هر بار تکرار حلقه، عبارت دلخواه ما را به انتهای فایل اضافه کند.

مودهایی که برای این تابع داریم a یا append هستند و w یا write که برای نوشتن استفاده می‌شوند.

تفاوت a و w را با یک مثال در ابتدا برای شما نشان می‌دهیم و بعد سراغ خروجی اصلی برنامه می‌رویم.

مود w:

Code
09359510009

در مود رایت، هر بار حلقه نوشته می‌شود و چیزی به انتها اضافه نمی‌شود. در حقیقت چون آخرین تکرار حلقه با عبارت 09359510009 هست بنابراین در فایل مورد نظر ما تنها یک خط و آن ها 09359510009 نوشته شده و نمایش داده می‌شود.

مود a:

Code
09359510000
09359510001
09359510002

و به همین ترتیب الی آخر خروجی داریم که هر بار که حلقه تکرار شود شماره و عدد در فایل ذخیره می‌شود و بعد هم خط بعدی و خروجی بعدی.

و حالا خروجی اصلی کد ما که در فایل ذخیره شده است:

Code
09359510000
09359510001
09359510002
09359510003
09359510004
09359510005
09359510006
09359510007
09359510008
09359510009

نظرات 2

  • جالب بود ممنون

    یه سوال دارم

    به نظر شما نسخه 3.9 پایتون بهتره یا 3.8 ؟؟

    • سلام

      خوشحالم.

      در خصوص نسخه اول بستگی به خودتان داره که از چه نسخه ای استفاده کنید و برنامه و پروژه تان با کدام نسخه ران شده باشد.

      مثلا بعضی ماژول ها و کتابخانه ها هنوز با نسخه ۳.۹ سازگاری کامل ندارند که باید کمی روی آن ها کار کرد تا کار کنند یا که از نسخه ۳.۸ استفاده کنید.

      با تشکر