python3을 배우는 동시에 달력 성형 문제를 해결해 봤습니다.
12643 단어 Python3
전제 조건
공부하고 있어요4
컨디션
질문
회사 동료가 나에게 알려준 문제.
인터넷에서 찾아봤는데나온다.
문제.
달력을 다음 형식으로 표시하십시오
April 2013
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
루비 연습문제인 것 같은데.
그런데 루비가 공부를 안 해서 마침 python을 독학하기 시작해서 해 봤어요.
나의 답안
처음에는 제가 배열 같은 걸 준비하고 싶었어요.
배열대로 처리하려면 1주일 주수 증감, 더 스마트하게 생각해야 한다.
결과적으로 첫날 요일과 월의 일수를 알고 나면 그 후 시작 위치를 정해 7개 단위로 줄을 바꾸면 된다
눈치챘으니까 이렇게 된 거야.
todayCalendar.pyimport calendar
import datetime
gyo = ''
span, last_day = calendar.monthrange(datetime.date.today().year, datetime.date.today().month)
print('{:^20}'.format(calendar.month_name[datetime.date.today().month] + '.' + f'{datetime.date.today().year}'))
print('')
print('Su Mo Tu We Th Fi St')
print('')
for i in range(span + 1):
gyo = gyo + ' '
for day in range(1, last_day + 1):
gyo = gyo + '{:>3}'.format(day)
if (day + span + 1) % 7 == 0:
print(gyo[1:])
print('')
gyo = ''
print(gyo[1:])
신문 헤드 부분에 논리화가 없다.
2019.09.24 추기
평론에서 많은 교수를 얻었다.
Shiracamus씨와 Konandoiiruasa씨 감사합니다.
삼행해결!
세 줄만 써도 달력이 예쁘게 나와요.import calendar
calendar.setfirstweekday(6)
print(calendar.month(2019, 9, l=2))
더 좋은 대답이라고 생각해요.
역시 3행답!비록 이렇게 말하지만, 나는 알고리즘 문제의 대답으로는 적합하지 않다고 생각한다
댓글에서 얻은 내용을 흡수하면서 다시 도전한다.
todayCalendar.pyimport calendar
import datetime
gyo = ''
today = datetime.date.today()
span, last_day = calendar.monthrange(today.year, today.month)
print(f'{today:%B.%Y}'.center(20))
print('')
print('Su Mo Tu We Th Fi St')
print('')
for i in range((span + 1) % 7):
gyo += ' '
for day in range(1, last_day + 1):
gyo += f'{day:>3}'
if (day + span + 1) % 7 == 0:
print(gyo[1:])
print('')
gyo = ''
print(gyo[1:])
paiza를 통해 확인합니다.
여기.
일요일부터 잘 대처할 수 있겠네요.
shiracamus의 대답
shiracamusimport calendar
import datetime
today = datetime.date.today()
span, last_day = calendar.monthrange(today.year, today.month)
span = (span + 1) % 7 # set the first week a day Sunday
print(f'{today:%B.%Y}'.center(20))
print()
print('Su Mo Tu We Th Fi St')
print()
line = ' ' * span
for column, day in enumerate(range(1, last_day + 1), span):
line += f'{day:>2} '
if column % 7 == 6:
print(line)
print()
line = ''
line and print(line)
전반적으로 파이톤이 자유자재로 구사되는 느낌이에요!
알려주셔서 감사합니다.
Reference
이 문제에 관하여(python3을 배우는 동시에 달력 성형 문제를 해결해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lazyK/items/561591050cf992e2f52b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import calendar
import datetime
gyo = ''
span, last_day = calendar.monthrange(datetime.date.today().year, datetime.date.today().month)
print('{:^20}'.format(calendar.month_name[datetime.date.today().month] + '.' + f'{datetime.date.today().year}'))
print('')
print('Su Mo Tu We Th Fi St')
print('')
for i in range(span + 1):
gyo = gyo + ' '
for day in range(1, last_day + 1):
gyo = gyo + '{:>3}'.format(day)
if (day + span + 1) % 7 == 0:
print(gyo[1:])
print('')
gyo = ''
print(gyo[1:])
평론에서 많은 교수를 얻었다.
Shiracamus씨와 Konandoiiruasa씨 감사합니다.
삼행해결!
세 줄만 써도 달력이 예쁘게 나와요.
import calendar
calendar.setfirstweekday(6)
print(calendar.month(2019, 9, l=2))
더 좋은 대답이라고 생각해요.
역시 3행답!비록 이렇게 말하지만, 나는 알고리즘 문제의 대답으로는 적합하지 않다고 생각한다
댓글에서 얻은 내용을 흡수하면서 다시 도전한다.
todayCalendar.py
import calendar
import datetime
gyo = ''
today = datetime.date.today()
span, last_day = calendar.monthrange(today.year, today.month)
print(f'{today:%B.%Y}'.center(20))
print('')
print('Su Mo Tu We Th Fi St')
print('')
for i in range((span + 1) % 7):
gyo += ' '
for day in range(1, last_day + 1):
gyo += f'{day:>3}'
if (day + span + 1) % 7 == 0:
print(gyo[1:])
print('')
gyo = ''
print(gyo[1:])
paiza를 통해 확인합니다.여기.
일요일부터 잘 대처할 수 있겠네요.
shiracamus의 대답
shiracamus
import calendar
import datetime
today = datetime.date.today()
span, last_day = calendar.monthrange(today.year, today.month)
span = (span + 1) % 7 # set the first week a day Sunday
print(f'{today:%B.%Y}'.center(20))
print()
print('Su Mo Tu We Th Fi St')
print()
line = ' ' * span
for column, day in enumerate(range(1, last_day + 1), span):
line += f'{day:>2} '
if column % 7 == 6:
print(line)
print()
line = ''
line and print(line)
전반적으로 파이톤이 자유자재로 구사되는 느낌이에요!알려주셔서 감사합니다.
Reference
이 문제에 관하여(python3을 배우는 동시에 달력 성형 문제를 해결해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lazyK/items/561591050cf992e2f52b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)