Различные задачи на применение циклов while и for в Python бывают как простыми, так и сложными, но все они сводятся к одному: перебор элементов, и чаще это конечно цикл for. В этой статье мы рассмотрим несколько задач, может вам пригодится, и пишите свои варианты решения!
Задача 1: Пользователь вводит с клавиатуры две границы диапазона и число. Если число не попадает в диапазон, программа просит пользователя повторно ввести число, и так до тех пор, пока он не введет число правильно. Программа отображает все числа диапазона, выделяя число восклицательными знаками. Например: 1 2 3 !4! 5 6 7.
Решений может быть несколько, одно из самых простых выглядит вот так:
a = int(input('A '))
b = int(input('B '))
while True:
c = int(input('User '))
if c >= a and c <= b:
break
for i in range(a, b+1):
if i != c:
print(i, end=' ')
if i == c:
print('!' + str(c) + '!', end=' ')
Или второй вариант, так же простой:
while True:
a = int(input('A '))
b = int(input('B '))
num = int(input('Number user '))
if num > a and num < b:
break
for i in range(a, b+1):
if i == num:
print('!'+ str(num) + '!')
continue
print(i, end=' ')
Задача 2: Написать функцию is_prime, которая принимает 1 аргумент – число от 0 до 1000, и возвращает True, если оно простое, и False – иначе. (Простое число – это натуральное число, единственными делителями которого только оно самое и единица.)
def is_prime(number):
if number < 2:
return False
for i in range(2, number):
if number % i == 0:
return False
else:
return True
number = int(input('Введите число от 1 до 1000: '))
print(is_prime(number))
Задача 3. Пользователь вводит число. Определить количество цифр в этом числе, посчитать их сумму и среднее арифметическое. Определить количество нулей в этом числе. Общение с пользователем организовать через меню.
Подсчитать количество целых чисел в диапазоне от 100 до 9999 у которых все цифры разные.
counter1 = 0
counter2 = 0
for i in range(100, 10000): # 100-999 1000-9999
if len(str(i)) == 3:
if i // 100 != i // 10 % 10 and i // 100 != i % 10 and i // 10 % 10 != i % 10:
counter1 += 1
else: # 1234
if i // 1000 != i // 100 % 10 and i // 1000 != i // 10 % 10 and i // 1000 != i % 10 and i // 100 % 10 != i // 10 % 10 and i // 100 % 10 != i % 10 and i // 10 % 10 != i % 10:
counter2 += 1
print(counter1 + counter2)