이것저것 코드/파이썬

[파이썬] 문자열 검증하기 (islower, startswith, datetime)

원-스텝 2022. 9. 8. 17:23
반응형
짧은 글 포스팅하기

짧은 글을 포스팅하는 Post 클래스를 구현합니다.
Post 클래스는 다음과 같은 속성들을 가집니다.
author : 작성자
content : 글의 내용
time : 글의 작성 시간
url : 해당 글의 위치인 url 주소

위의 Post 클래스의 속성들은 모두 특정한 조건에 해당하는 값들만이 들어 갈 수 있습니다. 그 조건은 다음과 같습니다.
author : 알파벳 소문자로만 이루어진 문자열
content : 내용의 길이는 최소 1에서 최대 20으로 제한
time : 작성한 시간의 형식은 시:분:초로 저장됩니다. 00:00:00 ~ 24:59:59 의 범위를 가집니다.
url : 일반적인 주소의 형식은 http:// 혹은 https://으로 시작하며 https://academy.elice.io와 같이 .이 2개 이상 이어야 합니다.

Tips!
datetime 패키지는 시간에 관련된 패키지입니다!
datetime.now()는 현재 시간을 연-월-일 시:분:초의 형태로 반환합니다.
datetime.now().second는 현재 시간의 초를 반환합니다.마찬가지로 year, month, day, hour, minute도 사용 가능합니다.
f"{3:02d}"는 문자열 포멧팅으로 {}안의 있는 데이터를 문자열로 반환합니다.
# 초기 코드
class Post:
    def __init__(self, author, content, time, url):
        
        # 속성들을 초기화합니다.
        self.author = ""
        self.content = ""
        self.time = ""
        self.url = ""
    
        # 아래의 코드를 수정해서 조건에 맞는 값을 author에 저장합니다.
        if None:    
            self.author = author
                
        # 아래의 코드를 수정해서 조건에 맞는 값을 content에 저장합니다.
        if None:
            self.content = content
        
        # 아래의 코드를 수정해서 조건에 맞는 값을 date에 저장합니다.
        if None:
            self.time = time
                        
        # 아래의 코드를 수정해서 조건에 맞는 값을 url에 저장합니다.
        if None:
            self.url = url

import datetime

now = datetime.datetime.now()

# 아래에 자유롭게 인스턴스를 생성하고 테스트해 보세요.
my_post = Post("me", "첫 게시글!!", f"{now.hour:02d}:{now.minute:02d}:{now.second:02d}", "https://acdemy.elice.io")

print(my_post.author)
print(my_post.content)
print(my_post.time)
print(my_post.url)
class Post:
    def __init__(self, author, content, time, url):
        
        # 속성들을 초기화합니다.
        self.author = ""
        self.content = ""
        self.time = ""
        self.url = ""
    
        # 아래의 코드를 수정해서 조건에 맞는 값을 author에 저장합니다.
        if author.islower():
            self.author = author
                
        # 아래의 코드를 수정해서 조건에 맞는 값을 content에 저장합니다.
        if len(content) <= 20 and len(content) >= 1:
            self.content = content
        
        # 아래의 코드를 수정해서 조건에 맞는 값을 date에 저장합니다.
        if time >= "00:00:00" and time <= "23:59:59":
            self.time = time
                        
        # 아래의 코드를 수정해서 조건에 맞는 값을 url에 저장합니다.
        if url.startswith(("http://", "https://")) and url.count(".") >= 2:
            self.url = url

import datetime

now = datetime.datetime.now()

# 아래에 자유롭게 인스턴스를 생성하고 테스트해 보세요.
my_post = Post("me", "첫 게시글!!", f"{now.hour:02d}:{now.minute:02d}:{now.second:02d}", "https://acdemy.elice.io")

print(my_post.author)
print(my_post.content)
print(my_post.time)
print(my_post.url)
반응형