#Глава 2
#Python. Первые шаги
print("Hello World!") #комментарий
import turtle #импорт модуля
turtle.reset() #инициализация модуля. Метод turtle.reset() удаляет рисунки всех перьев с холста/экрана, перемещает перо/карандаш в начало координат и устанавливает для переменных пера значения по умолчанию.
turtle.down() #перо опустить
turtle.forward(100) #двигаться
turtle.left(90) #повернуть влево на х градусов
turtle.right(90) #повернуть вправо на х градусов
turtle.up() #перо поднять
turtle.reset()#очищает холст, НЕ меняет положения пера,
turtle.goto(0,0) #перейти по координатам
turtle.width(10) #толщина пера
turtle.backward(100) #пятиться
turtle.clear()
input()# комп ждёт ввода данных. Заодно он не закроет окно с черепашкой
Python Златопольский 3
#Глава 3
#Вывод информации на экран
print("qqq".upper()) #принцип объекта и метода
#сепаратор
print(11,"синиц и",9,"воробьев") #сепаратор по умолчанию - обычный пробел
print(11,"синиц и",9,"воробьев", sep=', эээ, ') # изменённый сепаратор
print(11,"синиц и",9,"воробьев", sep='') # пустой сепаратор
#окончание
print("птичка") # окончание по умолчанию - перенос строки
print("") #просто пустая строка
print() #просто перенос
print("рыбка", end='') # изменённое окончание
#сепаратор и окончание одновременно
print("мышка","мышка","мышка",sep=' >.< ',end='')
#округление
print(0.9999999999999999) #максимум, сколько питон выводит
print(0.99999999999999999)#уже округляет
#Форматирование: кол-во знаков после запятой.
# Обрати внимание на округление.
# Ёщё обрати внимание на отступ для знака "-".
# "+" не ставится, но место для него есть! (если поставить пробел заранее)
#Кстати, f - это float, т.е., дробное число
print('%.3f'% 0.888888)
print('% .3f'% 0.888888)# Кстати, тут можно поставить пробел!
print('% .3f'% 0.888888)# увы, только один пробел... :-(
print('%.3f'% -0.999999)
print('%.3f'% 0.999999)
print('%.3f'% 0.666666)
print('%.3f'% 0.555555)
print('%.3f'% 0.123456)
#Обратная ситуация: добавляем разряды, хотя они и не особо тут нужны
print('%.6f'% 0.123)
print('%.6f'% 0.123)
#Кол-во знаков до запятой/ дробь не отображается, идёт округление
#Если знаков меньше - то слева останутся пробелы
#Если знаков больше - то Python плюет на ограничения.
print('%5.f'% -775533.6)
print('%5.f'% -77553.6)
print('%5.f'% -7755.6)
print('%5.f'% -775.6)
print('%5.f'% -77.6)
print('%5.f'% -7.6)
print('%5.f'% -7)
# а теперь всё вместе!
print('%8.3f'% -775533.613462)
print('%8.3f'% -77553.61346)
print('%8.3f'% -7755.6134)
print('%8.3f'% -775.613)
print('%8.3f'% -77.61)
print('%8.3f'% -7.6)
print('%8.3f'% -7)
# а теперь несколько штук! Попробуй сам разные комбинации!
print('%8.3f'% -775533.613462, '%4.f'% 51324)
print('%8.3f'% -77553.61346, '%4.f'% 5132)
print('%8.3f'% -7755.6134, '%4.f'% 513)
print('%8.3f'% -775.613, '%4.f'% 51)
print('%8.3f'% -77.61, '%4.f'% 5)
#десятичное форматирование
#d - decimal
print(5) #всё ОК
print('%1d'% 5) #всё ОК
print('%2d'% 5) #начался отступ слева (там свободные разряды)
print('%3d'% 5)
# метод format()
print("у меня {} бананов".format(5))
print("у меня {} бананов и {} яблок".format(5,6))
#всунем форматирование в метод format()
print("у меня {:2d} бананов".format(5))
# восьмеричный, двоичный и шестнадцатеричный формат
print("двоичный: {0:b}, восьмеричный: {0:o}, 16-ричный: {0:x}".format(12))
Python Златопольский 4-5
#Глава 4
#Переменные величины. Ввод данных. Присваивание - 1
# множественное создание и присваивание значений
x=y=5
# множественное присваивание: читерский обмен :-)
a=2
b=3
print(a,b)
a,b=b,a
print(a,b)
# читерский квадратный корень :-)
a=9
print(a**0.5)
# модуль числа
x=abs(-5)
y=abs(5)
print(x)
print(y)
#Глава 5
#Варианты действий в программе
# перенос в коде
# без переноса
x=5+5+5+5+5
+5+5+5+5+5
print(x)
# с переносом (оборатный слэш)
x=5+5+5+5+5\
+5+5+5+5+5
print(x)
# с переносом (скобки)
x=(5+5+5+5+5
+5+5+5+5+5)
print(x)
#двойные неравенства в Python
x=5
y=3
z=1
if y>z and y<x:
print("Y - крепкий середнячок")
if x>y>z:
print("Y - крепкий середнячок")
#функция range возвращает специальный диапазон
#это особый тип данных range
#range применяют не только в циклах...
#... но и в неравенствах!
print(range(5))
print( type(range(5)) )
if y in range(4):
print("Y попал в диапазон Range!")
# есть ли "а" в строке?
stroka="абвгда"
print(stroka.count("а")) # покажет количество вхождений
if "а" in stroka: # "сахарный" синтаксис применим к строке!
print("да, есть!")
#искать в строке можно и через переменную
litera="а"
print(stroka.count(litera))
#функция max - возвращает максимальное значение
x=2
y=8
z=1
maxx=0
maxx=max(x,y,z)
print(maxx)
#в коде с max() нельзя использовать переменную max.
# Python будет их путать :-(
x=5
y=5
if x is y:
print("x is y (5 это 5)")
x=[5]
y=[5]
if x is y:
print("x is y ([5] это [5])")
Python Златопольский 6
#Глава 6
#Повторение действий в программе
#в цикле for, кроме range(), есть многое другое! :-)
for i in range(5):
print(i)
print()
for i in 8,6,4:
print(i)
print()
for i in "cat",True,15:
print(i)
print()
for i in "rat":
print(i)
print()
for i in [22,33,44]:
print(i)
print()
print(i) #Кстати, значение счётчика сохраняется. Но на next-цикле он будет "обнуляться". Поэтому, если это не "цикл-в-цикле" - нет нужды в дополнительном счётчике! Пример - выше, там везде i.
print()
#Задача:
#Определить кол-во трехзначных чисел, сумма цифр которых равна s
count=0
s=9
for i in range(100,1000):
x=str(i)
summ=int(x[0])+int(x[1])+int(x[2])
if summ==s:
print(i,summ)
count+=1
print("кол-во трехзначных чисел, сумма цифр которых равна",s,": ",count)
print()