이런 코드가 있는데요.
while True:
try:
HOST = input(float('Enter host IP: '))
except ValueError:
print('Error. That is not a valid IP address.')
continue
코드 내용은 사용자가 IP 주소를 입력하도록 합니다.
만약 문자를 사용한다면 에러가 나도록 하고 싶은데요.
왜 안될까요?
python
이렇게 해보세요.
while True:
try:
HOST = input('Enter host IP: ')
if len(HOST.split(".")) != 4:
raise ValueError
for char in HOST:
if char not in "0123456789.":
raise ValueError
except ValueError:
print('Error. That is not a valid IP address.')
continue
else:
break
그 경우에는 try except를 쓸 필요도 없을 거 같은데요.
아래와 같이 가능합니다.
import re
while True:
HOST = input("Enter IP adress: ")
if re.match(
r"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
HOST,
):
print(f"{inp} is valid IP adress")
break
else:
print("Enter valid IP adress")
© 2022 pinfo. All rights reserved.