Я запускаю check50 для приведенного ниже кода, однако получаю ошибку «правильный numb3rs.py проходит все проверки test_numb3rs.py» с причиной «ожидаемый код завершения 0, а не 1».Судя по поиску, я думаю, это потому, что pytest cs50 обнаруживает что-то, что я пропустил, но проблема в том, что он не говорит мне, что именно.
Я использую регулярное выражение для этой задачи и да, возможно, я мог бы сделать это более эффективно, но я все еще только учусь. Также я не уверен, проблема ли это в моем регулярном выражении или в коде test_numb3rs.
Пожалуйста, посмотрите код для numb3rs.py и test_numb3rs.py. Любая помощь приветствуется.
numb3rs.py:
import re
def main():
print(validate(input("IPv4 Address: ")))
def validate(ip):
valid = re.search(r"^([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])$", ip.strip())
if valid:
return "True"
else:
return "False"
if __name__ == "__main__":
main()
test_numb3rs.py:
from numb3rs import validate
def test_negative():
assert validate("-1.-1.-1.-1") == "False"
def test_zeros():
assert validate("0.0.0.0") == "True"
def test_single_digits():
assert validate("1.1.1.1") == "True"
assert validate("9.9.9.9") == "True"
assert validate("1.2.3.4") == "True"
assert validate("0.1.2.9") == "True"
def test_double_digits():
assert validate("10.10.10.10") == "True"
assert validate("99.99.99.99") == "True"
assert validate("10.99.50.75") == "True"
def test_triple_digits():
assert validate("100.100.100.100") == "True"
assert validate("255.255.255.255") == "True"
assert validate("100.200.254.255") == "True"
def test_combos():
assert validate("0.1.10.100") == "True"
assert validate("10.10.99.255") == "True"
assert validate("255.99.10.0") == "True"
def test_outOfRange():
assert validate("255.255.255.256") == "False"
def test_NaN():
assert validate("cat") == "False"
def test_extra_dot():
assert validate("10.10.10..10") == "False"
def test_not_a_dot():
assert validate("1.2.3,4") == "False"
def test_tooFewNums():
assert validate("100.100.100") == "False"
def test_tooManyNums():
assert validate("100.100.100.100.100") == "False"
def test_whitespace():
assert validate(" 10.10.10.10 ") == "True"
def test_validButWithInvalidLandR():
assert validate("cat100.100.100.100") == "False"
assert validate("100.100.100.100cat") == "False"
Подробнее здесь: https://stackoverflow.com/questions/791 ... pinpoint-w
Код CS50 numb3rs возвращает ошибки с помощью pytest в check50, но я не могу точно определить, что [дубликат] ⇐ Python
Программы на Python
1730973038
Anonymous
Я запускаю check50 для приведенного ниже кода, однако получаю ошибку «правильный numb3rs.py проходит все проверки test_numb3rs.py» с причиной «ожидаемый код завершения 0, а не 1».Судя по поиску, я думаю, это потому, что pytest cs50 обнаруживает что-то, что я пропустил, но проблема в том, что он не говорит мне, что именно.
Я использую регулярное выражение для этой задачи и да, возможно, я мог бы сделать это более эффективно, но я все еще только учусь. Также я не уверен, проблема ли это в моем регулярном выражении или в коде test_numb3rs.
Пожалуйста, посмотрите код для numb3rs.py и test_numb3rs.py. Любая помощь приветствуется.
numb3rs.py:
import re
def main():
print(validate(input("IPv4 Address: ")))
def validate(ip):
valid = re.search(r"^([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])$", ip.strip())
if valid:
return "True"
else:
return "False"
if __name__ == "__main__":
main()
test_numb3rs.py:
from numb3rs import validate
def test_negative():
assert validate("-1.-1.-1.-1") == "False"
def test_zeros():
assert validate("0.0.0.0") == "True"
def test_single_digits():
assert validate("1.1.1.1") == "True"
assert validate("9.9.9.9") == "True"
assert validate("1.2.3.4") == "True"
assert validate("0.1.2.9") == "True"
def test_double_digits():
assert validate("10.10.10.10") == "True"
assert validate("99.99.99.99") == "True"
assert validate("10.99.50.75") == "True"
def test_triple_digits():
assert validate("100.100.100.100") == "True"
assert validate("255.255.255.255") == "True"
assert validate("100.200.254.255") == "True"
def test_combos():
assert validate("0.1.10.100") == "True"
assert validate("10.10.99.255") == "True"
assert validate("255.99.10.0") == "True"
def test_outOfRange():
assert validate("255.255.255.256") == "False"
def test_NaN():
assert validate("cat") == "False"
def test_extra_dot():
assert validate("10.10.10..10") == "False"
def test_not_a_dot():
assert validate("1.2.3,4") == "False"
def test_tooFewNums():
assert validate("100.100.100") == "False"
def test_tooManyNums():
assert validate("100.100.100.100.100") == "False"
def test_whitespace():
assert validate(" 10.10.10.10 ") == "True"
def test_validButWithInvalidLandR():
assert validate("cat100.100.100.100") == "False"
assert validate("100.100.100.100cat") == "False"
Подробнее здесь: [url]https://stackoverflow.com/questions/79160975/cs50-numb3rs-code-returning-errors-with-pytest-in-check50-but-i-cant-pinpoint-w[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия