ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [내일배움캠프] 11/8 화요일 TIL 회고록
    카테고리 없음 2022. 11. 8. 22:39

    오늘은 팀 변경이 있어서 매우 떨리고 설렜다. 신기하게도 난 또 10조가 걸렸다.

    9시가 됐는데 한분이 안와서 기다리고 있었는데 매니저님이 오셔서 전화를 해주신다고 하셔서 기다렸다.

    몇분 뒤 다시 매니저님이 오셔서 전화기가 꺼져있다고 해서 그냥 4명이서 진행했다.

    팀원 중 한명은 10월 말 사전캠프때 같은 팀이었던 분이어서 굉장히 반가웠다 ㅋㅋㅋ

    각자 TMI를 하는데 다 전공자 아니면 개발 직군에서 일을 해보셨던 분들이셔서 되게 놀랐고 신기했다.

    팀장은 사다리타기로 정했는데 내가 걸렸다.. ㅠㅠ 잘 할수 있을지.. 모르겠다. 열심히 해봐야지.

     

    오늘은 공유해주신 시간표대로 파이썬 문법 기초 1주차를 들었다.

     

    1-0, 1-1, 1-2 필수 프로그램 설치, 파이썬 기초 문법 뽀개기, 파이썬 시작하기

    파이썬, 파이참 설치, 파이참 새 프로젝트 만들기를 했다.

     

    1-3 변수 선언과 자료형

    a= 5  숫자형

    a= '5'  문자형

    x = True   # 참
    y = False  # 거짓
    
    # 소문자로 쓰면 자료형으로 인식하지 않고 변수명이라 생각해 에러가 납니다~
    z = true   # name 'true' is not defined
    
    True = 1   # True/False는 변수명으로 쓸 수 없어요!

    1-4 문자열 다루기

     

    a= "3"  문자형

    a + 5 문자형 + 숫자형은 더할 수 없다.

    a = "3"
    a + 5    # 문자열과 숫자형은 더할 수 없어서 에러!

    문자열의 길이는 len() 함수를 써서 구할 수 있다.

    print(len("abcde"))           # 5

    인덱싱, 슬라이싱

    f="abcdefghijklmnopqrstuvwxyz"
    f[1]   # b 파이썬은 숫자를 0부터 셉니다

    슬라이싱

    f[4:15]  # efghijklmno           f[4]부터 f[15] 전까지, 총 15-4=11개!
    
    f[8:]    # ijklmnopqrstuvwxyz    f[8]부터 끝까지, 앞의 8개 빼고!
    f[:7]    # abcdefg               시작부터 f[7] 전까지, 앞의 7개!
    
    f[:]     # abcdefghijklmnopqrstuvwxyz  처음부터 끝까지

    특정 문자열로 자르고 싶을때 split('문자열')을 사용한다.

     

    퀴즈1 문자열의 앞의 반만 출력하기. sparta 앞의 세글자인 spa 만 출력하기

    먼저 name과 result , 출력하기 위한 print(result) 를 만들었다.

    spa 만 출력해야하니 .split('문자열') 을 사용하여 잘라보았다.

    name= 'sparta'
    
    result = name.split('r')
    
    print(result)

    실행하면 잘 잘라졌다. 0번째 문자열이 spa고 첫번째 문자열이 ta 니 0번째 문자열을 가져온다.

    split('r') 뒤에 [0] 을 붙여줬다.

    name= 'sparta'
    
    result = name.split('r')[0]
    
    print(result)

    실행 결과

    근데 강의에서는 이렇게 풀었다. 상관 없겠지..??

    text = "sparta"
    print(text[:3])

     

    두번째 문제. 전화번호의 지역번호 출력하기  phone = "02-123-1234"

    지역번호 02만 출력해야하니 .split('문자열')로 자르면 될 것 같다,

    phone ="02-123-1234"
    
    result = phone.split('-')
    
    print(result)

    실행 결과

    0번째 문자열 02, 두번쨰 문자열 123, 세번째 문자열 1234니 0번째 문자열을 가져온다.

    phone ="02-123-1234"
    
    result = phone.split('-')[0]
    
    print(result)

    실행 결과

    1-5 리스트와 딕셔너리

    리스트: 순서가 중요하게 값을 담는 코드 (ex: 0번째는 ... 1번째는 ... 2번째는 ...)

    딕셔너라: key:value로 값을 담는 방법에 대한 자료형

     

    1. 리스트

    a_list = ['사과','배','감'] 
    print(a_list[0]) # a_list 중에 0번째만 출력해라

    리스트는 리스트 안에 또 리스트를 만들 수 있다.

    a_list = [2,'배',False,['사과','감']]

    추가로 만들어진 리스트를 출력하고 싶으면 3번째 값이니까 print(a_list[3]) 으로 출력하면 된다.

    print(a_list[3]) # a_list 중에 3번째 값을 출력해라

    a_list에서 사과만 가져오고 싶으면 3번째 리스트에 0번을 가져오면 된다.

    a_list = [2,'배',False,['사과','감']]
    print(a_list[3][0]) # a_list 중에 3번째에 0번째 값을 출력해라

    실행 결과

    해당 코드를 이용하면 리스트에 추가 할 수 있다.

    a_list.append()

    a_list.sort() :   a_list 를 정렬해서 출력 해 준다

    a_list = [1,5,6,3,2]
    
    a_list.sort() # a_list를 정렬해서 출력 해 준다.
    
    print(a_list)

    a_list.sort(reverse = True) a_list를 내림차 순으로 정렬 해 준다.

    나중에 알고리즘을 풀 때 나올 수 있으니 꼭 외워두기!

    a_list = [1,5,6,3,2]
    
    a_list.sort(reverse=True) # a_list를 내림차 순으로 정렬 해 준다.
    
    print(a_list)

    a_list 에 값이 있는지 없는지 확인 해 주는 함수

    a_list = [1,5,6,3,2]
    
    result = (값 in a_list) # 값이 a_list 에 있으면 True, 없으면 False
    
    print(result)

     

    딕셔너리 퀴즈 : name: smith 의 science 값만 출력하기

     

    먼저 people에서 smith 값만 가지고 와야하니 people[2] 를 해준다. (0번째: bob, 첫번째: carry 두번쨰: smith )

    result = people[2]

    값을 가져 왔으면 이제 science 값을 가져와야하니 먼저 score 값을 가져온다.

    result = people[2]['score']

    이제 여기서 science 값만 가져오면 끝!

    result = people[2]['score']['science']

    전체 코드

    people = [
        {'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
        {'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
        {'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
        {'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
    ]
    
    result = people[2]['score']['science']
    print(result)

    1-6 조건문

    들여쓰기가 굉장히 중요하다. 

    money =3000 
    
    if money > 3800: # money가 3800보다 크면 
        print('택시를 타자')
    else: # money가 3800보다 작으면 
        print('택시를 타지 말자')

    elif문

    처음 보는 함수인데 별로 그렇게 자주 쓰이진 않을 것 같다.

    money =1000
    
    if money > 3800: # money가 3800보다 크면
        print('택시를 타자')
    elif money > 1200: # money가 3800보단 작은데 1200보단 크면
        print("버스를 타자!")
    else: # money가 1200보다 작으면
        print('걸어가자!')

    1-7 반복문

    enumerate 문과 break 문 

    for i, person in enumerate(people): # enumerate 문은 요소의 순서를 적어주는 함수 for문 옆에 i가 숫자가 됨
        name = person['name']
        age= person['age']
        print(i,name,age) # i 도 같이 출력되게 함.
        if i > 2: # 만약 i가 2보다 크면
            break # break: 종료문 , 멈춘다.

    1-8 반복문 연습문제.

     

    1. 짝수만 출력하기

    num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
    
    for num in num_list: # for문 (반복문)
        if num % 2 == 0 :  # 만약 num을 2로 나눈 수의 나머지가 0이면
            print(num) #num 출력
    

    2. 짝수의 개수를 출력하기

    num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
    
    result = 0 # 숫자 0을 result 로 선언
    
    for num in num_list:  # for문 (반복문)
        if num % 2 == 0:  # 만약 num을 2로 나눈 수의 나머지가 0이면
            result += 1 # result에 1을 더한다.
    
    print(result)  # result 출력

    처음에 혼자 만들어 봤을때

    이런식으로 나와서 한참 헤맸는데 알고보니 그냥 들여쓰기를 해서 그랬던 거였다.

    보면 print(result)가 for문에 들어가있다. 들어가 있으면 안된다.

    이래서 들여쓰기가 참 중요하구나..를 알게됐다 ㅋㅋㅋ..

    3. 리스트 안에 있는 모든 숫자 더하기

    이건 금방 풀었다.

    num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
    
    result = 0 # 숫자 0을 result 로 선언
    
    for num in num_list:  # for문 (반복문)
        result = result +num # result에 num 을 더한 값을 result 로 반복해서 넣어줌
    
    
    print(result)  # result 출력

    4. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기

     

    num 이 1이고 maxNum이 0이니까  num이 maxNum보다 크니까 maxNum이 1이되고 다시 for문에 의해 계속 돈다

    maxNum이 6이되고 num이 6이될때  num 이 크지 않고

    똑같아지니까 for문 종료,  maxNum이 6이니까 print(maxNum) = 6 출력

    num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
    
    maxNum= 0 # maxNum= 0으로 선언
    
    for num in num_list:  # for문 (반복문)
        if num > maxNum: # num이 maxNum 보다 크면
            maxNum = num # maxNum과 num 이 같으면
    
    print(maxNum) # maxNum 출력

    1-9 함수

    이건 처음 배우는거라 몇번 더 연습해야 할 것같다.. 점점 어려워진다 ㅠㅠ

    def bus_rate(age):
        if age > 65 : # 만약 age가 65보다 크면 0 출력
            return 0
        elif age >20: # 만약 age가 20보다 크면 0 출력
            return 1200
        else:        # age가 65보다 작고 20보다 작으면 750 출력
            return 750
    
    myrate = bus_rate(15) #bus_rate(숫자)를 myrate로 선언
    print(myrate) # return 해서 나온 값을 myrate에 저장 후 출력

    1-9 함수 퀴즈 :  주만등록번호를 입력받아 성별을 출력하는 함수 만들기

     

    문제 샘플

    def check_gender(pin):
      print('')
    
    
    check_gender('150101-1012345')
    check_gender('150101-2012345')
    check_gender('150101-5012345')

    먼저 성별 구별은 주민등록번호 뒷자리 첫번째 숫자가 홀수면 남자, 짝수면 여자이다.

    그러므로 '150101'-'1012345' 에서 .split('-') 으로 -를 자른 후 또 여기서 앞자리 1만 가져오면 된다.

     

    가져올 숫자를 저장할 변수를 gender라 선언하고 뒷자리 첫번째 문자를 가져온다

    gender = pin.split('-')[1][0]

    실행 결과

    앞자리를 잘 빼왔으니 이제 나누기 2를 해서 나머지가 0이면 여성, 1이면 남성이라고 출력을 하면 된다.

    근데 중요한건 빼온 1은 숫자 1이 아니라 문자열 1이다.('150101-1012345' 에서 빼와서 실제 빼온 값은 '1'이다.)

    문자열을 숫자로 바꾸려면 int() 함수를 쓰면 된다. 

    if 문을 사용해서 gender가 2로 나눴을때 0이면 여자, 1이면 남자가 나오도록 코드를 짜주면 끝!

    def check_gender(pin):
        gender = pin.split('-')[1][0]
        if int(gender) % 2 == 0:
            print("여성입니다")
        else:
            print("남성입니다")
    
    check_gender('150101-1012345')
    check_gender('150101-2012345')
    check_gender('150101-5012345')

    오늘 해야하는 진도까지 다 했다. 

    웹개발 종합반떄 배운 것이 있는건지 재밌게 한 것 같다.

    퀴즈를 주실때마다 막 설렜다 ㅋㅋㅋ 물론 어려우면 답답하고 힘들었지만..

    또 내가 팀장이 돼서 떨린다..

    나랑 팀원 한 분 제외하고 다 대학 전공자 아니면 관련 업무를 하고 오신분들이라서 긴장된다ㅋㅋㅋㅋ

    열심히 해야지!

    내일은 파이썬 이어서 전부 다 듣고, 시간이 남으면 어제 들었던 자바를 이어 들어야겠다.

     

    TMI: 열심히 쓰고 있었는데 제 실수로  전부 날라가서 다시 썼습니다 ㅋㅋ ㅠㅠ

Designed by Tistory.