Введение:

Идея этого поста состоит в том, чтобы помочь всем, кто думает начать кодирование, но не делает этого либо из-за того, что не знает, с чего начать, либо из-за того, что он перегружен количеством контента, доступного в Интернете. Моя основная задача здесь — помочь всем, кто заинтересован в написании кода на Python. Если вы хотите подробно изучить Python, Документация по Pythonотлично поможет вам.

Я попытался структурировать этот пост, чтобы представить переменные и какие данные (числа) обычно хранятся в них, как ими можно манипулировать (операторы). Затем мы продолжаем изучать строки и списки, как их использовать и обновлять. Наконец, мы говорим о том, как принимать решения в коде, используя операторы потока управления, а затем пример кода, и он заканчивается списком вопросов, с которых нужно начать. Давайте начнем и код!

Переменные:

Рассмотрим переменную как контейнер, содержащий данные, которые можно изменить по мере необходимости для решения проблемы. для практических целей предположим, что a = 10 в python создает переменную с именем a и присваивает ей значение 10, и такими переменными можно манипулировать в нашем коде для получения желаемых результатов.

Примечание. Python фактически не присваивает значение переменной, а вместо этого сохраняет ссылку на объект (значение) в переменной. есть отличный пост StackOverflow об этом, если вам интересно

Числа:

При решении той или иной задачи чаще всего используются два типа чисел. Это int и float.

  • int — это целое число, которое может хранить такие значения, как 1, 5, 666, 0
  • float может хранить значения с десятичными точками, такими как 0.0, 4.7, 999.22

Операторы:

5 операторов, которые чаще всего используются в кодировании, это +, -, *, /, %, и они работают так же, как и в большинстве языков, + используется для сложения двух переменных, - для вычитания, * для умножения, / для деления и % для получения остатка.

Примечание. Классическое деление всегда возвращает число с плавающей запятой в python, // можно использовать для деления пола, что устраняет дробную часть. a // b # output = 2

Строки:

Python имеет возможность манипулировать строками, строки обычно выражаются парой ' или ".

new_string = 'this is a string'
new_string = "this is a different string"

Примечание. Python — это язык с выводом типа, поэтому вам не нужно явно определять тип переменной. Он автоматически знает, что 'this is a string' является строкой, и объявляет переменную new_string как строку.

Строки могут быть объединены с помощью + or *

new_string = 'ring!' * 3
# output = 'ring!ring!ring!'
different_string = 'ring!ring!ring!' + 'hello'
# output = 'ring!ring!ring!hello'

Объединение строковых переменных работает только с +

string1 = 'string'
string2 = ' and different string'
string1 + string2 
# output = 'string and different string'
string1 * string2 # error
# TypeError: can't multiply sequence by non-int of type 'str'

Списки:

Список — это составной тип данных, который используется для группировки других значений.

new_list = [] # creates an empty list
new_list = [1, 2, 3, 4]
new_list = [1, 4.6, 'string']

Примечание. Списки обычно содержат значения одного и того же типа, но python позволяет списку хранить значения разных типов, как показано в строке 3 в приведенном выше примере.

Индексация и срезы

Для доступа к элементам в списке можно использовать индекс элемента. Обратите внимание, что индекс Python начинается с 0 при подсчете слева направо и с -1 при подсчете справа налево.

a = [1, 2, 3, 4, 5, 6]
a[0] returns the first element i.e 1
a[1] returns 2
a[5] returns 6
negative index
a[-1] = 6
a[-6] = 1
Here is a simple way to remember how indexing works
 +---+---+---+---+---+---+
 | 1 | 2 | 3 | 4 | 5 | 6 |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

Примечание: функцию len() в python можно использовать для возврата длины списка или строки a = [1, 2, 3] then len(a) = 3.

Операции среза возвращают новый список, содержащий запрошенные элементы. Синтаксис a[start: end] означает создание среза, начиная с индекса start и заканчивая индексом end.

Также обратите внимание, что индексация и нарезка являются общими как для строк, так и для списков.

a = [1, 2, 3, 4, 5, 6]
a[1:3] #returns elements starting from 1(included) up to 3(excluded)
# output [2, 3]
a[2:] # returns elements starting from 2(included) to the end
# output [3, 4, 5, 6]
a[:4] # returns elements from the beginning to index 4(excluded)
# output [1, 2, 3, 4]
a[:] # returns everything from the beginning to the end
[1, 2, 3, 4, 5, 6]
a[-2:] # works with negative index as well
# output [5, 6]

Обратите внимание, что начало всегда включается, а конец всегда исключается. Это гарантирует, что a[:i] + a[i:] всегда равно a.

Списки относятся к изменяемому типу, т.е. их содержимое можно менять. Синтаксис list[index] = new_value

a[0] = 99
output of a = [99, 2, 3, 4, 5, 6]
a.append(7) # add 7 to the list at the end
output of a = [99, 2, 3, 4, 5, 6, 7]

Примечание. Строки являются неизменяемыми, т.е. их невозможно изменить. string[ind] = 'c' приводит к ошибке

Выражения потока управления:

if, он позволяет программе принимать решение на основе условия.

if condition:
    do something
else
    do something else
if number < 0:
    print('Number is negative')
else:
    print('Number is positive')

Примечание. else является необязательным и может использоваться только при необходимости.

for, он позволяет программе перебирать последовательность, например список или строку.

new_list = [1, 2, 3, 4, 5]
for item in new_list:
    print(item)
# output when executed
1
2
3
4
5

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

for i in range(5):
    print(i)
# output
0
1
2
3
4

Обратите внимание, что диапазон начинается с 0

Кодирование вопроса с использованием вышеуказанных понятий

Q1) Даны два массива A и B, содержащие неотрицательные целые числа, задача состоит в том, чтобы вычислить произведение максимального элемента массива большего размера и минимального элемента массива меньшего размера. т. е. если размер A › B, то найдите максимум в A и минимум в B и верните продукт. Предположим, всегда гарантируется, что размеры массивов различны, и самый большой элемент в любом из массивов ≤ 9999.

Задержитесь здесь и подумайте, как можно минимизировать этот код.

Q2) Для заданного массива найдите максимум в первой половине и максимум во второй половине (попробуйте решить этот вопрос, используя срезы). Предположим, что массив всегда четного размера.

Несколько практических вопросов:

Я составил список вопросов, которые могут стать хорошей отправной точкой.

Ссылки: