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

Циклы

Пример 1. Прочитаем числа и распечатаем их

На строке даны числа через пробел. Напечатать все числа по одному числу на строку.

a = map(int, input().split())    # прочитали 1 строку, разбили ее на слова, из слов получили числа, записали их в a
for x in a:                      # для каждого элемента из a
    print(x)                     # напечатать этот элемент

x и a - переменные. Им можно дать другие имена.

Input Output
3 46 -2 18

3
46
-2
18

Задача 1. Положительные числа

Даны числа. Напечатать только положительные числа.

Input Output
3 46 -2 18

3
46
18

Задача 2. От -10 до 10

Даны числа. Напечатать только числа от -10 до 10.

Input Output
3 46 -2 18

3
-2

Задача 3. Сумма чисел

Даны числа. Найти их сумму.

Input Output
3 46 -2 18 65

Задача 4. Сумма отрицательных чисел

Даны числа. Найти сумму отрицательных чисел.

Input Output
-3 46 -2 18 -5

Задача 5. Сколько отрицательных чисел

Даны числа. Сколько из них отрицательных чисел?

Input Output
-3 46 -2 -18 3

Задача 6. Максимум

Даны числа. Найти самое большое число.

Input Output
-3 46 -2 18 46

Задача 7. Минимум

Даны числа. Найти самое маленькое число.

Input Output
-3 46 -2 18 -3

IDEA! Переменной можно присвоить None (ничего) значение.

x = None
if x is None:
    print("В х нет числа")

x = 5
if x is not None:
    print("х не None")

Пример 2. Есть число 5?

Даны числа. Есть ли в них число 5?

a = map(int, input().split())    # прочитали строку, разделили на слова, сделали из них числа и сохранили в а
for x in a:                      # для каждого х в этих числах
    if x == 5:                   # если x = 5
        print("Есть число 5")    # печатаем (один раз!)
        break                    # выходим из цикла (чтобы не печатать много раз)
    print(x)                     # печатаем каждый раз число х
else:                            # ТОЛЬКО если break не работал
    print("Нет числа 5")
                                 # конец цикла
                                 # сюда выйдет break

Задача 8. Капитан Флинт (целые числа)

Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "0 5", где первое число – одно из 0 (North, север), 2 (Sout, юг), 1 (East, восток), 3 (West, запад), а второе число – количество шагов, необходимое пройти в этом направлении.

Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось OX направлена на восток, ось OY – на север.

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

Путь 5 шагов на север, 3 шага на восток, 1 шаг на юг мы запишем как:

0 5
1 3
2 1
Treasure!

Вход Выход
0 5
1 3
2 1
Treasure!
3 4

x = 0
y = 0
while True :
  # прочитали одну строку в line
  line = input()            
  
  # если Treasure! надо напечатать координаты и остановиться 
  if line == 'Treasure!' :      
    print(x, y)
    break
   
  # line разбили на части и каждую часть сделали int   
  direction, d = map(int, line.split())
   
  if direction == 0 :     # север
    y = y + d
  # тут нужно дописать решение для юг, восток, запад

Пример 3. Напечатать строку по символам

Можно в цикле по символам напечатать стоку:

s = input()      # прочитать строку
for x in s:      # для каждого символа в строке s
    print(x)     # напечатать этот символ

Input Output
Hello

H
e
l
l
o

Задача 9

Дана строка. Сколько раз в строке встретилась буква z?

Input Output
azzzbz 4
z 1
Hello
ZZZ

Задача 10 (не обязательно). Скобки for_14

Дана строка из скобок. Напечатать YES, если это правильная скобочная последовательность. Иначе напечатать NO.

Input Output
()() YES
(()()) YES
((())) YES
(() NO
()) NO
)( NO

Задача 11. for_60

Задача 12. for_8

for i in range(4):
    print('*', end='') # end='' - не делать новую строку

Задача 13. for_9

Задача 14. for_91

-- TatyanaDerbysheva - 13 Oct 2017