


Python, не получается решить задачу!
1) Необходимо будет написать программу, которая будет считывать со стандартного ввода строку и выводить на стандартный вывод является ли строка “правильной”. Строка считается правильной, если в ней есть латинская буква “a” или “o”, но нет букв “i” и “e”. Строка содержит только латинские буквы в нижнем регистре.
Мой код:
while True:
word = input()
if ('a' in word and 'o' in word) and (not 'i' in word or not 'e' in word)):
print(True)
else:
print(False)
Система не принимает ответ, выдает ошибку:
"code": "RE",
"error": "Traceback (most recent call last):\n File \"/opt/client/solution/main.py\", line 2, in <module>\n word = input()\n ^^^^^^^\nEOFError: EOF when reading a line\n",
На IDLE все работает хорошо. Как правильно решить?
2) Нужно написать программу, которая будет считывать со стандартного ввода целочисленные границы промежутка (сначала левая, потом правая, каждая на отдельной строке). А дальше будет считывать целые числа со стандартного ввода пока не встретит пустую строку, которая будет означать конец ввода. Нужно будет проверить входят ли все введенные числа в промежуток, проверка включает в себя границы промежутка.
Мой код:
s = int(input())
e = int(input())
while True:
n = int(input())
if s <= n <= e:
print(True)
else:
print(False)
Ошибка:
"code": "RE",
"error": "Traceback (most recent call last):\n File \"/opt/client/solution/main.py\", line 7, in <module>\n n = int(input())\nValueError: invalid literal for int() with base 10: ''\n"
На IDLE, как всегда, все работает исправно.
Жду Ваших мыслей на этот счет
Мне кажется все немного проще делается. По крайней мере у меня работает вот так:
word = input()
if ('a' in word or 'o' in word) and ('i' not in word and 'e' not in word):
print(True)
else:
print(False)
Решили?
1) Проблема в неправильной расстановке скобок и отсутствии отступов. Используйте следующий код:
```python
while True:
word = input()
if ('a' in word or 'o' in word) and ('i' not in word and 'e' not in word):
print(True)
else:
print(False)
```
2) Проблема в том, что вы не обрабатываете ввод, ожидая пустую строку. Используйте следующий код:
```python
s = int(input())
e = int(input())
while True:
try:
n = input()
if not n:
break
n = int(n)
if s <= n <= e:
print(True)
else:
print(False)
except ValueError:
print(False)
```
Обработка исключения `ValueError` добавлена для случая, когда ввод не является целым числом.