Найти - Пользователи
Полная версия: Помогите с задачей базового Python от VC
Начало » Центр помощи » Помогите с задачей базового Python от VC
1
an_zor
Задача:
Нужно написать программу, которая будет считывать со стандартного ввода целочисленные границы промежутка (сначала левая, потом правая, каждая на отдельной строке). А дальше будет считывать целые числа со стандартного ввода пока не встретит пустую строку, которая будет означать конец ввода. Нужно будет проверить входят ли все введенные числа в промежуток, проверка включает в себя границы промежутка.

Написал так:
data1 = input()
data2 = input()
data3 = input()
while data3 !=“”:
if int(data1) <= int(data3) <= int(data2):
print (“True”)
else:
print (“False”)
data3 = input()

При работе программы
1 - ввод начала интервала
10 - ввод конца интервала
2 - ввод любого числа
True - попал в интервал
3 - ввод любого числа
True - попал в интервал
4 - ввод любого числа
True - попал в интервал
11 - ввод любого числа
False - не попал в интервал


Но по условию надо вводить несколько цифр до ввода пустой строки и только после проверять попадание в интервал.

Т.е. должно быть так
1 - ввод начала интервала
10 - ввод конца интервала
2 - ввод любого числа
3 - ввод любого числа
4 - ввод любого числа
11 - ввод любого числа

False - одно число не в интервале или True - если не вводить 11.
ZerG
 dip_start = int(input("Insert start range value: "))
dip_end = int(input("Insert end range value: "))
cycle = True
while cycle:
    val = input("Insert value(blank for exit)")
    if val:
        try:
            if dip_start <= int(val) <= dip_end:
                print(f"The {val} in range {dip_start}-{dip_end}")
            else:
                print(f"The {val} OUT of range {dip_start}-{dip_end}")
        except ValueError:
            print("The value must be only int")
    else:
        print("goodby")
        cycle = False


 Insert start range value: 5
Insert end range value: 10
Insert value(blank for exit)5
The 5 in range 5-10
Insert value(blank for exit)8
The 8 in range 5-10
Insert value(blank for exit)1
The 1 OUT of range 5-10
Insert value(blank for exit)11
The 11 OUT of range 5-10
Insert value(blank for exit)sdf
The value must be only int
Insert value(blank for exit)
goodby
an_zor
Спасибо, но тут как и у меня вывод попадания в интервал после каждого ввода. А нужно давать ввести несколько значений и после проверить их все на попадание в интервал и дать один ответ True или False.

Например:
1
10
1
2
3
4

и после пустой строки один ответ True, т.к. 1,2,3,4 в интервале 1-10

или для

1
10
1
2
3
20

и после пустой строки один ответ False, т.к. 20 не в интервале 1-10
ZerG
Так а в чем проблема то?
Добавь список и сделай проверку по нему после ввода
Я же специально расписал тебе каждую строку что бы ход выполнения был понятен

 dip_start = int(input("Insert start range value: "))
dip_end = int(input("Insert end range value: "))
cycle = True
numbers = []
while cycle:
    val = input("Insert value(blank for exit)")
    if val:
        try:
            numbers.append(int(val))
        except ValueError:
            print("The value must be only int")
    else:
        cycle = False
result = True
for number in numbers:
    if not dip_start <= number <= dip_end:
        result = False
print(result)

По хорошему это надо бы обернуть в функцию но это уже сам
Нужно хотябы немного головой работать

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB