python에서 error exception이 발생하도록 하려면?

4주 전 질문 4주 전 토론 13 views

이런 코드가 있는데요.

while True:
    try:
        HOST = input(float('Enter host IP: '))
    except ValueError:
        print('Error. That is not a valid IP address.')
        continue

 

코드 내용은 사용자가 IP 주소를 입력하도록 합니다.

만약 문자를 사용한다면 에러가 나도록 하고 싶은데요.

왜 안될까요?

python

2022-05-30 10:40

2개의 해답

이렇게 해보세요.

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


2022-05-30 10:41

그 경우에는 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-05-30 10:41

해결방법이나 팁을 알고 계신다면


© 2022 pinfo. All rights reserved.