anonymous@RULINUX.NET~# Last login: 2024-12-26 11:19:31
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Про Python и спортлото

Отрываю от сердца и приношу в пул свободного программного обеспечения следующее программное обеспечение. Написано за 10 мин, но функционирует.))) Насколько хорошо сегодня вечером будет ясно.)))

Как по вашему мнению можно улучшить алгоритм. Может стоить внести как то влияние фаз луны?

python
import os
import sys
import random

if __name__ == '__main__':
    C = 0
    M = 0
    S = ''
    if len(sys.argv)>1 :
        try:
            if 'x' in sys.argv[1]:
                C, M = map(int, sys.argv[1].split('x'))
                if not (C<M):
                    raise TypeError
            else:
                raise TypeError
            if len(sys.argv)>2:
                S = sys.argv[2]
            else:
                S = os.urandom(256)
        except TypeError:
            print('Wrong command line argunetns.')
    if S=='':
        print('Usage:\npython gosloto.py 5x36 ["Any initial string"]\n')
        sys.exit(1)

    random.seed(S)
    result_set = list()
    while len(result_set)<C:
        result = random.randrange(1, M)
        if result not in result_set:
            result_set.append(result)
    print("\n%sx%s\nYour numers are: %s" % (C, M, str(result_set)))
 

anonymous(*) (2012-03-28 10:31:06)

Mozilla/5.0 (Ax-xa-xa!)

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

Кстати подсветка Python кода просто мерзкая в плане цветов.

anonymous(*)(2012-03-28 10:32:16)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

Кстати да, использовать так:
# python gosloto.py 6x45 "Хочу выйграть 10 миллионов"

anonymous(*)(2012-03-28 10:35:27)
Отредактировано anonymous по причине "не указана"
Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

буэ

bugmaker(*)(2012-03-28 10:49:35)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-28 10:49:35
avatar
Скрыть

Re:Про Python и спортлото

> буэ
Можно детальнее, нашли ошибку в алгоритме?

anonymous(*)(2012-03-28 10:51:04)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

Иди учи питон дальше - только быдлокодеры и новички разбирают аргументы командной строки велосипедом.

vkos(*)(2012-03-28 12:09:46)
Отредактировано vkos по причине "не указана"
Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120327 Firefox/14.0a1
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от vkos 2012-03-28 12:09:46
avatar
Скрыть

Re:Про Python и спортлото

> Иди учи питон дальше - только быдлокодеры и новички разбирают аргументы командной строки велосипедом.
А можно пример от мастера? И желательно, что бы он не больше по размеру был. А то пиздеть то мы все горазды.

anonymous(*)(2012-03-28 12:35:01)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

Не по-русски как-то...

Hokum(*)(2012-03-28 12:37:24)

Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от Hokum 2012-03-28 12:37:24
avatar
Скрыть

Re:Про Python и спортлото

> Не по-русски как-то...
Ты имеешь ввиду вступительное слово? Да, нервничал немного. Не каждый же день вносишь вклад в опенсоур. Или ты таки про сам код?

anonymous(*)(2012-03-28 12:42:37)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-28 12:42:37
avatar
Скрыть

Re:Про Python и спортлото

Бог с ним, с кодом. Я про букывы

Hokum(*)(2012-03-28 13:01:47)

Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-28 10:51:04
avatar
Скрыть

Re:Про Python и спортлото

бедон ненужен. алсо всё равно непонятно что оно делает.

bugmaker(*)(2012-03-28 13:25:04)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

>if result not in result_set:
Есть же встроенный set, зачем так?

А ещё есть random.sample:)

python
import sys
import os
import getopt
import random


def usage():
    print('Usage: %s [-h|--help] [-s|--string string] 5x36' % sys.argv[0])


if __name__ == '__main__':
    try:
        opts, args = getopt.gnu_getopt(sys.argv[1:], "hs:",
                                       ['help', 'string='])
        string = None
        for o, a in opts:
            if o in ('-h', '--help'):
                usage()
                sys.exit(0)
            elif o in ('-s', '--string'):
                string = a
            else:
                print('Unhandled option. Wow. How?')
                sys.exit(1)
        if len(args) != 1 or 'x' not in args[0]:
            usage()
            sys.exit(1)
        count, max_num = [int(i) for i in args[0].split('x')]
        seed = string if string is not None else os.urandom(256)
        random.seed(seed)
        print('%s\nYour numbers: %s' %
              (args[0], str(random.sample(range(1, max_num + 1), count))))
    except getopt.GetoptError:
        usage()
        sys.exit(1)
    except Exception as e:
        print('Error: %s' % unicode(e))
        sys.exit(1)
 

SystemV(*)(2012-03-28 13:59:40)

Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от SystemV 2012-03-28 13:59:40
avatar
Скрыть

Re:Про Python и спортлото

Про сет знаю, но хотелось именно сделать акцент в коде, что повторяющихся не должно быть. Про random.sample даже и не подозревал))) Юзать getopt в пятистрочниках щитаю извращение, к тому же он деприкайт кажись, не?

Финальный вариант в студию!

python
import os
import sys
import random

if __name__ == '__main__':
    numer_count, number_max, wish = (0,0,None)
    if len(sys.argv)>1 :
        try:
            if 'x' in sys.argv[1]:
                numer_count, number_max = map(int, sys.argv[1].split('x'))
                if not (numer_count<number_max):
                    raise ValueError
            else:
                raise ValueError
            wish = sys.argv[2] if len(sys.argv)>2 else os.urandom(256)
        except:
            print('Wrong command line argunetns.')
    if wish is None:
        print('Usage:\npython gosloto.py 5x36 ["Any initial string"]\n')
        sys.exit(1)
    else:
        random.seed(wish)
        happy_numbers = random.sample(range(1, number_max+1), numer_count)
        print("\n%sx%s\nYour numers are: %s" % (numer_count, number_max, happy_numbers))
 


2vkos> Бери пример с Система. А то мяукнул и потерялся)))

Ax-Xa-Xa(*)(2012-03-28 15:43:04)
Отредактировано Ax-Xa-Xa по причине "не указана"
Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-28 13:25:04
avatar
Скрыть

Re:Про Python и спортлото

> бедон ненужен. алсо всё равно непонятно что оно делает.
А что нужно? Давай рассматриваемую тему на "нужном языке". Или тоже мяукать только могешь?

Ax-Xa-Xa(*)(2012-03-28 15:44:46)

Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от Ax-Xa-Xa 2012-03-28 15:43:04
avatar
Скрыть

Re:Про Python и спортлото

>Юзать getopt в пятистрочниках щитаю извращение
Я тоже не всегда его использую, когда быстро пишу что-то на один раз. Хотя хуже от него не будет.

>к тому же он деприкайт кажись, не?
Об этом не слышал, в документации не видел. Да и нельзя такую вещь убирать, таки важная штука.

>Финальный вариант в студию!
В плане алгоритма вопросов нет, но, имхо, у тебя оно всё же менее читабельно, чем могло бы быть. И переменные с большой буквы, мне такое глаза режет.

>print("\n%sx%s\nYour numers are: %s" % (C, M, str(random.sample(range(1, M+1), C))))
Тогда уж print("\n%s\nYour numbers are: %s" % (sys.argv[1], str(random.sample(range(1, M+1), C)))), зачем лишний раз процессор греть:)

И чисто по стилю: а почему S = '', а не каноничный None? А ещё при C < M random.sample кидает эксепшен, можно его ловить, вместо проверки.

SystemV(*)(2012-03-28 16:02:26)

Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от SystemV 2012-03-28 16:02:26
avatar
Скрыть

Re:Про Python и спортлото

>> к тому же он деприкайт кажись, не?
> Об этом не слышал, в документации не видел. Да и нельзя такую вещь убирать, таки важная штука.
На argparse вроде уже в последних версиях заменяют.

> И переменные с большой буквы, мне такое глаза режет.
ХЗ зачем я так написал, обычно пишу говорящие_названия, а для свойств говоряшиеНазвание. ВСПОМНИЛ: никак не шли в голову адекватные названия, а код уже просился переместиться с /dev/head в /dev/memory )))

> И чисто по стилю: а почему S = ''
Тоже верно S=None каноничнее.

Сейчас поправлю)))

Ax-Xa-Xa(*)(2012-03-28 16:19:40)
Отредактировано Ax-Xa-Xa по причине "не указана"
Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от Ax-Xa-Xa 2012-03-28 16:19:40
avatar
Скрыть

Re:Про Python и спортлото

>На argparse вроде уже в последних версиях заменяют.
Не, это они optparse заменяют.

http://www.python.org/dev/peps/pep-0389/

The getopt module will not be deprecated. However, its documentation will be updated to point to argparse in a couple of places.

SystemV(*)(2012-03-28 16:44:24)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от SystemV 2012-03-28 16:44:24
avatar
Скрыть

Re:Про Python и спортлото

>> На argparse вроде уже в последних версиях заменяют.
> Не, это они optparse заменяют.
Точно. Кстати не так давно делал утилитку там было больше десятка параметров, юзал argparse и остался очень доволен, все получилось компактно и лаконично.

Ax-Xa-Xa(*)(2012-03-28 16:52:26)

Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от Ax-Xa-Xa 2012-03-28 15:44:46
avatar
Скрыть

Re:Про Python и спортлото

ты немилосердно жырён, но мне скушно. Покормить чтоли?

bugmaker(*)(2012-03-29 00:38:41)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 00:38:41
avatar
Скрыть

Re:Про Python и спортлото

> ты немилосердно жырён, но мне скушно. Покормить чтоли?
Весь день реализовывал тему на нужном языке?

anonymous(*)(2012-03-29 00:43:30)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 00:43:30
avatar
Скрыть

Re:Про Python и спортлото

разве только лишь один день? не видишь чтоли, у меня ещё ничего не готово

bugmaker(*)(2012-03-29 00:52:40)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 00:52:40
avatar
Скрыть

Re:Про Python и спортлото

> разве только лишь один день? не видишь чтоли, у меня ещё ничего не готово
Пока ты на своем нужном языке находишься на уровне "ещё ничего не готово" я уже трицать рублей выйграл.))) Кстати озвучь хотя бы название нужного языка?)))

anonymous(*)(2012-03-29 12:23:46)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 00:43:30
avatar
Скрыть

Re:Про Python и спортлото

> ты немилосердно жырён, но мне скушно. Покормить чтоли?
Что скучающий наш, решился таки помяукать её?)))

anonymous(*)(2012-03-29 12:26:08)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 12:23:46
avatar
Скрыть

Re:Про Python и спортлото

> уже трицать рублей выйграл
круто! поздравляю!

> Кстати озвучь хотя бы название нужного языка?
да любой вобщем. Даже оба предшественника бедона - уайтспейс и брайнфак намного лучше.

bugmaker(*)(2012-03-29 12:29:46)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 12:26:08
avatar
Скрыть

Re:Про Python и спортлото

meow meow meow

bugmaker(*)(2012-03-29 12:30:22)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 12:30:22
avatar
Скрыть

Re:Про Python и спортлото

> meow meow meow
Рулез!!!

Теперь ждем твой вариант реализации на брайнфаке.

anonymous(*)(2012-03-29 12:35:44)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 12:35:44
avatar
Скрыть

Re:Про Python и спортлото

мне лееень. Алсо толстовато будет...

bugmaker(*)(2012-03-29 12:39:30)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 12:39:30
avatar
Скрыть

Re:Про Python и спортлото

> мне лееень. Алсо толстовато будет...
Да не, норм!
Популяризация эзотерических языков - это клёво. Опять же, хоть какой-то пример школоте, а то один нацпол на сайт постим.

anonymous(*)(2012-03-29 12:44:22)

Mozilla/5.0 (Ax-xa-xa!)
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 12:44:22
avatar
Скрыть

Re:Про Python и спортлото

да и опыта работы с брейнфаком у меня нету, и с уатспейсом тоже

bugmaker(*)(2012-03-29 12:47:30)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 12:29:46
avatar
Скрыть

Re:Про Python и спортлото

>Даже оба предшественника бедона - уайтспейс и брайнфак намного лучше.
А разве не уайтспейс и бейсик?:)

SystemV(*)(2012-03-29 13:09:17)

Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от SystemV 2012-03-29 13:09:17
avatar
Скрыть

Re:Про Python и спортлото

бейсик предшественник фортрана же, он не эзотерический

bugmaker(*)(2012-03-29 13:23:10)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 12:29:46
avatar
Скрыть

Re:Про Python и спортлото

> Даже оба предшественника бедона - уайтспейс и брайнфак намного лучше.
А кто ж тогда предшественник перла?

anonymous(*)(2012-03-29 14:04:11)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 14:04:11
avatar
Скрыть

Re:Про Python и спортлото

не знаю, в перле я не специалист

bugmaker(*)(2012-03-29 14:09:00)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от anonymous 2012-03-29 14:04:11
avatar
Скрыть

Re:Про Python и спортлото

>А кто ж тогда предшественник перла?
Рисунки верблюдов в ASCII.

SystemV(*)(2012-03-29 14:12:35)

Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от SystemV 2012-03-29 14:12:35
avatar
Скрыть

Re:Про Python и спортлото

значит выходит перл предшественник Piet http://www.dangermouse.net/esoteric/piet/samples.html

bugmaker(*)(2012-03-29 15:11:49)

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
[#] [Добавить метку] [Редактировать] Ответ на: Re:Про Python и спортлото от bugmaker 2012-03-29 15:11:49
avatar
Скрыть

Re:Про Python и спортлото

>значит выходит перл предшественник Piet http://www.dangermouse.net/esoteric/piet/samples.html
OMG. Чего только не придумают.

SystemV(*)(2012-03-29 15:14:47)

Emacs-w3m/1.4.468 w3m/0.5.3
[#] [Добавить метку] [Редактировать] Ответ на: Про Python и спортлото от anonymous 2012-03-28 10:31:06
avatar
Скрыть

Re:Про Python и спортлото

И тут питон, да что такое, считаю Вилли нужно что-то на перле написать для полноты картины. :)

iwolf(*)(2012-04-04 23:52:16)

Этот тред читают 3 пользователя:
Анонимных: 3
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!