Помощник для написания кода на Python

Сайт: Информатикс
Курс: 2086 8М Информатика
Книга: Помощник для написания кода на Python
Напечатано:: Гость
Дата: Вторник, 2 Сентябрь 2025, 01:23

1. Условный оператор

Условный оператор if:

if $условие$:
  $действие 1$
  $действие 2$
  $действие 3$
  ...
  $последнее действие$
else:
  ...

К примеру:

if a >= 0:
  print(a)
else:
  a*= -1
  print(a)

2. Циклы

Цикл for:

for $переменная$ in $список$:
  ...

К примеру:

for i in range(10):
  print(i)

Обратите внимание, что результатом функции range(10) на самом деле является списком из чисел от 0 до 9.


Цикл while:

while $условие$:
  ...

К примеру:

while a < 10:
  a += 1



Также существуют команды break и continue.
Break останавливает цикл и выходит из него.
Continue завершает "шаг" цикла и переносит нас в начало.
При этом и break, и continue можно использовать и в for'е тоже.

while True:
  a += 1
  if a < 10:
    break

print(a) // выведет 10

b = 0

while b < 20:
  b += 1
  if b == 10:
    continue
  print(b)
//такой цикл выведет все числа от 1 до 20, пропустив 10


2.1. range()

range() - функция, возвращающая список из чисел. Возможные способы её применения:

a = range(10) // a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = range(4,7) // b = [4, 5, 6]
c = range(10, 6, -1) // c = [10, 9, 8, 7]

То есть если вы подаёте 1 переменную, то создаётся список от 0 до n;
Если подаёте 2 - то список от k до n;
Если три, то список от k до n с шагом l;

3. Массивы (или же списки)

Список - тип данных для хранения набора элементов.
Задать его можно следующим образом:

a = [0, 2, 4, 7]
b = ["yes", "no"]

Обратиться к списку можно с помощью квадратных скобок, а именно:

print(a[1]) // выведет 2
print(b[0]) // выведет yes

При этом можно обращаться и с конца, используя отрицательные числа, то есть под индексом -1 будет последний элемент списка.
Длину списка можно унать через len(a). (где а - название списка)

В задачах может быть полезна следующая конструкция:

A = input().split()
for i in range(len(A)):
  A[i] = int(A[i])

Она позволяет сделать из строчки чисел, записанных через пробел, список А.

4. Работа с файлами

f = open("название_файла", 'r')
a = []
for i in f:
  a.append(int(i))
...
f.close()

x = open('1.txt', mode='w')
x.write("asd")
x.close()

5. Pygame

import pygame

pygame.init() # начало "игры"

screen = pygame.display.set_mode([600,800]) # создаёт окно размера 600 на 800 и объект Surface в переменной screen (в дальнейшем в screen'е можно рисовать)

screen.fill((255,255,255)) # красит экран в белый

pygame.draw.rect(screen, (255,0,0), pygame.Rect((20,20), (20,20)))  # рисует прямоугольник в screen; красного цвета; с верхней левой координатой (20,20) и размера 20 на 20
pygame.draw.ellipse(screen, (0,255,0), pygame.Rect((20,60), (20,20))) # рисует эллипс в screen; зелёного цвета; внутри прямоугольника с левой координатой (20,60) и размера 20 на 20
# если хочется не полностью закрашенный объект, а лишь контур, добавьте параметр width=число, где число - это толщина. Если толщина = 0, то красится всё.

pygame.display.update() # "применяет" изменения, связанные с графикой (в нашем случае покажет прямоугольник)


С цветами полезно сделать следующее: создать переменные цветов, где прописаны их значения в RGB, и вставлять имена переменных вместо чисел в скобках. К примеру:

RED = (255,0,0)

#... код

pygame.draw.rect(имя_экрана, RED, pygame.Rect((20,20), (20,20))) 

Так можно лишь один раз найти, какие цвета чему соответствуют и дальше не вспоминать, а лишь использовать названия.

Достаточно удобную документацию по функционалу можно найти по ссылке https://devdocs.io/pygame/

6. Обработка событий

import pygame

pygame.init()
screen = pygame.display.set_mode([600,800])

screen.fill((255,255,255))

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:                #если событие - выход из pygame
            running = False                         #то остановить цикл
        if event.type == pygame.MOUSEBUTTONDOWN:     #если - нажатие мыши
            print(event.pos)                         #напечатать в консоли координаты нажатия


В дальнейшем есть смысл знать, какие события в принципе бывают:

QUIT              none
ACTIVEEVENT       gain, state
KEYDOWN           key, mod, unicode, scancode
KEYUP             key, mod
MOUSEMOTION       pos, rel, buttons
MOUSEBUTTONUP     pos, button
MOUSEBUTTONDOWN   pos, button
VIDEORESIZE       size, w, h
VIDEOEXPOSE       none
USEREVENT         code
В левом столбце название события, в правом - параметры, сопровождаемые с событием (к примеру кооринаты нажатия)

7. Генерация случайного значения

import random as rn
import time

rn.seed(time.time())
print(rn.randint(1,2))