Различные задачи на применение циклов 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)