Переменные и типы данных в Python

PythonBeginner
Практиковаться сейчас

Введение

В этом практическом занятии (лабораторной работе) вы научитесь основным концепциям переменных и типов данных в Python. Переменные являются важнейшими строительными блоками программирования, которые позволяют вам хранить, получать доступ к данным и манипулировать ими в вашем коде. Понимание различных типов данных является ключевым моментом для написания эффективных программ на Python.

Вы создадите различные переменные, изучите разные типы данных, доступные в Python, выполните преобразования типов и узнаете, как использовать переменные в выражениях. Эти навыки являются основой программирования на Python и необходимы для разработки более сложных приложений.

К концу этого практического занятия вы будете свободно создавать и использовать переменные с разными типами данных в Python.

Создание первых переменных в Python

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

Начнем с создания нового файла на Python и определения нескольких базовых переменных:

  1. Откройте файл /home/labex/project/variables.py в WebIDE.

  2. Добавьте следующий код для определения трех переменных:

## Creating basic variables
water_supply = 100    ## Amount of water in gallons
food_supply = 50      ## Amount of food in pounds
ammunition = 40       ## Number of ammunition rounds

В Python переменную создается путем указания имени, за которым следует знак равенства (=) и затем значение, которое вы хотите присвоить этой переменной.

  1. Теперь добавим код для отображения значений этих переменных:
## Displaying variable values
print("Water supply:", water_supply)
print("Food supply:", food_supply)
print("Ammunition:", ammunition)
  1. Запустите свой скрипт, открыв терминал в WebIDE и выполнив следующую команду:
python3 /home/labex/project/variables.py

Вы должны увидеть следующий вывод:

Water supply: 100
Food supply: 50
Ammunition: 40

Поздравляем! Вы создали свои первые переменные на Python и отобразили их значения. Эти переменные хранят информацию, к которой ваша программа может получить доступ и которую она может манипулировать.

Понимание числовых типов данных

В Python есть несколько типов данных, которые используются для классификации различных видов данных. На этом этапе вы узнаете о двух числовых типах данных: целых числах (integers) и числах с плавающей точкой (floats).

  1. Откройте файл /home/labex/project/variables.py в WebIDE.

  2. Добавьте следующий код в файл для определения переменных с разными числовыми типами данных:

## Numeric data types
integer_value = 42        ## Integer (whole number)
float_value = 3.14159     ## Float (decimal number)
  1. Исследуем типы этих переменных с помощью функции type():
## Check the data types
print("\nUnderstanding data types:")
print("integer_value:", integer_value, "- Type:", type(integer_value))
print("float_value:", float_value, "- Type:", type(float_value))
  1. Теперь выполним несколько базовых операций с этими числовыми типами:
## Basic operations with numbers
sum_result = integer_value + float_value
product_result = integer_value * float_value

print("\nBasic operations:")
print(f"{integer_value} + {float_value} = {sum_result}")
print(f"{integer_value} * {float_value} = {product_result}")
  1. Запустите свой скрипт:
python3 /home/labex/project/variables.py

Вы должны увидеть вывод, похожий на следующий:

Water supply: 100
Food supply: 50
Ammunition: 40

Understanding data types:
integer_value: 42 - Type: <class 'int'>
float_value: 3.14159 - Type: <class 'float'>

Basic operations:
42 + 3.14159 = 45.14159
42 * 3.14159 = 131.94678

Обратите внимание, что при выполнении операций с целыми числами и числами с плавающей точкой Python автоматически преобразует результат в число с плавающей точкой, если это необходимо.

Работа со строками и булевыми значениями

В дополнение к числовым типам данных Python предоставляет строки (strings) для текстовых данных и булевы значения (booleans) для представления истинных и ложных значений. Исследуем эти типы:

  1. Откройте файл /home/labex/project/variables.py в WebIDE.

  2. Добавьте следующий код для определения строковых и булевых переменных:

## String data type - for text
camp_name = "Python Base Camp"
location = 'Programming Valley'  ## Strings can use single or double quotes

## Boolean data type - for true/false values
is_safe = True
has_water = True
enemy_nearby = False
  1. Добавьте код для проверки и отображения этих переменных:
## Displaying string and boolean variables
print("\nString variables:")
print("Camp name:", camp_name, "- Type:", type(camp_name))
print("Location:", location, "- Type:", type(location))

print("\nBoolean variables:")
print("Is the camp safe?", is_safe, "- Type:", type(is_safe))
print("Is water available?", has_water, "- Type:", type(has_water))
print("Is enemy nearby?", enemy_nearby, "- Type:", type(enemy_nearby))
  1. Также продемонстрируем некоторые операции со строками:
## String operations
full_location = camp_name + " in " + location
print("\nFull location:", full_location)

## String repetition
border = "-" * 20
print(border)
print("Camp Information")
print(border)
  1. Запустите свой скрипт:
python3 /home/labex/project/variables.py

Вы должны увидеть вывод, похожий на следующий:

Water supply: 100
Food supply: 50
Ammunition: 40

Understanding data types:
integer_value: 42 - Type: <class 'int'>
float_value: 3.14159 - Type: <class 'float'>

Basic operations:
42 + 3.14159 = 45.14159
42 * 3.14159 = 131.94678

String variables:
Camp name: Python Base Camp - Type: <class 'str'>
Location: Programming Valley - Type: <class 'str'>

Boolean variables:
Is the camp safe? True - Type: <class 'bool'>
Is water available? True - Type: <class 'bool'>
Is enemy nearby? False - Type: <class 'bool'>

Full location: Python Base Camp in Programming Valley
--------------------
Camp Information
--------------------

Обратите внимание, как строки можно объединять с помощью оператора + и повторять с помощью оператора *. Булевы значения полезны для представления условий и управления потоком выполнения программы.

Преобразование типов и проверка типов

Иногда вам нужно преобразовать значения из одного типа данных в другой или проверить тип данных переменной. Это называется преобразованием типов (или приведением типов). Исследуем этот концепт:

  1. Откройте файл /home/labex/project/variables.py в WebIDE.

  2. Добавьте код для демонстрации преобразования типов:

## Type conversion examples
print("\nType Conversion Examples:")

## Converting string to integer
supplies_str = "75"
supplies_int = int(supplies_str)
print(f"String '{supplies_str}' converted to integer: {supplies_int} - Type: {type(supplies_int)}")

## Converting integer to string
days_int = 30
days_str = str(days_int)
print(f"Integer {days_int} converted to string: '{days_str}' - Type: {type(days_str)}")

## Converting integer to float
distance_int = 100
distance_float = float(distance_int)
print(f"Integer {distance_int} converted to float: {distance_float} - Type: {type(distance_float)}")

## Converting float to integer (note: this truncates the decimal part)
temperature_float = 32.7
temperature_int = int(temperature_float)
print(f"Float {temperature_float} converted to integer: {temperature_int} - Type: {type(temperature_int)}")
  1. Добавьте код для проверки типов данных:
## Type checking
print("\nType Checking Examples:")
value1 = 42
value2 = "42"
value3 = 42.0

print(f"Is {value1} an integer? {isinstance(value1, int)}")
print(f"Is {value2} an integer? {isinstance(value2, int)}")
print(f"Is {value3} a float? {isinstance(value3, float)}")
print(f"Is {value2} a string? {isinstance(value2, str)}")
  1. Запустите свой скрипт:
python3 /home/labex/project/variables.py

Вы должны увидеть вывод, похожий на следующий:

...previous output...

Type Conversion Examples:
String '75' converted to integer: 75 - Type: <class 'int'>
Integer 30 converted to string: '30' - Type: <class 'str'>
Integer 100 converted to float: 100.0 - Type: <class 'float'>
Float 32.7 converted to integer: 32 - Type: <class 'int'>

Type Checking Examples:
Is 42 an integer? True
Is 42 an integer? False
Is 42.0 a float? True
Is 42 a string? True

Обратите внимание, что:

  • Функция int() преобразует значения в целые числа.
  • Функция float() преобразует значения в числа с плавающей точкой.
  • Функция str() преобразует значения в строки.
  • При преобразовании числа с плавающей точкой в целое число дробная часть отбрасывается (не округляется).
  • Функция isinstance() проверяет, является ли переменная определенного типа.

Эти функции преобразования полезны, когда вам нужно обработать ввод от пользователей или работать с данными из разных источников.

Переменные в выражениях и принятие решений

Переменные становятся действительно мощными, когда используются в выражениях и структурах принятия решений. Исследуем, как использовать переменные в вычислениях и условных операторах:

  1. Откройте файл /home/labex/project/variables.py в WebIDE.

  2. Добавьте код для демонстрации использования переменных в вычислениях:

## Variables in expressions
print("\nVariables in Expressions:")

water_per_day = 4  ## gallons
food_per_day = 2.5  ## pounds

## Calculate how long supplies will last
water_days = water_supply / water_per_day
food_days = food_supply / food_per_day

print(f"With {water_supply} gallons of water, consuming {water_per_day} gallons per day, water will last {water_days} days")
print(f"With {food_supply} pounds of food, consuming {food_per_day} pounds per day, food will last {food_days} days")
  1. Добавьте код для демонстрации использования переменных в условных операторах:
## Using variables for decision making
print("\nDecision Making with Variables:")

## Check which supply will run out first
if water_days < food_days:
    limiting_factor = "Water"
    limiting_days = water_days
else:
    limiting_factor = "Food"
    limiting_days = food_days

print(f"{limiting_factor} will run out first, after {limiting_days} days")

## Check if supplies are sufficient for a 10-day journey
journey_days = 10
sufficient_supplies = water_days >= journey_days and food_days >= journey_days and ammunition >= 20

print(f"Planning a {journey_days}-day journey.")
print(f"Do we have sufficient supplies? {sufficient_supplies}")

## Provide specific supply status
if water_days < journey_days:
    print(f"Warning: Water will only last {water_days:.1f} days.")
if food_days < journey_days:
    print(f"Warning: Food will only last {food_days:.1f} days.")
if ammunition < 20:
    print(f"Warning: Only {ammunition} rounds of ammunition available.")
  1. Запустите свой скрипт:
python3 /home/labex/project/variables.py

Вы должны увидеть вывод, похожий на следующий:

...previous output...

Variables in Expressions:
With 100 gallons of water, consuming 4 gallons per day, water will last 25.0 days
With 50 pounds of food, consuming 2.5 pounds per day, food will last 20.0 days

Decision Making with Variables:
Food will run out first, after 20.0 days
Planning a 10-day journey.
Do we have sufficient supplies? True

Это демонстрирует, как можно использовать переменные в вычислениях и как принимать решения на основе значений переменных. Обратите внимание, как мы используем операторы сравнения (<, >=) и логические операторы (and) для создания условий.

Синтаксис {water_days:.1f} указывает, что число с плавающей точкой должно быть отображено с одним знаком после запятой.

Резюме

В этом практическом занятии вы изучили основные концепции переменных и типов данных в Python. Вы создали и использовали переменные различных типов, в том числе:

  • Целые числа (integers) для представления целых значений
  • Числа с плавающей точкой (floats) для представления десятичных чисел
  • Строки (strings) для хранения текстовых данных
  • Логические значения (booleans) для представления истинных и ложных значений

Вы также узнали, как:

  • Проверять тип переменной с помощью функции type()
  • Преобразовывать данные между разными типами с использованием функций, таких как int(), float() и str()
  • Использовать переменные в выражениях и вычислениях
  • Принимать решения на основе значений переменных с помощью условных операторов

Эти концепции являются основой программирования на Python. Переменные позволяют вам хранить и манипулировать данными, а понимание различных типов данных помогает выбирать правильный тип для каждой ситуации. По мере продолжения изучения Python вы будете строить на этих основах более сложные и мощные программы.