From 77c94b4929e20f1a4d359fb1a7c4dd1528b87058 Mon Sep 17 00:00:00 2001 From: Yury Kiselev Date: Wed, 16 Apr 2025 11:08:36 +0300 Subject: [PATCH] =?UTF-8?q?[16/04/2025]=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D1=82,=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=86=D0=B5=D0=BD=D1=82=D1=8B=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=D0=B0=20=D0=B3=D0=B5=D0=BD=D0=B4?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=20=D1=81=20=D0=BE=D1=80=D0=B8=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D0=B5=D0=B9=20=D0=BD=D0=B0=20=D0=B2?= =?UTF-8?q?=D0=BE=D0=B7=D1=80=D0=B0=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index d61bf73..f5a3280 100644 --- a/main.py +++ b/main.py @@ -28,7 +28,7 @@ def generate_random_birthday(years_old_from, years_old_to): random_day = date.fromordinal(random.randint(start_date, end_date)) # из случайной даты за прошлый год вычитаем случайный возраст в границах years_old_from и years_old_to - return random_day.replace() - timedelta(days=years_old*365) + return years_old, random_day.replace() - timedelta(days=years_old*365) def generate_random_snils(): @@ -71,10 +71,14 @@ if __name__ == '__main__': # гендер и соответствующее окончания Отчества и %, при котором будет выбран первый элемент списка gender_list = [{"gender":"male", "patronymic_postfix":"вич"}, {"gender":"female", "patronymic_postfix":"овна"}] - percent_for_first_element = 46.47 + # процент что человек будет мужчиной по возрастным категориям + percent_for_male_more_0y = 52.5 + percent_for_male_more_25y = 46 + percent_for_male_more_50y = 25 + percent_for_male_more_75y = 10 # номер телефона (идет инкремент 1 после каждого использования) и окончание почты - mobile_global = 1000001 + mobile_global = 89991000000 email_global = "@test.test" # создаем файл и добавляем хедеры @@ -83,24 +87,33 @@ if __name__ == '__main__': # создаем пул по размеру равный pool_len for i in range(pool_len): - temp_gender = gender_list[0] if (round(random.uniform(1, 100), 2) <= percent_for_first_element) else gender_list[1] + + # выбор возраста и процента для выбора гендера + years_old, birthday = generate_random_birthday(18, 99) + if years_old <= 25: + temp_percent = percent_for_male_more_0y + elif years_old <= 50: + temp_percent = percent_for_male_more_25y + elif years_old <= 75: + temp_percent = percent_for_male_more_50y + else: + temp_percent = percent_for_male_more_75y + + temp_gender = gender_list[0] if (round(random.uniform(1, 100), 2) <= temp_percent) else gender_list[1] + gender = temp_gender["gender"] first_name = generate_random_string(abc_ru, random.randint(4, 6)).capitalize() last_name = generate_random_string(abc_ru, random.randint(6, 10)).capitalize() patronymic = generate_random_string(abc_ru, random.randint(6, 10)).capitalize() + temp_gender["patronymic_postfix"] - gender = temp_gender["gender"] - - birthday = generate_random_birthday(18, 99) - - mobile = f"8999{str(mobile_global)[0:3]}{str(mobile_global)[3:5]}{str(mobile_global)[5:7]}" - mobile_global +=1 - email = generate_random_string(abc_en, random.randint(10, 20)) + email_global snils = generate_random_snils() + snils_f = f"{snils[0:3]}-{snils[3:6]}-{snils[6:9]} {snils[9:11]}" # форматирование снилса для вывода - file.write(f"{first_name},{last_name},{patronymic},{gender},{birthday},{mobile},{email},{snils}\n") + mobile_global += 1 # инкремент чтобы обновить глобальный номер + + file.write(f"{first_name},{last_name},{patronymic},{gender},{birthday},{mobile_global},{email},{snils_f}\n") # закрываем работу с файлом file.close()