파이썬 기초 - 나눔코딩

willy·2022년 1월 4일
0

입문 강의를 끝내고 파이썬 6시간 기초 강의를 한번 더 들었다.
vsc에서 파이썬을 실행하는 법부터 시작하니 훨씬 편했다.

자동 완성만 해줘도, 더 많은 시간을 밀도있게 보낼 수 있기 때문이다.

아무튼 이번 시간에는 파이썬을 이용한 문제 풀이도 진행했다.

기초 문법

이번 시간에는 print를 통해 뱐수를 할당해 출력하는 법을 복습했다.


강아지 소개
animal = '강아지'
name = '똘이'
age = 7
hobby = '공놀이'
is_adult = age >= 6

print('우리집 ' +animal+ ' 이름은 '+name+'에요')
print(name, '는 ', age, '살이며,',hobby, '를 아주 좋아합니다')
print(name + '는 어른일까요? '+ str(is_adult))
print(name, '는 어른일까요? ',is_adult)

>>> 

다음은 변수 할당을 통한 문제 풀이다

문제1. 변수를 이용하여 다음 문장을 출력하시오
변수명 :station
변수값 : 사당, 신도림, 인천공항
출력문장 : Xx행 열차가 들어오고 있습니다.

일일이 손으로 치는게 귀찮아서 반복문을 통해 추가적으로 더 만들었다.

문제2

풀이

우선 조건에 맞춰서 가능한 일자만 range로 뽑아 리스트로 만들었다.
이후 리스트에서 랜덤 초이스로 하루를 뽑게 만들었고 day로 할당했다
이후 str을 씌워주며 print에서 반응할 수 있도록 구성했다.

추가

# 슬라이스는 대괄호를 사용한다 []
jumin = "970102-1234567"

print("연 : " + jumin[0:2]) 
print("월 : " + jumin[2:4])
print("일 : " + jumin[4:6])
print("생년월일 : " + jumin[:6])

해당 유튜브를 통해 공부를 하다보니 새로운 포맷팅 형식에 대해서도 알 수 있었다.
기존 포맷팅 방법

# 직접 대입하기
s1 = 'name : {0}'.format('BlockDMask')
print(s1)
 
 
# 변수로 대입 하기
age = 55
s2 = 'age : {0}'.format(age)
print(s2)
 
# 이름으로 대입하기
s3 = 'number : {num}, gender : {gen}'.format(num=1234, gen='남')
print(s3)

그러나 3.6버전 이상부터는 아래와 같은 방법으로 포맷팅이 가능하다고 한다. 앞에 f를 붙여주는 것으로 끝이다.

새로운 포맷팅
# f를 넣어주는 것만으로 .format()을 대체할 수 있다. 
age = 20
name = 'young'

print(f"저는 {age}살이고, 이름은 {name} 입니다.")

문제 3

해당 방식을 풀기 위해 split과 replace를 사용했다. 이 과정에서 split 대신 슬라이스를 활용할 수도 있다고 하는데, 슬라이스를 사용할 경우 .이 두개 들어있는 경우는 대처하기 어렵다고 판단했다.

그런데 조금 생각해보니 처음으로 만나는 . 을 기준으로 생각하면 슬라이스가 더 간단하다는 생각도 할 수 있었다. 풀이 과정은 아래와 같다.

#원하는 사이트 기입하기 print(site) 
site = 'http://youtube.com'

#스플릿을 통해.이전에 있는 객체만 선택하기 선택)
split = site.split('.')[0]

#리플레이스를 통해 앞에 http:를 공백으로 지워주기
delete = split.replace('http://','')

#순차적으로 변수 선언, Str을 붙여 Int 값 변경해주기
first = delete[0:3]
second = str(len(delete))
thrid = str(site.count("e"))
forth = '!'

# 변수들을 순차적으로 배치하면 완성
passward = first+second+thrid+forth
print(passward)
print(f"{site}의 비밀번호는 {passward}입니다.")

>>>
you71!
http://youtube.com의 비밀번호는 you71!입니다.

다른 풀이에선 스플릿 대신 아래와 같은 코드로 해결했다.

# # 다른 풀이 / 슬라이스를 통해 split 을 대체했다.
# site = 'http://youtube.com'
# mystr = site.replace('http://','')
# mystr = mystr[:mystr.index(".")]
# print(mystr)

유튜브, 네이버, 구글, 야후를 넣어보니 다음과 같은 비밀번호을 얻을 수 있었다.

profile
같은 문제에 헤매지 않기 위해 기록합니다.

0개의 댓글