training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как сгенерировать последовательность чисел для каждой недели Python

Создано: 11 сентября 2017Автор: Егор Астапов1689 просмотровСложность: легкий

Хочу показать вам скрипт для генерации чисел. Я не буду говорить для какой цели я его написал. Скажу, что он очень нужен. Цикл while останавливается только тогда, когда будут данные для 52 недель. Подробнее о цикле while читайте на странице как вывести циклом while список Python. Обратите внимание на то, что используются числа от 1 до 4. Я подключаю сразу 2 модуля:

  • random - генерация случайных чисел
  • datetime - определение номера недели

Сам скрипт генерирует число для каждого дня недели. Для генерации числа использую метод randint. Конструкция random.randint(1,5) генерирует число от 1 до 4. Вы можете смело изменить охват. Модуль datetime позволяет определить номер недели при помощи метода strftime. Этот метод преобразует время в строку. В нашем случае date.strftime('%U') получится номер недели. Используйте функцию int для преобразования строки в число.


#!/usr/bin/python3
import random, datetime 

date = datetime.datetime.today()
week_num = int(date.strftime('%U'))

cur_arr = []
row = ''
i = 0

# формируем строку
while True:
	'''
	random.randint(<Начало>, <Конец>) — возвращает псевдослучайное целое число 
	в диапазоне от <начала> и до <конца>
	'''
	num = random.randint(1,5)
	
	if(len(cur_arr) < 7):
		cur_arr.append(num)	
	else:		
		'''преобразуем каждый элемент в строку str()
		   при помощи функции map()
		'''
		seperator = ', '
		row += str('неделя ') + str(week_num) + ': ' \
		+ seperator.join(map(str,cur_arr)) + '\n'
		cur_arr.clear()
		if week_num == 52: break
		week_num += 1
	i += 1

# запись в файл	
with open('test.txt', 'w') as file:    
    file.write(row)
    print('\nфайл закрыт:', file.closed)

'''
неделя 37: 1, 3, 5, 4, 5, 3, 4
неделя 38: 2, 1, 3, 1, 3, 5, 1
неделя 39: 1, 5, 2, 2, 2, 3, 4
неделя 40: 1, 1, 1, 1, 5, 5, 3
неделя 41: 4, 4, 1, 4, 5, 4, 2
неделя 42: 1, 5, 3, 1, 3, 2, 2
неделя 43: 1, 3, 4, 3, 3, 5, 3
неделя 44: 4, 3, 5, 4, 1, 2, 4
неделя 45: 1, 1, 4, 1, 1, 3, 5
неделя 46: 1, 2, 2, 3, 4, 3, 2
неделя 47: 4, 3, 3, 3, 3, 4, 5
неделя 48: 2, 3, 4, 1, 4, 5, 5
неделя 49: 4, 4, 4, 1, 5, 2, 1
неделя 50: 3, 3, 2, 1, 1, 2, 4
неделя 51: 1, 2, 2, 5, 5, 3, 1
неделя 52: 1, 4, 2, 2, 3, 2, 5


файл закрыт: False
'''

Скрипт записывает строку в файл при помощи with. Для переноса строк применяется символ переноса строки '\n'.

Комментарии

реклама