Create A Loyalty Program Another Thing Growth Buy Email List Hackers Focus On Is Building Customer Loyalty .

 A loyal customer not only provides a better return on investment but also attracts new customers. Loyalty was one of the main reasons customers chose Amazon over other buy email list e-commerce stores at the start of the COVID-19 pandemic, leading to an increase in Amazon traffic of 100 million. Related:   Keyboard shortcuts for Calendar, Reminders, and Notes on Mac The easiest way to build loyalty is to thank your customers for buy email list choosing your brand over all others. Virtual phone systems are the future of customer retention. If you can connect with your customers personally or provide them with a tailored customer marketing experience, you can increase your growth more than buy email list your competitors. 

You can offer a loyalty discount or membership based on purchases, or you can simply send a thank you card. You can promote your loyalty program using Chatbots WP, for buy email list example. You can design a bot to inform site visitors about your offer and even answer frequently asked questions in a fully automated way. Focus on email marketing optimization Email marketing is a strategy that most WooCommerce store owners use when launching a new product or service. A cloud-hosted telephony solution lets you make calls from any laptop or mobile device. This is especially good for those who have a micro-niche e-commerce store and want to scale it. You can provide real-time support to buy email list your customers and connect with them on an individual level.

However, this technique became saturated over time. You need to move to a more personalized approach based on your individual client. If you start with cold buy email list campaigns hoping that the target audience can convert, you may not get the best results. The easiest way to personalize your email is to use an email automation platform. This type of platform lets you focus on individual aspects using features like segmentation, A/B testing, custom template design, and more. Alternatively, you can couple your email marketing campaign with your social buy email list media to create a 360-degree customer marketing strategy.



Почему не запускается программа? Python + TKINTER

import os
from tkinter import *
import subprocess
from tkinter import ttk

path = "C:/Program Files/Organaizer"

m1 = "C:/Program Files/Organaizer/Monday/Registration"
m2 = "C:/Program Files/Organaizer/Monday/Literature"
m3 = "C:/Program Files/Organaizer/Monday/ITGS"
m4 = "C:/Program Files/Organaizer/Monday/Maths"
t1 = "C:/Program Files/Organaizer/Tuesday/Registration"
t2 = "C:/Program Files/Organaizer/Tuesday/English"
t3 = "C:/Program Files/Organaizer/Tuesday/Literature"
t4 = "C:/Program Files/Organaizer/Tuesday/CS"
t5 = "C:/Program Files/Organaizer/Tuesday/PE"
w1 = "C:/Program Files/Organaizer/Wednesday/Registration"
w2 = "C:/Program Files/Organaizer/Wednesday/CS"
w3 = "C:/Program Files/Organaizer/Wednesday/Psychology"
w4 = "C:/Program Files/Organaizer/Wednesday/English"
h1 = "C:/Program Files/Organaizer/Thursday/Registration"
h2 = "C:/Program Files/Organaizer/Thursday/English"
h3 = "C:/Program Files/Organaizer/Thursday/Maths"
h4 = "C:/Program Files/Organaizer/Thursday/Literature"
h5 = "C:/Program Files/Organaizer/Thursday/ITGS"
f1 = "C:/Program Files/Organaizer/Friday/Registration"
f2 = "C:/Program Files/Organaizer/Friday/CS"
f3 = "C:/Program Files/Organaizer/Friday/Psychology"
f4 = "C:/Program Files/Organaizer/Friday/Grorootg Minds"


try:
    os.makedirs(path)
except OSError:
    print ("The %s directory could not be created" % path)
else:
    print ("The %s directory was successfully created" % path)


try:
    os.makedirs(m1)
except OSError:
    print ("The %s directory could not be created" % m1)
else:
    print ("The %s directory was successfully created" % m1)

try:
    os.makedirs(m2)
except OSError:
    print ("The %s directory could not be created" % m2)
else:
    print ("The %s directory was successfully created" % m2)

try:
    os.makedirs(m3)
except OSError:
    print ("The %s directory could not be created" % m3)
else:
    print ("The %s directory was successfully created" % m3)

try:
    os.makedirs(m4)
except OSError:
    print ("The %s directory could not be created" % m4)
else:
    print ("The %s directory was successfully created" % m4)

try:
    os.makedirs(t1)
except OSError:
    print ("The %s directory could not be created" % t1)
else:
    print ("The %s directory was successfully created" % t1)

try:
    os.makedirs(t2)
except OSError:
    print ("The %s directory could not be created" % t2)
else:
    print ("The %s directory was successfully created" % t2)

try:
    os.makedirs(t3)
except OSError:
    print ("The %s directory could not be created" % t3)
else:
    print ("The %s directory was successfully created" % t3)

try:
    os.makedirs(t4)
except OSError:
    print ("The %s directory could not be created" % t4)
else:
    print ("The %s directory was successfully created" % t4)

try:
    os.makedirs(t5)
except OSError:
    print ("The %s directory could not be created" % t5)
else:
    print ("The %s directory was successfully created" % t5)

try:
    os.makedirs(w1)
except OSError:
    print ("The %s directory could not be created" % w1)
else:
    print ("The %s directory was successfully created" % w1)

try:
    os.makedirs(w2)
except OSError:
    print ("The %s directory could not be created" % w2)
else:
    print ("The %s directory was successfully created" % w2)

try:
    os.makedirs(w3)
except OSError:
    print ("The %s directory could not be created" % w3)
else:
    print ("The %s directory was successfully created" % w3)

try:
    os.makedirs(w4)
except OSError:
    print ("The %s directory could not be created" % w4)
else:
    print ("The %s directory was successfully created" % w4)

try:
    os.makedirs(h1)
except OSError:
    print ("The %s directory could not be created" % h1)
else:
    print ("The %s directory was successfully created" % h1)

try:
    os.makedirs(h2)
except OSError:
    print ("The %s directory could not be created" % h2)
else:
    print ("The %s directory was successfully created" % h2)

try:
    os.makedirs(h3)
except OSError:
    print ("The %s directory could not be created" % h3)
else:
    print ("The %s directory was successfully created" % h3)

try:
    os.makedirs(h4)
except OSError:
    print ("The %s directory could not be created" % h4)
else:
    print ("The %s directory was successfully created" % h4)

try:
    os.makedirs(h5)
except OSError:
    print ("The %s directory could not be created" % h5)
else:
    print ("The %s directory was successfully created" % h5)

try:
    os.makedirs(f1)
except OSError:
    print ("The %s directory could not be created" % f1)
else:
    print ("The %s directory was successfully created" % f1)

try:
    os.makedirs(f2)
except OSError:
    print ("The %s directory could not be created" % f2)
else:
    print ("The %s directory was successfully created" % f2)

try:
    os.makedirs(f3)
except OSError:
    print ("The %s directory could not be created" % f3)
else:
    print ("The %s directory was successfully created" % f3)

try:
    os.makedirs(f4)
except OSError:
    print ("The %s directory could not be created" % f4)
else:
    print ("The %s directory was successfully created" % f4)

root = Tk()
root.title("Login")
root.resizable(0, 0)
root.configure(bg='black')
root.geometry("910x740")

attempts=0
correctpassword="1234"

entrypass = Entry(root, width=25, textvariable=password, show="*")
entrypass.pack()

def start():
    while attempts<3:
        if entrypass==correctpassword:
            print('Correct.')

            altroot = Toplevel(root)
            altroot.title("Organaizer")
            altroot.resizable(0, 0)
            altroot.configure(bg='black')
            altroot.geometry('910x740')

            def monviewcom():
                subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Monday\Registration"')

            def tuviewcom():
                subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Tuesday\Registration"')

            def wedviewcom():
                subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Wednesday\Registration"')

            def huviewcom():
                subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Thursday\Registration"')

            def frviewcom():
                subprocess.Popen(r'explorer /select,"C:\Program Files\Organaizer\Friday\Registration"')


            def mondays():
                monles = Toplevel(root)
                monles.title("MONDAY")
                monles.resizable(0, 0)
                monles.configure(bg='black')
                monles.geometry('910x740')


                monlesson = Frame(monles, width=750, height=600, bg='black')
                monlesson.grid(row=0, column=0, padx=1, pady=1)


                monregistration = Label(monlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
                monregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)

                monliterature = Label(monlesson, text="Russian Literature || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=6)
                monliterature.grid(row=1, column=0, sticky=S, padx=1, pady=1)

                monitgs = Label(monlesson, text="ITGS || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=6)
                monitgs.grid(row=2, column=0, sticky=S, padx=1, pady=1)

                monmaths = Label(monlesson, text="Maths || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
                monmaths.grid(row=3, column=0, sticky=S, padx=1, pady=1)

                monview = Button(monlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=monviewcom)
                monview.grid(row=4, column=0, sticky=S, padx=1, pady=1)

            def tuesdays():
                tules = Toplevel(root)
                tules.title("TUESDAY")
                tules.resizable(0, 0)
                tules.configure(bg='black')
                tules.geometry('910x740')


                tulesson = Frame(tules, width=750, height=600, bg='black')
                tulesson.grid(row=0, column=0, padx=1, pady=1)


                turegistration = Label(tulesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=5)
                turegistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)

                tuenglish = Label(tulesson, text="English || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=5)
                tuenglish.grid(row=1, column=0, sticky=S, padx=1, pady=1)

                tuliterature = Label(tulesson, text="Literature || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=5)
                tuliterature.grid(row=2, column=0, sticky=S, padx=1, pady=1)

                tucs = Label(tulesson, text="CS || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=5)
                tucs.grid(row=3, column=0, sticky=S, padx=1, pady=1)

                tupe = Label(tulesson, text="PE || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=5)
                tupe.grid(row=4, column=0, sticky=S, padx=1, pady=1)

                tuview = Button(tulesson, text="View", fg='black', bg='white', font=300, width=85, height=5, command=tuviewcom)
                tuview.grid(row=5, column=0, sticky=S, padx=1, pady=1)

            def wednesdays():
                wedles = Toplevel(root)
                wedles.title("WEDNESDAY")
                wedles.resizable(0, 0)
                wedles.configure(bg='black')
                wedles.geometry('910x740')


                wedlesson = Frame(wedles, width=750, height=600, bg='black')
                wedlesson.grid(row=0, column=0, padx=1, pady=1)


                wedregistration = Label(wedlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
                wedregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)

                wedliterature = Label(wedlesson, text="CS || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=6)
                wedliterature.grid(row=1, column=0, sticky=S, padx=1, pady=1)

                weditgs = Label(wedlesson, text="Psychology || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=6)
                weditgs.grid(row=2, column=0, sticky=S, padx=1, pady=1)

                wedmaths = Label(wedlesson, text="English || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
                wedmaths.grid(row=3, column=0, sticky=S, padx=1, pady=1)

                wedview = Button(wedlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=wedviewcom)
                wedview.grid(row=4, column=0, sticky=S, padx=1, pady=1)

            def thursdays():
                hules = Toplevel(root)
                hules.title("THURSDAY")
                hules.resizable(0, 0)
                hules.configure(bg='black')
                hules.geometry('910x740')


                hulesson = Frame(hules, width=750, height=600, bg='black')
                hulesson.grid(row=0, column=0, padx=1, pady=1)


                huregistration = Label(hulesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=5)
                huregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)

                huenglish = Label(hulesson, text="English || 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=5)
                huenglish.grid(row=1, column=0, sticky=S, padx=1, pady=1)

                humaths = Label(hulesson, text="Maths || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=5)
                humaths.grid(row=2, column=0, sticky=S, padx=1, pady=1)

                huliterature = Label(hulesson, text="Literature || 11:40 - 12:20 / 13:20 - 14:00", fg='white', bg='black', font=200, width=85, height=5)
                huliterature.grid(row=3, column=0, sticky=S, padx=1, pady=1)

                huitgs = Label(hulesson, text="ITGS || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=5)
                huitgs.grid(row=4, column=0, sticky=S, padx=1, pady=1)

                huview = Button(hulesson, text="View", fg='black', bg='white', font=300, width=85, height=5, command=huviewcom)
                huview.grid(row=5, column=0, sticky=S, padx=1, pady=1)

            def fridays():
                frles = Toplevel(root)
                frles.title("FRIDAY")
                frles.resizable(0, 0)
                frles.configure(bg='black')
                frles.geometry('910x740')


                frlesson = Frame(frles, width=750, height=600, bg='black')
                frlesson.grid(row=0, column=0, padx=1, pady=1)


                frregistration = Label(frlesson, text="Registration || 8:20 - 8:40", fg='white', bg='black', font=200, width=85, height=6)
                frregistration.grid(row=0, column=0, sticky=S, padx=1, pady=1)

                frcs = Label(frlesson, text="CS|| 8:40 - 10:00", fg='white', bg='black', font=200, width=85, height=6)
                frcs.grid(row=1, column=0, sticky=S, padx=1, pady=1)

                frpsychology = Label(frlesson, text="Psychology || 10:20 - 11:40", fg='white', bg='black', font=200, width=85, height=6)
                frpsychology.grid(row=2, column=0, sticky=S, padx=1, pady=1)

                frgm = Label(frlesson, text="GM || 14:00 - 15:20", fg='white', bg='black', font=200, width=85, height=6)
                frgm.grid(row=3, column=0, sticky=S, padx=1, pady=1)

                frview = Button(frlesson, text="View", fg='black', bg='white', font=300, width=85, height=6, command=frviewcom)
                frview.grid(row=4, column=0, sticky=S, padx=1, pady=1)

            lu = Frame(altroot, width=250, height=200, bg='white')
            lu.grid(row=0, column=0, padx=1, pady=1, sticky=N)

            tp = Frame(altroot, width=250, height=200, bg='white')
            tp.grid(row=0, column=1, padx=1, pady=1, sticky=N)

            ru = Frame(altroot, width=250, height=200, bg='white')
            ru.grid(row=0, column=2, padx=1, pady=1, sticky=N)

            lt = Frame(altroot, width=250, height=200, bg='white')
            lt.grid(row=1, column=0, padx=1, pady=1, sticky=N)

            md = Frame(altroot, width=250, height=200, bg='white')
            md.grid(row=1, column=1, padx=1, pady=1, sticky=N)

            rt = Frame(altroot, width=250, height=200, bg='white')
            rt.grid(row=1, column=2, padx=1, pady=1, sticky=N)

            bt = Frame(altroot, width=250, height=200, bg='white')
            bt.grid(row=2, column=1, padx=1, pady=1, sticky=N)


            mday = Button(lu, text="MONDAY", fg='black', bg='white', font=150, width=27, height=10, command=mondays)
            mday.pack()

            tday = Button(tp, text="TUESDAY", fg='black', bg='white', font=150, width=27, height=10, command=tuesdays)
            tday.pack()

            wday = Button(ru, text="WEDNESDAY", fg='black', bg='white', font=150, width=27, height=10, command=wednesdays)
            wday.pack()

            thday = Button(lt, text="THURSDAY", fg='black', bg='white', font=150, width=27, height=10, command=thursdays)
            thday.pack()

            fday = Button(md, text="FRIDAY", fg='black', bg='white', font=150, width=27, height=10, command=fridays)
            fday.pack()

            saday = Label(rt, text="SATURDAY", fg='black', bg='white', font=150, width=27, height=10)
            saday.pack()

            sday = Label(bt, text="SUNDAY", fg='black', bg='white', font=150, width=27, height=10)
            sday.pack()


            altroot.mainloop()

        else:
            attempts+=1
            print('incorrect!')
            if attempts==3:
                print('too many attempts')

ttt = Button(root, text="Enter", command=start).pack()

root.mainloop()

python   tkinter   gui   help   error  

867   0   09:36, 7th January, 2022


Подскажите как изменить расширение файла изображения на ".webp", при условии, что файл с расширением webp существует.

Здравствуйте!

запрашивается файл с расширением jpeg или jpg или png

Подскажите как изменить расширение файла изображения на ".webp", при условии, что файл с расширением webp существует.

 

set $ext "";

if ( $http_accept ~* webp ) {

    set $ext ".webp";
}

if ( $request_filename ~ (.+)\.(jpg|jpeg|gif|png|ttf|woff|woff2)$ ) {
    set $file_without_ext $1;
}
set $filenew "{$file_without_ext$ext}";
    
location ~* .+\.(jpg|jpeg|gif|png|ttf|woff|woff2)$ {
    expires 30d;

    if ( -f $filenew) {
        rewrite ^(.+)\.(png|jpe?g)$ $1$ext;
    }
    try_files $uri @apache2;
}

location ~* ^(?!/mysql/).+\.(webp|heic|jpg|jpeg|gif|png|svg|js|css|mp3|bmp|swf|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|html|htm|txt|ttf|woff|woff2)$ {
    expires 30d;
    try_files $uri @apache2;
}

nginx  

1658   0   15:26, 5th January, 2022


пайтон

здравствуйте отправте мне пж кто сделал pt4 demo begin 1

 

1ю2ю3ю4ю5ю6  

531   1   10:12, 25th December, 2021


здравствуйте.

что такое пайтон?

 

1   2   3   4   5  

525   0   10:10, 25th December, 2021


TreeView печать в PDF

Почему список созданный руками data, преобразуется в PDF, а список созданный при помощи append нет?

data = [[4, '', 5, 6, 7], [8, 9, '', 10, 11]]    # Преобразуется в PDF

t = []   # Выдает ошибку, см. ниже

def pdf(spacing=1):
for line in tree.get_children():
    for value in tree.item(line)['values']:
        t.append(value)
print(f't={t}')
# Разделяет список таблицы на списки по строкам
chunk_size = 5  # кол-во элементов в одной строке
new_list = [t[x:x + chunk_size] for x in range(0, len(t), chunk_size)]
print(f'new_list={new_list}')

pdf = FPDF()
pdf.set_font("Arial", size=12)
pdf.add_page()

col_width = pdf.w / 4.5
row_height = pdf.font_size
for row in new_list:
    for item in row:
        print(f'item={item}')
        pdf.cell(col_width, row_height * spacing,
                 txt=str(item), border=1)
    pdf.ln(row_height * spacing)

file_name = en1.get()
print(f'file_name={file_name}')
pdf.output(f'{file_name}.pdf')  # Наименование файла

Ошибка:

t=['Скамейка 1', '', '', '', '', 'Труба  d20х2000', '2.0', 'шт', '3.0', '6.0', 'Уголок 40х40х3х2000', '4.0', 'шт', '5.0', '20.0']
total=26.0
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
    return self.func(*args)
  File "/Users/ulia/Documents/Курс Python/Мои программы/Скамейка/1 таблица 3 без базы.py", line 151, in pdf
    pdf.output(f'{file_name}.pdf')  # Наименование файла
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1065, in output
    self.close()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 246, in close
    self._enddoc()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1636, in _enddoc
    self._putpages()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fpdf/fpdf.py", line 1170, in _putpages
    p = self.pages[n].encode("latin1") if PY3K else self.pages[n]
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 82-89: ordinal not in range(256)
new_list=[['Скамейка 1', '', '', '', ''], ['Труба  d20х2000', '2.0', 'шт', '3.0', '6.0'], ['Уголок 40х40х3х2000', '4.0', 'шт', '5.0', '20.0']]
item=Скамейка 1
item=
item=
item=
item=
item=Труба  d20х2000
item=2.0
item=шт
item=3.0
item=6.0
item=Уголок 40х40х3х2000
item=4.0
item=шт
item=5.0
item=20.0
file_name=Скамейка 1

Process finished with exit code 0

python  

608   0   14:06, 7th December, 2021


как работать в Visual Studio 2019 с двумя или более разными докуметами (а не с одним)

Как работать в Visual Studio 2019с двумя или более проектами (программами, кодами) одновременно. Задача, получение основ и обучение. было желание запустить в кажной вкладке новую программу (как в браузере новый сайт на новой вкладке, для того чтоб в одной вкладке писать чтстоаой код, а в новую вставлять коды с интернета и пообовать что получится незааисимо от той программы над которой работаю. Как я понял там такого невозможно, открывается только тот же файл в котором работаешь. я в учебниее Майкрософта вычитал что можно создать несколько экземпляров обозреватнля решений, но не пойму как это сделать, он тоже только один всегда.

Нужно для учёбы.



pablo

pABLO

Pablo  

437   1   14:47, 4th November, 2021


Программа для вычисления периметра треугольника по трём сторонам на Python

Программа для вычисления периметра треугольника по трём сторонам на Python. Написать исключение для генерации сообщения о невозможности выполнения такой операции (сумма двух любых сторон должна быть больше 3-й). 

p.s - 1)контролируя состояние потоков ввода/вывода, 2)при возникновении ошибок, связанных с корректностью выполнения математических операций, генерировать и обрабатывать исключительные ситуации, 3) использовать raise.

Если знаете, как это должно выглядеть, подскажите пожалуйста.