Python заметки
70 subscribers
70 photos
7 files
35 links
Download Telegram
Forwarded from Python заметки
--Замена в строках 2--

Помните я обещал рассказать в предыдущем посту 'замена в строках' об 3 аргументе, который принимает функция replace().

И так replace() принимает третий аргумент а именно сколько таких слов заменить на это слово ( <= если переводить более точно).

Пример:

linestr = 'run run run'
newline = replace('run', 'no')

Но результат будет таким:
>>> no no no

Но если мы добавим третий аргумент, определение которого я дал чуть выше этого поста, то мы исправим это.
Например мы хотим чтобы только два слова 'run' в строке изменились а последнее осталось.

Тогда:

linestr = 'run run run'
newline = replace('run', 'no', 2)

Результат:
>>> no no run

Поясню:
Мы добавили третий аргумент а именно цифру 2, и таким образом изменили только 2 слова 'run' на 'no'.
Что видно из примера выше.
Forwarded from Python заметки
--Заглушка в коде--

В ходе выполнения процесса
pass игнорируется, а значит его можно использовать в качестве заглушки.

Например:

def fun():
       pass

Это очень помогает когда мы хотим навремя 'забыть' об функции как в нашем примере и запустить код без ошибки.
Forwarded from Python заметки
--Tkinter окно--

Tkinter - это библиотека, с помощью которой можно создать графический интерфейс, например:  для игры или мессенджера.

Но всегда сначала нужно создать окно, где будет что-то происходить.

Для этого пишем импортируем саму библиотеку:

>>> from tkinter import *
>>> root = Tk() # создаем окно
>>>
>>> root.mainloop() # это обязательно пишем, иначе окно после запуска кода сразу закроется...

Вот мы и создали окно, можно задать размеры окна, вот так:

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300') # задаем размеры окна**
>>>
>>> root.mainloop()

**в данном случае мы задали 300 на 300, а значит у нас будет квадратное окошко.
Forwarded from Python заметки
--Tkinter текст в окне--

Мы научились создавать окно, давайте теперь научимся отображать текст в окне.
Приступим, сначала как всегда создаем окно:

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300')
>>>
>>>
>>>
>>> root.mainloop()

Теперь нам нужно нарисовать текст, но для этого нам понадобится холст.

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300')
>>>
>>> canvas = Canvas(root,  width=300,  height=300)
>>>
>>> root.mainloop()

И так мы добавили функцию Canvas().
Положив ее в переменную для удобства в использовании.

Теперь создадим сам текст на холсте.

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300')
>>>
>>> canvas = Canvas(root,  width=300,  height=300)
>>>
>>> canvas.create_text(100,100,text='Hello world!')
>>>
>>>
>>> root.mainloop()

Поздравляю мы нарисовали текст в окне! Также можно задать шрифт и размер, но об этом чуть позже...
Forwarded from Python заметки
--Задержка--

Задержка в коде - эту тему должен знать каждый питонист!

Для этого мы импортируем библиотеку time

>>> from time import *

А затем указываем функцию sleep()
Например:

>>>  sleep(2)

Но запустив этот код программа будет ждать 2 секунды и закончиться...
Давайте рассмотрим настоящий пример:

>>> from time import *
>>> sleep(2)
>>>
>>> print('2 сек. прошло!')

Когда запустим этот код то программа подождет 2 секунды и только потом напечатает в консоль '2 сек. прошло!'
Forwarded from Python заметки
--Tkinter текст в окне 2--

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300')
>>>
>>> canvas = Canvas(root, width=300, height=300)
>>>
>>> canvas.create_text(100,100,text='Hello world!')
>>>
>>>
>>> root.mainloop()

Выше фрагмент кода, который мы использовали в предыдущей части этой темы.

Теперь научимся менять шрифт, размер и тип нарисованного на холсте текста.
Для этого достаточно дописать этот фрагмент внутрь функции create_text().

>>> font=('Sans Serif', 10, 'bold')

Допишем его:

>>> from tkinter import *
>>> root = Tk()
>>> root.geometry('300x300')
>>>
>>> canvas = Canvas(root, width=300, height=300)
>>>
>>> canvas.create_text(100, 100, text='Hello world!', font = ('Sans Serif', 10, 'bold'))
>>> canvas.pack()
>>>
>>> root.mainloop()

Первый аргумент это название шрифта, в нашем примере это Sans Serif, но можно поменять на другой.

Второй аргумент это размер, в нашем примере это 10.

Третий аргумент это тип, в нашем примере это bold**.

**bold - жирный шрифт, а normal - обычный, и его можно использовать вместо bold.

Ура! Мы научились хорошо работать с текстом в окне tkinter!
В следующий раз рассмотрим: как изменить цвет текста, а также создание кнопок и вызов функции нажав на них.
Forwarded from Python заметки
--2 лайфхака--

В этом посте я расскажу об
двух лайфхаках который вам не
расскажут на курсах!

_1_

И так в python есть встроенная
функция, а именно istitle(), которая возвращает True если первая буква
в строке заглавная, и аналогично
возвращает False, если первая буква в строке не заглавная.

Рассмотрим пример:
>>> a = 'This is a string'
>>> print(a.istitle())
>>>

Вывод таков:
>>> True

_2_
Функция isdigit(), возвращает True,
если все символы в строке
являются цифрами, возвращает
False если есть цифра и буква.

Пример:
>>> a = 'python3'
>>> print(a.isdigit())
>>>

Вывод:
>>> False

Можно попробовать наоборот
например задать строку '123', тогда конечно будет True, так
как все символы это цифры.

И так мы рассмотрели 2 лайфхака которые не рассказывают на
большинства курсах и вебинарах.
Forwarded from Python заметки
--Код моей игры Кликер--

from tkinter import Tk, Canvas, PhotoImage, Button, Label
from tkinter import ttk


class Root(Tk):
def __init__(self):
super().__init__()

self.i = 0

self.canvas = Canvas(bg='red')
self.canvas.place(relx=0,rely=0)

self.b1 = PhotoImage(file='coin_PNG36868-removebg-preview___копия-removebg-preview.png')
self.button = Button(self, image=self.b1, bd=0, command=self.animation, bg='red')
self.button.pack()

self.label = Label(text="Вы еще не нажимали кнопку")
self.label.place(relx=0.5, rely=0.3, anchor='c')
self.label['bg'] = 'blue'

self.pb = ttk.Progressbar(orient='horizontal', mode="determinate", length=300)
self.pb.place(relx=0.5, rely=0.4,anchor='c')
self.pb["value"] = 0

def animation(self):
self.i += 1
if self.i > 100:
self.label["text"] = f'Вы нажали кнопку 100 раз. Вы выиграли!.'
return

self.pb["value"] = self.i
self.label["text"] = f'Вы нажали кнопку {self.i} раз.'

root = Root()
root.title('Game_clicker_python')
root.geometry("300x300")
root.configure(background='red')
root.mainloop()
Forwarded from Python заметки
--random--

Модуль random генирирует случайные величины.


random.random - генерируем число с плавающей точкей от 0.0 до 1.0

random.randint - гененерируем целое число в заданном диапазоне.

random.randrange - генерируем целое числов в диапазоне, при этом можем задавать шаг генерации.

random.uniform - генерируем случайное число с плавающей точкой в диапазоне.

Примеры:
>>> from random import *
>>>
>>> print(random())
>>> print(randint(1, 4))
>>>print(randrange(2, 10, 2))
>>> print(uniform(1.0, 2.0))
>>>

Вывод будет случайный...
Forwarded from Python заметки
--format()--

Метод format() форматирует строки python

Формат читает тип переданных аргументов и форматирует строку в соответствии с кодами форматирования в строке.

Несколько примеров:

print('Hello {}{}'.format('world', '!'))
print('Hello {1}{0}'.format('!', 'world'))
print('Hello {a}{b}'.format(a='world', b='!'))

>>>
Hello world!
Hello world!
Hello world!
Forwarded from Python заметки
-- f-строки --

f-строки являются строковыми литералами с «f» в начале и фигурные скобки, содержащие выражения, которые в дальнейшем будут заменены своими значениями.

например:

name = 'Eric'
age = 25
print(f'Hello, {name}. You are {age}.')

>>>
Hello, Eric. You are 25.
Forwarded from Python заметки
Используйте f-строки.
Во первых, они делают конкатенацию на несколько мс быстрее чем знак +.
Во вторых, пишется быстрее и код выглядет понятнее.
Forwarded from Python заметки
Наверное надоело
прописывать длинную строку, проверяя каждый раз...
Почему бы не использовать
упрощенный вариант?
Forwarded from Python заметки
--отправка писем--
Отправляем электронные письма

SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет smtplib, реализующий его поведение.

Для подключения к серверу будем использовать класс SMTP_SSL, включающий в себя и шифрование. В качестве аргументов передадим ему адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаём логин и пароль.

Отправлять письма следует методом sendmail, который принимает адреса отправителя и получателя, а также сам текст. В конце программы следует закрывать соединение с помощью метода quit().

Спасибо за картинку 'senior python'
Forwarded from Python заметки
В python передать одно значение из одной переменной и наоборот
сделать совсем легко
при этом вам не надо создавать еще одну
переменную
Forwarded from Python заметки
--Скорость интернета--

Для этого существует библиотека Speedtest.

У объекта класса Speedtest методы download() и upload() , которые отдают скорость скачивания и загрузки данных.

Методы отдают результат в байтах, поэтому переведем их в мегабайты для удобочитаемости.

Спасибо за картинку 'python tricks'
Forwarded from Python заметки
--format()--

Метод format() форматирует строки python

Формат читает тип переданных аргументов и форматирует строку в соответствии с кодами форматирования в строке.

Несколько примеров:

print('Hello {}{}'.format('world', '!'))
print('Hello {1}{0}'.format('!', 'world'))
print('Hello {a}{b}'.format(a='world', b='!'))

>>>
Hello world!
Hello world!
Hello world!
Forwarded from Python заметки
Наверное надоело
прописывать длинную строку, проверяя каждый раз...
Почему бы не использовать
упрощенный вариант?
Forwarded from Python заметки
Небольшая шпаргалка по Python на русском.
Forwarded from Python заметки
2_5192808446629515759.pdf
178 KB
Полная версия шпаргалки.
Forwarded from Python заметки
Python методы для строк