- Для обозначения поля шахматной доски используют два символа: первый - латинские буквы a, b, c, d, e, f, g, h; второй - цифры от 1 до 8. Напишите функцию is_chess(s), которая проверяет, что строка s содержит два символа, обозначающие поле шахматной доски. Функция должна возвращать True, если это так, и False в другом случае.
- Записью IP-адреса (IPv4) является строка в виде четырёх чисел со значением от 0 до 255, разделённых точками. Напишите функцию is_ip(s), которая проверяет, что строка s может являться IP-адресом. Функция должна возвращать True, если это так, и False в другом случае.
Python
Помогите с заданиями в питоне и желательно с объяснением
1) Вот пример кода, который проверяет, соответствует ли строка s формату поля шахматной доски:
Затем мы проверяем, что первый символ находится в списке допустимых символов abcdefgh, а второй символ - в списке допустимых символов 12345678. Если какой-то из символов не соответствует этим критериям, функция возвращает False.
Наконец, если строка прошла обе проверки, функция возвращает True.
Примеры использования функции:
def is_chess(s):
if len(s) != 2:
return False
if s[0] not in 'abcdefgh':
return False
if s[1] not in '12345678':
return False
return True
В этой функции мы сначала проверяем, что строка состоит ровно из двух символов. Если это не так, функция возвращает False. Затем мы проверяем, что первый символ находится в списке допустимых символов abcdefgh, а второй символ - в списке допустимых символов 12345678. Если какой-то из символов не соответствует этим критериям, функция возвращает False.
Наконец, если строка прошла обе проверки, функция возвращает True.
Примеры использования функции:
>>> is_chess('a1')
True
>>> is_chess('h8')
True
>>> is_chess('a9')
False
>>> is_chess('i1')
False
>>> is_chess('11')
False
2) def is_ip(s):
try:
parts = s.split('.')
if len(parts) != 4:
return False
for p in parts:
if not 0 > is_ip('192.168.0.1')
True
>>> is_ip('255.255.255.255')
True
>>> is_ip('0.0.0.0')
True
>>> is_ip('256.0.0.1')
False
>>> is_ip('192.168.0')
False
>>> is_ip('192.168.0.1.2')
False
>>> is_ip('192.168.0.a')
False
1.
def is_chess(s):
count = 0
for dig in s:
if dig in ('a','b','c,','d','e','f'):
count += 1
elif int(dig) in range(1, 9):
count += 1
if count == 2:
return True
else:
return False
print(is_chess('f7'))
2. def is_ip(s: str):
ip = s.split('.')
count = 0
for dig in ip:
if int(dig) in range(256):
count += 1
if count == 4:
return True
else:
return False
print(is_ip('1.2.3.4'))
Тут и так вроде всё понятно. Если что пояснить - в комменты
Сергей Ложников
Во втором у меня почему то выдаётся такая ошибка: ValueError: invalid literal for int() with base 10: '' on line 5
Сергей Ложников
понял
100 рублей.
Похожие вопросы
- Помогите написать антивирус на питоне.
- Объясните логику задания на питоне
- Помогите решить задачу на питон!!
- ПОЖАЛУЙСТА, ПОМОГИТЕ, С ЭТОЙ ЗАДАЧЕЙ. ПИТОН.
- Помогите решить задачу в питоне, пожалуйста.
- Помогите решить задачу на питоне. пожалуйста.
- Помогите решить задачу на Питоне
- Помогите исправить код на питоне я постоянно проигрываю в камень ножницы бумага и игра не идёт до трех побед
- Помогите пожалуйста с задачей Питон
- Помогите написать код на питоне