Задачи на применение циклов while и for

Различные задачи на применение циклов 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)
Рейтинг
( 3 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: