Раздел «Язык Си».PythonTurtleEjudge:

Печать и чтение с клавиатуры

Уже умеем рисовать и писать на экране

import turtle

t = turtle.Turtle()
t.shape('turtle')
t.color('blue')

t.write("Hello!")     # пишем Hello! на экране
t.fd(100)             # рисуем линию

turtle.done()

Если вы хотите рисовать большими буквами, то лучше сделайте отдельную функцию write:

import turtle

# сделаем НАШУ функцию write
def write(text):
   t.write(text, font=('Arial', 24, 'normal'))  # вызываем функцию write черепахи

t = turtle.Turtle()
t.shape('turtle')
t.color('blue')

write("Hello!")   # вызываем НАШУ функцию write 
t.fd(100)

turtle.done()

Если в учебном классе буквы все еще маленькие, пишите вместо Arial "*serif" (не потеряйте *).

t.write(text, font=('*serif', 24, 'normal'))  # вызываем функцию write черепахи

Печать без черепахи

В питоне можно печатать не на экран черепахи, а на терминал.

print('Hello')

Задача 1.

Напишите программу, которая печатает ваше имя.

Печать и переменные

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

В функции spi переменные size, d, n

import turtle

def write(text):
   t.write(text, font=('Arial', 24, 'normal'))
    
def spi(size, d, n):
    for i in range(n):
        write(size)
        t.fd(size)
        t.lt(90)
        size -= d          # size = size - d

t = turtle.Turtle()
t.shape('turtle')
t.width(5)
t.color('blue')

spi(200, 40)

turtle.done()

spi.png

Рисуем правильный многоугольник. Создали переменную ang и запомнили в ней угол поворота.

def poligon(size, n):
    ang = 360 / n        # новая переменная ang
    for i in range(n):
        t.fd(size)
        t.lt(ang)

7poly.png

Эта картинка получилась при вызове poligon(80, 7)

Печать значения переменной

Для печати значения переменной используют функцию print. Это функция не черепахи, а функция языка python. Поэтому просто print.

x = 2            # в переменную х запомнили число 2
y = 3            # в переменную y запомнили число 3
res = x + y
print(x, y, res) # напечатает 2 3 5

Как работает res = x + y:

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

print(x, y, res)
получим
2 3 5

Чтобы напечатать 1 число на 1 строке, нужно писать много раз print

print(x)
print(y)
print(res)
получим
2
3
5

Печатаем красиво

Хотим напечатать результат программы так:

Сумма чисел 2 и 3 равна 5

Для этого нужно написать в print строку по формату f'текст':

x = 2            # в переменную х запомнили число 2
y = 3            # в переменную y запомнили число 3
res = x + y
print(f'Сумма чисел {x} и {y} равна {res}') # напечатает Сумма чисел 2 и 3 равна 5

Изменяем значение переменной

Значение переменной можно изменять.

x = 2
y = 3
y += 10     # у увеличить на 10, y равен 13
print(x, y) # 2 13

x = x + 7   # вычислить x+7 и результат опять запомнить в х

Как работает x = x + 7 ? Одинаково с x += 7

Вводим с клавиатуры

Чтобы ввести с клавиатуры строку, используйте функцию input(). Она читает и возвращает строку

print('Как тебя зовут?')   # печатает Как тебя зовут?
name = input()             # ждет, когда введут строку и 
                           # запоминает строку в переменнуюname
print('Привет, ', name)    # печатает Привет, и значение переменной name (введенную строку)

Вводим с клавиатуры числа

У нас есть программа, которая складывает числа 2 и 3. Напишем программу, которая складывает любые числа. Для этого прочитаем эти числа с клавиатуры с помощью input().

x = input()      # в переменную х запомнили первую строку, что ввели с клавиатуры
y = input()      # в переменную y запомнили вторую строку, что ввели с клавиатуры
res = x + y
print(f'Сумма чисел {x} и {y} равна {res}')

Ввели:

2
3

Программа напечатала

Сумма чисел 2 и 3 равна 23

Что случилось? Введем другие значения:

asd
zzzzz

Программа напечатала

Сумма чисел asd и zzzzz равна asdzzzzz

Нет ошибки, что мы ввели не число, а текст.

Наша программа не складывает числа. Она склеивает (concatenate) строки.

Сделать из строки число

Функция int() делает из строки целое число. Если в строке написано 1 число.

x = input()      # в переменную х запомнили первую строку, что ввели с клавиатуры
x = int(x)       # из строки сделали число
y = input()      # в переменную y запомнили вторую строку, что ввели с клавиатуры
y = int(y)       # из строки сделали число

res = x + y
print(f'Сумма чисел {x} и {y} равна {res}')

В python можно написать короче: "прочитать строку и сделать из этой строки число".

x = int(input()) # прочитали строку, сделали из нее целое число, записали его в х
y = int(input()) # прочитали следующую строку, сделали из нее целое число, 
                 # записали его в y

res = x + y
print(f'Сумма чисел {x} и {y} равна {res}')

Попробуем запустить программу. Вводим числа:

2
3

Программа напечатала

Сумма чисел 2 и 3 равна 5

Программа работает.

Несколько чисел на 1 строке

Попробуем ввести числа через пробел на одной строке. Вводим:

2 3

Программа напечатала

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '2 3'

Ошибка, потому что из строки '2 3' нельзя получить одно число.

Много чисел в одной строке читаем так:

x, y = map(int, input().split()) # читаем 2 целых числа

res = x + y
print(f'Сумма чисел {x} и {y} равна {res}')

Попробуем запустить программу. Вводим числа:

2 3

Программа напечатала

Сумма чисел 2 и 3 равна 5

Программа работает.

Арифметические операции

Для целых чисел есть операции

Выражение Результат Операция
7+2 9 сложение
7-2 5 вычитание
7*2 14 умножение
7/2 3.5 деление (математическое)
7//2 3 деление целочисленное
7%2 1 остаток от деления

Не целые числа

Температура 36.6 С, вес 53.200 кг, рост 1.69 м. Эти числа не целые. Такие числа называются float (числа с плавающей точкой).

Переводим длину из метров в сантиметры

m = float(input())
sm = m * 100
print(f'В {m} метрах {sm} сантиметров')

Если нужно прочитать несколько чисел на одной строке через пробел, то читаем так:

x, y, z = map(float, input().split())

Если в строке часть чисел целая, часть не целая, читайте их как float.

-- TatyanaDerbysheva - 19 Mar 2020

Attachment sort Action Size Date Who Comment
7poly.png manage 1.7 K 21 Mar 2020 - 18:56 TatyanaDerbysheva правильный многоугольник
spi.png manage 3.6 K 21 Mar 2020 - 18:57 TatyanaDerbysheva Спираль