Code: import sys import string if len(sys.argv)<2: print "Usage: leap.py year, year, year." sys.exit(0) for i in sys.argvj[:]: try: y=string.atoi(i) except: print i,"is not a year." continue leap="no" if y%400==0: leap="yes" elif y*100==0: leap="no" elif y%4==0: leap="yes" else: leap="no" print y, "leap:", leap, "in the Gregorian calendar" if y%4==0: leap="yes" else: leap="no" print y, "leap:", leap, "in the Julian calendar" print "Calculated leapness for", len { sys.argv ) - 1, "years" Посмотрите пожалуйста что не так с Кодом
Кто знает... ? Код: ... gamma_N=round(float(gamma_0**2),8) #print '%F' %(gamma_N) i=i+1 ls=str(gamma_N) ls=ls[2:9] ls='0.'+ls print '%F' %(float(ls)) lch=round(float(ls)**2,8) gamma_0=lch print '' ... Это часть метода серединных квадратов... проблема в том, что после получения среза строки, необходимо преобразовать строку во флоат, но как выяснилось переменная получает число в экспоненциальном виде: 0.5e+006 , что нить такое.. ну и следовательно не получается перегнать во флоат.. Как избежать такой формы записи?! надо чтоб было 0.0000005 например, без всяких e....
в консоле мускул сервера набрать команду хммм если честно не помню =) попробуйте поискать в интернете или сделать вот что: после завершения скрипта в консоле мускула введите mysql_error это пакежет последнюю ошибку (тоесть ошибку подключения вашего клиента)
Помогите с регулярками плиз =) Блин что-то я их не понимал и понять не могу =( Помогите составит регулярку чтоб выдрать строку вида: http://****.ru или http://***.***.ru Буду благодарен =)
Code: import re data = "http://vasya.ru ,http://super.vasya.ru" links_1 = re.findall(r'''(http\:\/\/.*?\.ru)''', data) links_2 = re.findall(r'''(http\:\/\/.*?\..*?\.ru)''', data) links_3 = re.findall(r'''(http\:\/\/.*?\.ru)|(http\:\/\/.*?\..*?\.ru)''', data) print links_1 print links_2 print links_3 Правда не совсем то
по регуляркам вот тут хорошая статьи http://www.intuit.ru/department/pl/python/6/5.html там есть скрипт дебаг регулярных выражений тут такой вопрос возник как перезапустить скрипт? т.е. не стартануть его "копию" после завершения а именно чтобы программа начала выполняться сначала update нашел вроде бы простое решение сделать бесконечный цикл while True: какие подводные камни могут всплыть?
Бесконечный цикл самое надежное решение (ИМХО). Подводных камней быть не должно. Могут возникнуть проблемы с потоками (если ты их используешь) при условии что 1 из потоков не завершится (со временем их станет очень много.)
Для дебага регулярок есть Kodos. Относительно бесконечной работы - всё зависит от того, что ты хочешь именно, но обычно while True хватает за глаза.
Враки. Code: #! /usr/bin/env python #-*-encoding:UTF-8-*- import sys print u"Ваша функция может выполниться максимум {0} раз".format(sys.getrecursionlimit())
ну пока вроде цикл работает без проблем такой еще вопрос читается лог Code: with open(path2mislog, 'r') as f: logfile = f.readlines() f.closed logfile = list(set(logfile)) logfile = sorted(logfile) из него удаляются одинаковые строки после чего слетает сортировка по времени сортирую но события которые происходят в одно и тоже время не всегда встают на места это можно как то исправить?
Лично я - хз как, я бы удаление дублей делал бы в таком случае не так - создавал бы два массива, а потом циклом гонял бы по одному и вставлял в другой массив - тогда должен сохраниться порядок
есть скрипт парсинга гугла по определенному запросу и запись результатов в текстовик: Code: #!usr/bin/env python3 dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"' page = 10 reg = 'class=r»«a href="([^"&]*)' print "# start" print "# dork:" + dork print "# all page: " + str(page) fo = open('google.txt','w') print "# google.txt open" import curl import time import re for i in xrange(0,page): url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10) rez = curl.url_get(url) rez = re.findall(reg,rez) for item in rez: fo.write(item+"\n") print "# page "+str(i+1)+" done" time.sleep(2) fo.close print '# all done' он не работает...в чем ошибка ? ругается на строку url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
Наверное потому что ты забил на отступы. До тех пор пока будешь Python-код подсвечивать как PHP-код, то у тебя ни один из скриптов работать и не будет.
кажется то что нужно? http://stackoverflow.com/questions/1801459/algorithm-how-to-delete-duplicate-elements-in-a-list-efficiently/1801471#1801471
Ну хз, я там вижу большинство кода на других ЯП Для питона основное решение там - это то, что я предлагал. Моё решение : Code: def remove_dupies(lst): sorted_lst = [] for x in lst: if x not in sorted_lst: sorted_lst.append(x) return sorted_lst with open(path2mislog, 'r') as f: logfile = f.readlines() f.closed logfile = remove_dupies(logfile) logfile = sorted(logfile) Никакой оригинальности/производительности. Тривиальное решение, которое подхавает оперативки в двухкратном размере файла. Если нужно что-то покруче, то хз придется изьёбываться
Эмм, если честно, то я не уверен что он вам подойдёт, если обратите внимание на то, что он требует pyCURL и знание питоновских регулярок... Лучше уж пропросите чтоб Вам его переписали под стандартную библиотеку... Но на всякий случай : Code: #!usr/bin/env python3 import re import curl import time dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"' page = 10 reg = 'class=r»«a href="([^"&]*)' print "# start" print "# dork:" + dork print "# all page: " + str(page) fo = open('google.txt','w') print "# google.txt open" for i in xrange(0,page): url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10) rez = curl.url_get(url) rez = re.findall(reg,rez) for item in rez: fo.write(item+"\n") print "# page "+str(i+1)+" done" time.sleep(2) fo.close print '# all done' P.S. pyCURL под рукой нету чтобы проверить, но должно работать.