голосование
PHP
Javascript
BASH
Firebird
HTML
Программы
Хостинг
Майнинг
Ресурсы
GIT
SEO
Oracle
Python
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

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

Хочу показать вам скрипт для генерации чисел. Я не буду говорить для какой цели я его написал. Скажу, что он очень нужен. Цикл 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'.

просмотры: 474, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-09-11 13:03:45
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://www.2domains.ru домен RU домен RU всего за 99 рублей