"LIMIT 5 " & _
- ожидает что строка будет продолжена.SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName " & _
"FROM LNCEL_begin " & _
"LIMIT 5"
r.text
нет искомых ссылок. Без использования браузера под капотом не получится.from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto('https://www.binance.com/ru/support/announcement/новые-листинги-криптовалюты?c=48&navId=48&hl=ru')
# Ждем, пока контент загрузится
page.wait_for_timeout(2000)
# Извлекаем ссылки
links = page.query_selector_all('a[class="css-1w8j6ia"]')
for link in links:
href = link.get_attribute('href')
if href:
full_url = f"https://www.binance.com{href}"
print(full_url)
browser.close()
function insertStaticTime() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var currentTime = new Date();
var formattedTime = Utilities.formatDate(currentTime, Session.getScriptTimeZone(), "dd.MM.YYYY HH:mm");
// Вставляем текущее время в ячейку A1 (можете изменить на нужную ячейку)
sheet.getRange("A1").setValue(formattedTime);
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Insert Current Time', 'insertStaticTime')
.addToUi();
}
function insertCurrentDateTime() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Получаем активный лист
var currentDateTime = new Date(); // Получаем текущую дату и время
sheet.getRange('A1').setValue(currentDateTime); // Вставляем дату и время в ячейку A1
}
case f of
1 : begin
R1:=(a*sqrt(3)/4);
writeln('R1=',' ',R1);
{ что-то ещё... }
end;
a*sqrt(3)/4)
будет integer
. Подумайте над этим.program case14;
var f : integer;
var a, R1, R2, S: Real;
begin
writeln ('Введите цифру от 1 до 4 включительно!');
Readln(f);
Writeln('Введите значение стороны равностороннего треугольника');
Readln(a);
case f of
1:
begin
R1:=(a*sqrt(3)/4);
writeln('R1=',' ',R1);
R2:=R1*2;
writeln('R2=',' ',R2);
S:=sqr(a)*sqrt(3)/4;
writeln('S=',' ',S);
end;
end;
end.
setShortcut
класса QPushButton
, чтобы связать функцию с конкретной клавишей?for i in range(10):
number_i = QPushButton(str(i))
number_i.setShortcut(keys[i])
number_i.clicked.connect(lambda i=i: text_input(i))
but_num.append(number_i)
but_op = []
operations = ["+", "-", "*", "/"]
for op in operations:
button = QPushButton(op)
button.setShortcut(QKeySequence(Qt.Key_Plus if op == "+" else Qt.Key_Minus if op == "-" else Qt.Key_Asterisk if op == "*" else Qt.Key_Slash))
button.clicked.connect(lambda op=op: operations_input(op))
but_op.append(button)
import telebot
import telebot as telegram
from multiprocessing import Process
...
if __name__ == '__main__':
while True:
processes = []
processes.append(Process(target=main, args=('https://rust.tm/item/5358808098-0-Shipping%20Container%20Garage%20Door/', 'Shipping Container Garage Door', 60)))
processes.append(Process(target=main, args=('https://rust.tm/item/5518269987-0-Abyss%20Vest/', 'Abyss Vest', 140)))
processes.append(Process(target=main, args=('https://rust.tm/item/4136069987-0-Weather%20Large%20Wood%20Box/', 'Weather Large Wood Box', 100)))
for process in processes:
process.start()
for process in processes:
process.join()
time.sleep(5) # Задержка перед следующим циклом
import telebot
class ExceptionHandler(telebot.ExceptionHandler):
def handle(self, exception):
print('Ооооошибка 409!:', exception)
return True
bot = telebot.TeleBot('YOUR_API_TOKEN', exception_handler=ExceptionHandler())
bot.polling(none_stop=True)
with_extra_data=True
в свою самописную функцию, а в parser.get_flats()
- нет. Соответственно он и не парсит дополнительные поля, отсюда и: "пробовала вывести ключи: смотрю, а их там тупо нет". data = parser.get_flats(deal_type=deal_type, rooms=rooms, with_extra_data=True, additional_settings={"start_page": page, "end_page": page})
<span>
c текстом "Тип жилья", а именно такой селектор использовался в библиотеке парсера, следовательно он всегда будет отдавать -1
для object_type.__parse_flat_offer_page_json__(self)
после инициализации словаря page_data
, добавить: ot = self.offer_page_soup.select_one('[data-name="OfferSummaryInfoItem"] p:nth-of-type(2)').get_text()
page_data["object_type"] = ot
# if "Тип жилья" == span.text:
# page_data["object_type"] = spans[index + 1].text
=VLOOKUP(A1;'Лист2'!$A$1:$B$5;2)
=VLOOKUP(запрос; диапазон; индекс)
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.SetSize((250, 250))
self.SetTitle("frame")
sizer_1 = wx.WrapSizer(wx.VERTICAL)
fields = [
("Ширина (м)", "a"),
("Длина (м)", "b"),
("Высота (м)", "h"),
("Окно ширина (м)", "o1"),
("Окно высота (м)", "o2"),
("Дверь ширина (м)", "d1"),
("Дверь высота (м)", "d2"),
]
# Create grid sizers and controls dynamically
for label_text, attr in fields:
grid_sizer = wx.GridSizer(1, 2, 0, 0)
sizer_1.Add(grid_sizer, 1, wx.EXPAND, 0)
label = wx.StaticText(self, wx.ID_ANY, label_text)
grid_sizer.Add(label, 0, wx.ALL, 1)
text_ctrl = wx.TextCtrl(self, wx.ID_ANY, "")
setattr(self, attr, text_ctrl) # Store the text control in the instance
grid_sizer.Add(text_ctrl, 0, 0, 0)
# Create a horizontal sizer for the result and button
h_sizer = wx.BoxSizer(wx.HORIZONTAL)
# Result text control
self.itogo = wx.TextCtrl(self, wx.ID_ANY, "")
self.itogo.SetBackgroundColour((171, 171, 171))
h_sizer.Add(self.itogo, 1, wx.EXPAND | wx.ALL, 5)
# Calculate button
self.button_1 = wx.Button(self, wx.ID_ANY, "Посчитать", size=(110, 21))
h_sizer.Add(self.button_1, 0, wx.ALL, 5)
self.button_1.Bind(wx.EVT_BUTTON, self.onclick)
# Add the horizontal sizer to the main sizer
sizer_1.Add(h_sizer, 0, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
def onclick(self, event):
a = float(self.a.GetValue())
b = float(self.b.GetValue())
h = float(self.h.GetValue())
o1 = float(self.o1.GetValue())
o2 = float(self.o2.GetValue())
d1 = float(self.d1.GetValue())
d2 = float(self.d2.GetValue())
result = round(a * 2 * h + b * 2 * h - o1 * o2 - d1 * d2, 2)
self.itogo.SetValue(str(result))
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, wx.ID_ANY, "")
self.SetTopWindow(self.frame)
self.frame.Show()
return True
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
r
перед ф-строкой во избежание нескольких invalid escape sequence:command = rf'C:\PsTools\psexec.exe -i 1 -s \\192.168.11.18 -u user -p password calc.exe'
import subprocess
def f():
command = rf'C:\Portable\Sysinternal\PsExec.exe -i 1 -s \\192.168.0.3 -u user -p password calc.exe'
return subprocess.call(command, stdout=subprocess.DEVNULL)
interactive=True
, надо указать номер сессии (можно узнать через cmd -> query user
), например: interactive_session=1
. Это аналог -i 1
в psexec.c.run_executable (executable: "cmd.exe", arguments=r"/c start calc.exe", interactive=True, interactive_session=1)