воскресенье, 1 сентября 2019 г.

Множественное присваивание

За одну инструкцию можно присваивать, изменять значения сразу нескольких переменных

Например:
a = 2 b = 3 a, b = b, a c, d = 4, 5 print(a) print(b) print(c) print(d) ###################
3 2 4 5

Методы find(), replace(), count()

Все эти 3 метода применяются к стоке.

find()

Метод, который возвращает индекс первого вхождения искомой подстроки. Если подстрока не найдена, то метод вернет -1.

replace()

Метод, который заменяет все вхождения одной строки на другую. 
s.replace(<старая>, <новая>)
s.replace(<старая>, <новая>, <количество>) # заменены будут не все вхождения, а только не больше, чем первые <количество> из них.

count()

Метод, который подсчитывает количество вхождений одной строки в другую строку.
s.count(n) # возвращает число вхождений строки n внутри строки s
s.count(n, a, b) # возвращает число вхождений строки n в срезе s[a:b]

Пример:

s = 'Привет' print(s.find('е')) print(s.replace('и', 'у')) print(s.count('в'))
s = 'Мама мыла раму' print(s.replace('а', 'А', 2)) #########################
4 Прувет 1 МАмА мыла раму

суббота, 31 августа 2019 г.

Методы

Методы - это функция, применяемая к объекту.

<имя объекта>.<имя метода>(<параметры>)

пятница, 30 августа 2019 г.

Срезы

Срез (slies) - это исключение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.

1. Взятие одного символа строки s[i], где i - это номер символа, начиная с 0. Если i отрицательное, то отсчет с конца.

2. Срез с двумя параметрами s[a : b] возвращает подстроку b - a символов начиная с символа индекса a

3. Срез с тремя параметрами s[a : b : d], где d - это шаг, возвращает символы a, a + d, a + 2*d и т.д. до b
Также с помощью этого среза можно развернуть строку [ : : -1]

Пример:
s = 'Привет' print(s[0]) print(s[1:3]) print(s[0:5:2]) print(s[::-1]) ################## П ри Пие тевирП

Строки

Строка считывается со стандартного ввода функций input()

Что бы узнать длину строки (количество символов) необходимо воспользоваться функцией len()
Функция str() позволяет перевести любой объект к строке, который ему соответствует, передаваемый в качестве параметра.

Пример:

f = input() print(len(f)) #### sssss 5

Задача 4. Лесенка

Задача:

По данному натуральному числу n ≤ 9 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов

Решение:

n = int(input())
sum = 1
for i in range(1, n+1) :
sum += i
for i in range(1, sum) :
print(i, end ='')
sum = 1
print()

Задача 3. Порядок возрастания или убавания

Задача:

Даны два целых числа A и B. Необходимо вывести все числа от А до B включительно, в порядке возрастания, если  A < B, или в порядке убывания в противном случае.

Решение:

A = int(input())
B = int(input())
if A < B :
d = 1
B +=1
else :
d = -1
B -= 1
for i in range(A, B, d) :
print(i)

Функция print()

Функция print() выводит заданные объекты на стандартное устройство вывода (экран) или отправляет их текстовым потоком в файл.
Параметры:
  • objects – объект, который нужно вывести * обозначает, что объектов может быть несколько;
  • sep – разделяет объекты. Значение по умолчанию: ‘ ‘;
  • end – ставится после всех объектов;
  • file – ожидается объект с методом write (string). Если значение не задано, для вывода объектов используется файл sys.stdout;
  • flush – если задано значение True, поток принудительно сбрасывается в файл. Значение по умолчанию: False.
Примечание: sep, end, file и flush — это аргументы-ключевые слова. 

Пример:

print(1, 2, 3, 4)
print(1, 2, 3, 4, sep=',')
print(1, 2, 3, 4, sep=' ', end='.')
print(1, 2, 3, 4, sep='yyyyy', end='\n')
print(1, 2, 3, 4, sep=' ', end='.')
############ результат #################
1 2 3 4 1,2,3,4 1 2 3 4.1yyyyy2yyyyy3yyyyy4 1 2 3 4.

Цикл for и функция range()

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

for <переменная> in <множество значений> :
    <тело цикла>

Множество значений может быть:

  • список;
  • кортеж;
  • строка;
  • диапазон.

Функция range() 

Можно использовать цикл for вместе с функцией range, для повторения цикла некоторое заданное число раз n.

Пример:

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

n должно принадлежать множеству натуральных чисел

range(a, b) от a до b-1, где a < b

range(a, b, d) где a - начальное значение i до b-1, d - величина изменения i.
d > 0, то i = a, i = a+d, i = a+2*d и т.д. до тех пор пока i < b
d < 0, то i = a, i = a+d, i = a+2*d и т.д. до тех пор пока i > b

Пример:


for i in range(10, 0, -2) :
    print(i) # 10, 8, 6, 4, 2

for i in range(1, 10, 2) :
    print(i) # 1, 3, 5, 7, 9

четверг, 29 августа 2019 г.

Корень, логарифм, тригонометрия

Функция
Описание
Функции требующие подключения модуля math
Корень и логарифмы
sqrt(x)
Квадратный корень
log(x)
Натуральный логарифм
log(x, b)
Логарифм по основанию b
Константы
e
Основание натурального логарифма, = 2.718...
pi
Число π = 3.1415...
Тригонометрия
sin(x)
Синус угла, задаваемого в радианах
cos(x)
Косинус угла, задаваемого в радианах
tan(x)
Тангенс угла, задаваемого в радианах
asin(x)
Арксинус, возвращает значение в радианах
acos(x)
Арккосинус, возвращает значение в радианах
atan(x)
Арктангенс, возвращает значение в радианах
atan2(y, x)
Полярный угол (в радианах) точки с координатами (x, y)
degrees(x)
Перевод радиан в градусы
radians(x)
Перевод градусов в радианы

Округление часть 1


Функция
Описание
Стандартные функции, не требующие подключения модуля math
Округление
int(x)
Округляет число в сторону нуля
round(x, n)
Округляет число x до n знаков после точки
abs(x)
Модуль числа x
Функции требующие подключения модуля math
round(x)
Округляет число до ближайшего целого. Если дробная часть равна 0.5, то число округляется до ближайшего четного числа
floor(x)
Округление в меньшую сторону
ceil(x)
Округление в большую сторону
Поговорим немного об округлении, со стороны программирования все просто, но вот чтобы понять что имеется в виду под этими функциями обратимся к математике

int(x)

Округление в сторону нуля довольно таки простое, приведу пример:
3.087 ≈ 3
-9.876 ≈ -9
Т.е. какое целое число ближе к нулю до того и округляем, чем-то похоже на округление в меньшую сторону для положительных чисел и в большую для отрицательных.

round(x, n)

Работает по принципу "Как в школе в классе 5 объясняли округление".
Подчеркиваем цифру которая находится на разряде до которого округляем (в нашем случае после точки на месте n)
Если цифра следующая за подчеркнутой цифрой равна  0, 1, 2, 3, 4, то подчеркнутую цифру оставляем прежней.
Если цифра следующая за подчеркнутой цифрой равна  5, 6, 7, 8, 9, то подчеркнутую цифру увеличивает на 1.
Пример:

round(3.087, 2)   # 3.087 ≈ 3.09
round(-9.873, 2)   #-9.873 ≈ -9.87

abs(x)

Ну тут все просто, я думаю все помнят что такое модуль числа? Ладно сейчас напомним
Модуль (абсолютная величина) числа x принадлежащего множеству действительных чисел (обозначается |x|) определяется следующим образом:
|x| = x, если x ≥ 0 
|x| = -x, если x < 0
Геометрический смысл: |x| - это расстояние от точки нуль до точки x на числовой оси.   
Пример:
abs(3.087)   # 3.087 
abs(-9.873)  # 9.873 

Округление часть 2

Функции требующие подключения модуля math
round(x)
Округляет число до ближайшего целого. Если дробная часть равна 0.5, то число округляется до ближайшего четного числа
floor(x)
Округление в меньшую сторону
ceil(x)
Округление в большую сторону

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

round(x)

Округляем до целого числа таким же образом как и в "математике 5 класса" о которой я говорила в первой части, но не всегда если дробная часть 0.5, то до ближайшего четного числа. Рассмотрим на примере:

import match

print(round(0.234)) # 0
print(round(0.534)) # 1
print(round(0.5)) # 0
print(round(1.5)) # 2

Как то так!

floor(x)

В меньшую сторону, рассмотрим на примере:

from math import * # импортируем все функции из библиотеки math

print(floor(0.5)) # 0
print(floor(-0.5)) # -1
print(floor(2.3)) # 2
print(floor(2.9)) # 2
print(floor(-2.3)) # -3
print(floor(-2.9)) # -3

ceil(x)

В большую сторону, рассмотрим на примере:

from math import * # импортируем все функции из библиотеки math

print(floor(0.5)) # 1
print(floor(-0.5)) # 0
print(floor(2.3)) # 3
print(floor(2.9)) # 3
print(floor(-2.3)) # -2
print(floor(-2.9)) # -2

среда, 28 августа 2019 г.

Задача 2. Ладья


Решим простую задачу:

Даны две различные клетки шахматной доски, нужно определить может ли фигура "Ладья" попасть с первой клетки на вторую одним ходом
первая клетка с координатами (x1, y1)
вторая клетка с координатами (x2, y2)

Решение:

Ладья может двигаться на любое число полей по горизонтали или по вертикали.

Таким образом должны совпадать значения координат по x или по y. И этого условия достаточно. Т.е "Если x1 = x2 или y1=y2, то да фигура может попасть с первой клетки на вторую, иначе нет не может"

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

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input()) 

if x1 == x2 or y1 == y2 :
    print('yes')
else :
    print('no')

Условия

Обычно используют только if ... else, но может быть также каскадные условные инструкции if ... elif ... else. Рассмотрим по порядку

If ... else

if - если
else - иначе
: - выполняет роль слова "то"

if  <условие> :
    <Блог инструкций>
else :
    <Блог инструкций>

Мы формулируем условное предложение и сами на него отвечаем, после этого можно записать это в виде кода. Пример : "Если число положительное, то напиши слово "положительное", иначе напиши "не положительное""

Примечание: нуль ни положительное, ни отрицательное, поэтому в данном примере если число будет равно нуль мы выведем на экран "не положительное". Положительное число, если оно строго больше нуля (строго больше >).

x = int(input())
if x > 0 :
    print('положительное')
else :
    print('не положительное')

Для выделения блока инструкций, используют отступ 4 пробела (не используйте Tab)

If ... elif ... else

elif - как бы еще одно если

if  <условие> :
    <Блог инструкций>
elif  <условие> :
    <Блог инструкций>
else :
    <Блог инструкций>

Пример: 
"Если число положительное, то напиши слово "положительное", если нуль напиши "нуль", иначе напиши "отрицательное""

x = int(input())
if x > 0 :
    print('положительное')
elif x == 0 :
    print('нуль')
else :
    print('отрицательное')

Вообще else можно и не использовать.



Операторы сравнения. Тип данных Bool

Операторы сравнения

Тут все просто как в математике.

>    больше
<    меньше
<=  меньше или равно
>=  больше или равно 
==  равенство
!=   неравенство

and     и
or       или
not     не

Тип данных Bool

Это логический тип данных, который имеет два значения истина (True) или ложно (False)

Если преобразовать в целое число, то int(True) = 1, а int(False) = 0
При преобразовании str в bool пустая строка будет False, а любая не пустая True

Пример:

print(19>4) # True

Задача 1. Электронные часы

Электронные часы

     Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент . 

Решение:

    Итак мы знаем что в одном часе 60 минут, а также в сутках 24 часа.

чтобы узнать часы нужно n // 60 % 24
т.е. мы все минуты делим нацело на  60 (узнаем сколько часов), но так как минут может быть больше чем в одних сутках, то мы еще возьмем остаток от деления на количество часов в сутках. Т.о. мы узнаем часы

чтобы узнать минуты, тут просто нужно взять остаток от деления на количество минут в часе. 
n % 60

И так задача решена

n = int(input()) # с помощью функции int() преобразуем строку из цифр и целое число
print(n//60%24, n%60)

    Для тех кто забыл, из курса математики, что такое остаток от деления:

    Формула деления числа a на b:

 a = b*c + r         (1)

где a - делимое, b - делитель,  c - частное,  r - остаток;  a, b, c принадлежат множеству натуральных чисел (1, 2, 3, ...),  r принадлежит множеству натуральных чисел и нуль (0, 1, 2, ...).

Если в формуле (1) = 0 , то говорят что число a нацело делится на b, а c - полное частное. Еще число a называют кратным числу b.

Если в формуле (1)  0 , то говорят что число a делится на b с остатком, а c - неполное частное. 

Пример: 

1. 19 разделим на 4

19 = 4*4 + 3 
19 делится на 4 с остатком
в коде 19//4 получим 4, а 19%4 получим 3

2. 16 разделим на 4

16 = 4*4 + 0
16 кратно 4
в коде 16//4 получим 4, а 16%4 получим 0

Ввод и вывод данных. Оператор присваивания. Математические операции

Оператор присваивания

Тут все просто знак

(# - комментарий)
Пример:

a = 5
print(a) # выводим на печать переменную а  

Получим: 5

Ввод и вывод данных

    Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести.
    Для ввода данных в программу мы используем функцию input(). Она считывает одну строку.
    Например:
  1. print('Как вас зовут?')
  2. name = input()  # считываем строку и кладём её в переменную name
  3. print('Здравствуйте, ' + name + '!')

Первая строка выведет на экран сообщение : Как вас зовут?
Вторая строка считает строку которую вы введете с клавиатуры, например : Вася
Третья строка выведет на экран: Здравствуйте, Вася !

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


Математические операции (простейшие)

Сложение    +
Вычитание    -
Умножение    *
Деление    /
Степень     **
Деление нацело    //
Остаток от деления    %

Пример:

print(5+10) # 15
print(10-5) # 5
print(2*2) # 4
print(10/5) # 2.0
print(13//2) # 6
print(13%2) # 1

Информация откуда?

Вся информация на страницах взята с разных источников ссылки на которые указаны в конце страниц. 

Суть блога


Всем добрый день, этот блог предназначен для начинающих программистов. Я сама являюсь таким! Я хочу изучить язык программирования Python, что бы в дальнейшем работать на нем. Каждый день я буду писать о своих достижениях и неудачах, а также использовать данный блог как записную книгу. У кого есть желание, прошу присоединяйтесь!