Базовые конструкции языка Python: от переменных до функций

Раздел: Основы Python -> базовые конструкции Python

Введение в базовые конструкции Python

Python отличается простым и читаемым синтаксисом. Основные конструкции включают переменные, условные операторы, циклы, функции, списки и словари. Рассмотрим их на примере программы, которая взаимодействует с пользователем.

Как написать простую программу на Python, используя базовые конструкции?

Основной способ - последовательное выполнение шагов: объявление переменных, ввод данных, условная проверка, вывод результата.


name = input('Введите ваше имя: ')
age = int(input('Введите ваш возраст: '))
if age >= 18:
    print('Привет, ' + name + '! Вы совершеннолетний.')
else:
    print('Привет, ' + name + '! Вы несовершеннолетний.')

Return b print python (возврат и печать в python)

Введите ваше имя: Анна
Введите ваш возраст: 20
Привет, Анна! Вы совершеннолетний.

Python a b c треугольник (вычисление треугольника по сторонам в python)

Пояснение: функция input получает строку, int преобразует её в целое число. Условный оператор if-else выполняет ветвление.

Типичная ошибка: забыть преобразовать строку в число - возникает ошибка TypeError при сравнении строки с числом. Решение: использовать int() или float().

Другая проблема: ввод нечислового значения для возраста - ошибка ValueError. Можно обработать с помощью try-except.

Как улучшить программу с помощью функций?

Выделение логики в отдельную функцию делает код переиспользуемым и понятным.


def greet(name, age):
    if age >= 18:
        return f'Привет, {name}! Вы совершеннолетний.'
    else:
        return f'Привет, {name}! Вы несовершеннолетний.'

user_name = input('Введите ваше имя: ')
user_age = int(input('Введите ваш возраст: '))
print(greet(user_name, user_age))

базовые знания языка python (базовые знания языка python)

Ошибка: забыть объявить функцию перед вызовом - NameError. Функция должна быть определена до её использования.

Как использовать тернарный оператор для сокращения кода?

Тернарный оператор позволяет записать условное выражение в одну строку.


age = int(input('Введите ваш возраст: '))
result = 'совершеннолетний' if age >= 18 else 'несовершеннолетний'
print(f'Вы {result}.')

сумма a и b python (сумма двух чисел в python)

Сложность чтения при вложенных условиях: лучше избегать глубоких тернарных конструкций.

Как добавить цикл для повторного ввода?

Добавление цикла позволяет многократно запрашивать данные, пока пользователь не введет пустую строку.


while True:
    name = input('Введите имя (или Enter для выхода): ')
    if name == '':
        break
    age = int(input('Введите возраст: '))
    print(greet(name, age))

Range a b python (функция range в python)

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

Как обработать данные нескольких пользователей?

Для хранения данных нескольких пользователей создается список словарей.


users = []
while True:
    name = input('Имя (Enter для завершения): ')
    if not name:
        break
    age = int(input('Возраст: '))
    users.append({'name': name, 'age': age})

for user in users:
    print(greet(user['name'], user['age']))
Имя (Enter для завершения): Анна
Возраст: 20
Имя (Enter для завершения): Иван
Возраст: 17
Имя (Enter для завершения): 
Привет, Анна! Вы совершеннолетний.
Привет, Иван! Вы несовершеннолетний.

Ошибка: обращение к несуществующему ключу - KeyError. Используется метод get() с значением по умолчанию.

Как применить filter или map для обработки?

Применение функций высшего порядка позволяет компактно обработать список.


adults = filter(lambda u: u['age'] >= 18, users)
for adult in adults:
    print(adult['name'] + ' совершеннолетний')

Расширенные примеры базовых конструкций Python

Генераторы списков (list comprehension)

Пример

squares = [x ** 2 for x in range(10)]
print(squares)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Синтаксис: [выражение for элемент in итерируемый_объект if условие].

Словарное включение (dict comprehension)

Пример

square_dict = {x: x**2 for x in range(5)}
print(square_dict)
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Обход словаря с методом items()

Пример

person = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
for key, value in person.items():
    print(f'{key}: {value}')
name: Alice
age: 30
city: Moscow

Одновременная итерация по двум спискам с zip

Пример

names = ['Anna', 'Ivan', 'Olga']
ages = [25, 30, 28]
for name, age in zip(names, ages):
    print(f'{name} - {age}')
Anna - 25
Ivan - 30
Olga - 28

Использование any() и all() для проверки условий

Пример

numbers = [1, 3, 5, 7, 9]
print(any(x % 2 == 0 for x in numbers))
print(all(x > 0 for x in numbers))
False
True

Функция с произвольным числом аргументов (*args)

Пример

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4, 5))
15

Именованные аргументы (**kwargs)

Пример

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f'{key}: {value}')

print_info(name='Bob', age=22, gender='male')
name: Bob
age: 22
gender: male

Лямбда-функции и сортировка

Пример

points = [(1, 2), (3, 1), (5, 0), (2, 3)]
points.sort(key=lambda p: p[1])
print(points)
[(5, 0), (3, 1), (1, 2), (2, 3)]

Цикл for с enumerate для получения индекса

Пример

colors = ['red', 'green', 'blue']
for i, color in enumerate(colors):
    print(f'{i}: {color}')
0: red
1: green
2: blue

Матч-кейс (структурное сопоставление) в Python 3.10+

Пример

def handle_command(command):
    match command.split():
        case ['hello']:
            print('Hello!')
        case ['add', x, y]:
            print(float(x) + float(y))
        case _:
            print('Unknown command')

handle_command('hello')
handle_command('add 5 7')
Hello!
12.0

базовые знания языка Python - comments

En
базовые знания языка python (python)