Содержание:
Цикл WHILE
Цикл while — цикл с предусловием. Как правило данный цикл применяется, когда не известно сколько должно быть итераций цикла. Пример использования:
i = 5 while i < 15: print(i) i = i + 2 # вывод 5 7 9 11 13
i = 0 while i < 100: i += 1 print(i) # 100 |
Комментарии в Python
Однострочный комментарий начинается с #
.
Блочный комментарий можно использовать так (строго говоря, блочного комментария нет в Питоне):
#Однострочные Питон комментарии # Это # блочный или многострочный # комментарий |
'''
тоже блочный
комментарий
''' |
Операторы break и continue
Оператор break — выход из цикла
Оператор continue — выход из текущей итерации цикла
a=0 while a!=10: a=a+1 if a==5: continue print (a) if a==7: break print ("всё!") |
Случайное число
В Python случайное число задается с помощью двух функций:
- random() – случайное вещественное из полуинтервала [0,1) ;
- randint(a,b) – случайное целое из отрезка [a,b].
Но для использования функция необходимо предварительно подключить библиотеку:
# подключение библиотеки: from random import randint # получение целого случайного числа в диапазоне от 1 до 10 x = randint(1,11) # получение вещественного случайного числа в полуинтервале от 5 до 11 from random import random x = 6*random() + 5 |
random
). Пользователю предлагается угадать число. Если пользователь не угадывает, то ему предлагается угадать число снова и выдается подсказка, что число больше или меньше введенного. Так бесконечно, пока пользователь не введет слово exit. Бесконечный цикл организовать через while True:
.✍ Решение:
import random number = random.randint(0, 100) while True: answer = input('Угадай число: ') if answer == "" or answer == "exit": print("Выход из программы") break if not answer.isdigit(): print("Введи правильное число") continue answer = int(answer) if answer == number: print('Верно!') break elif answer > number: print('Загаданное число больше') else: print('Загаданное число меньше') |
else
в комбинации с break
После цикла можно использовать блок else:
, который будет выполнен один раз после окончания цикла, когда условие цикла станет неверно. Данный блок целесообразно использовать в сочетании с оператором break
. Так, если выполняется инструкция break
, то блок else
уже не выполнится. Рассмотрим пример:
n
.
Пример вывода:
введите искомое число >>5 1 2 3 4 5 Встретилось число 5
введите искомое число >>5 1 2 3 0 Число не встретилось
✍ Решение:
n=int(input('введите искомое число')) a = int(input()) while a != 0: if a == n: print('Встретилось число', n) break a = int(input()) else: print('Число не встретилось') |
Пример вывода:
Введите числа: -5 7 8 -2 0 сумма положительных: 15, сумма отрицательных: -7
Пример вывода:
Введите числа: 5 7 8 22 9 12 15 0 2 3 результат: 2
0
. Есть ли среди чисел четное число? Использовать блок else
в комбинации с инструкцией break
.
Пример вывода:
Введите числа: 1 3 5 0 результат: четных нет
Введите числа: 1 3 5 6 результат: четное число 6
Цикл FOR
В Python цикл for имеет такой синтаксис:
Пример:
for i in range(3): print(i) # 0 # 1 # 2 |
Пример с двумя параметрами:
for i in range(5, 8): print(i) # 5 # 6 # 7 |
Вывести степени двойки с 1-й по 10-ю.
✍ Решение:
for x in range(1,11): print ( 2**x ) # 2 4 8 16 ... 1024 |
Шаг счетчика цикла можно менять:
for x in range(1,11,2): print ( 2**x ) |
Отрицательный шаг:
for i in range(10, 7, -1): print(i) # 10 # 9 # 8 |
for i in 'hello world': if i == 'o': continue print(i, end='') # hell wrld |
Пример использования break:
for i in 'hello world': if i == 'l': break print(i, end='') # he |
greetings = ["Good day", "hi","hello"] for i in range(len(greetings)): print(i,greetings[i]) # 0 Good day # 1 hi # 2 hello |
Пример работы с break
и else
(даны 10 чисел; определить, есть ли среди них введенное число):
n = int(input('введите число, которое нужно найти')) for i in range(10): numb = int(input()) if numb == n: print('Встретилось число', n) break else: print('число не встретилось') |
Циклы с условием (короткие запросы)
Рассмотрим две реализации одних и тех же заданий.
Пример вывода:
список: [1, 4, 6, 2, 10, 15, 20] [2, 8, 12, 4, 20, 30, 40]
✍ Решение:
-
Обычное решение:
1 2 3 4 5 | numbers = [1, 4, 6, 2, 10, 15, 20] for i in numbers: print(i*2) # 2 8 12 4 20 30 40 |
С помощью запроса:
1 2 3 | numbers = [1, 4, 6, 2, 10, 15, 20] print([i*2 for i in numbers]) # [2, 8, 12, 4, 20, 30, 40] |
Пример вывода:
варианты блюд для завтрака: яйцо, брокколи, бутерброд, чипсы, торт здоровая пища: яйцо, каша, омлет, брокколи Хороший завтрак: яйцо, брокколи
✍ Решение:
Обычное решение | ||
|
||
Короткий запрос | ||
|
Или с созданием нового списка:
Обычное решение | ||
|
||
Короткий запрос | ||
|
а кто-то знает как без работы со списками решить первое задание 2_3 – перебор и сравнение 10 числе?
АДмин, проверь нумерацию заданий
здесь имеется в виду, вводим каждое число в цикле. БЕЗ использования списков
я нашел решение чуть позже
оно есть 😉
Не подскажите, кто автор уроков? Хочу попросить у него решения к заданиям по урокам Python. Так как не всегда понятно, как делать и свериться после выполнения бывает полезно.
напишите на e-mail, внизу сайта написан
А можно ли попросить решения к заданиям по урокам Python. Часто решаю задачки офлайн, хочется иногда проверить правильность решения
Здравствуйте, подскажите, пожалуйста, я новичок в языке python. Я сделала программу, не могу понять в чем проблема, делаю по Вашему примеру. Пишет ошибка:
a = 1
answer = input («Введите число: «)
while a != answer :
a=a+1
if a == answer — 1 :
continue
print (a)
if a== answer :
break
print («Всё!»)
b = input («Введите первое число: «)
c = input («Введите второе число: «)
while b != c :
b=b+1
if b == c-1 :
print (b)
if b == c :
break
c=c-1
if c == b+1 :
print (c)
if c == b :
break
Также мне нужно те же программы с for
Доброе утро. Я очень извиняюсь, но устала смотреть на мучения ребёнка (это Сириус Питон, решил все задачи, а эта уже неделю не даётся). Помогите решить задачу, просто намекните, что у него в коде не так. УСЛОВИЕ: Даны целые неотрицательные числа a, b, c, d, при этом 0≤c<d. Выведите в порядке возрастания все числа от a до b, которые дают остаток c при делении на d.
В этой задаче нельзя использовать инструкцию if, операторы сравнения (< и т.д.), должен быть только один цикл.
Входные данные
На вход подаются четыре строки, в каждой из которых написано по одному неотрицательному целому числу — a, b, c, d. Все числа не превосходят 2∗109, 0≤c<d.
несколько его решений:
1)
a, b, c, d = int(input()), int(input()), int(input()), int(input())
res = ''
for i in range(a, b + 1):
if i % d == c:
res += str(i) + ' '
print(res)
2)
a, b, c, d = int(input()), int(input()), int(input()), int(input())
res = ''
for i in range(a, b + 1):
res += str(i) * (i % d == c) + ' '
print(res.rstrip())
3)
a = int(input())
b = int(input())
c = int(input())
d = int(input())
lst = [i for i in range(a, b + 1)]
print(*list(filter(lambda x: x % d == c, lst)))
у вас имеются пару ошибок
1
elif answer < number:
print('Загаданное число больше')
else:
print('Загаданное число меньше')
здесь перепутано "меньше" и "больше"
2.for i in range(3):
print(i)
# 1
# 2
# 3
Здесь вывод роги будет
0
1
2
Спасибо! исправлено)
Мой вариант на поиск чисел Армстронга, правда, вродь некоторых нехватает… или мне кажется
for nbr in range(100, 9999):
n = nbr
arr = []
while (n % 10 != 0):
arr.append(n % 10) # создаёт массив цифр из числа
n = int(n / 10)
arr = arr[::-1] # делает реверс массива arr
for f in range (1,9): # цикл для наращивания степени чисел
sum = 0
for i in range(len(arr)): #цикл суммирование отдельно каждого числа в одинаковой степени
sum += int(arr[i])**f
if sum == nbr:
print(«This is Armstrong number, number is: %s» %nbr)
break
отступы не отразились тут, но думаю главное логика… не судите строго, только учусь)