[TIL] Python_1

나의 개발 일지·2024년 2월 16일

BootCamp

목록 보기
1/13

TIL은 Today I learned의 약자로 부트캠프에서 학습한 내용중 새로 학습하게 된 내용위주로 정리하는 것과 중요한 것을 정리하는 것을을 목표로 한다.


2024.02.16

오늘 학습한 내용 : Python 기초 부분


1. 구구단 만들기 - \t에 관하여

해당 파이썬 프로그래밍은 이전에도 진행한 적이 있으나 다음과 같이 구구단을 열에 맞추기 위해선 어떻게 해야할까?

code>

yourlist1 = [i for i in range(1,10)]
yourlist2 = [i for i in range(1,10)]
for i in yourlist1:
  for j in yourlist2:
    print(f"{j}x{i}={i*j}",end='\t')
  print()
  • end
    • print() 함수가 출력하는 끝 문자열을 지정
    • Default값은 \n이므로 print()가 실행될 때마다 새로운 줄에 출력됨
    • 예를들어, end = ' '를 지정하면 줄 바꿈 대신 공백 문자로 끝남
  • sep
    • print() 함수가 출력하는 여러 값들 사이에 삽입되는 문자열 지정
    • Default값은 (' ')로 설정되어 있어 print()가 실행될 때마다 각 값들 사이에 공백이 삽임됨
    • 예를들어, sep = ', '를 지정하면 여러 값들을 쉼표와 공백으로 출력
  • \n
    • \n은 개행 문자(줄 바꿈 문자)로, 출력 시에 다음 줄로 이동하여 새로운 줄을 만듦.
  • \t
    • 수평 탭 문자를 나타낸다. 출력 시에는 일정한 공간(일반적으로 너비가 고정된 공간)을 만들어 준다. 이는 주로 텍스트를 정렬할 때 사용 -> 일정한 공간이라는 점이 중요하다.

2. break과 continue

  • break : 일정 조건이 충족되었을 때 반복문 또는 조건문을 강제로 종료할 때 사용
for i in range(10):
  if i == 5:
    break
  print(i)
  • continue : 반복문의 현재 반복을 중지하고 다음 반복으로 넘어갈 때 사용
for i in range(10):
  if i%2 == 0:     # 짝수일때
    continue       # 아래 문장 skip하고 한바퀴 돌린다
  print(i)

3. List Comprehension

  • 리스트컴프리헨션은 리스트안에 반복문 및 조건문을 설정하여 리스트의 내용을 정의하는 것으로 처리 속도가 매우 빠르다는 장점이 있다.
  • 단, 리스트 컴프리헨션은 단순한 구조일때 사용한다. for문이 많은경우는 for문을 그냥 사용한다.

version1 >

k_list = []
for i in range(10):
  if i % 2 == 0 :
    k_list.append(i)
print(k_list)

version2>

k_list = [i for i in range(10) if i%2==0]
print(k_list)

리스트컴프리헨션을 사용하면 코드의 간결함이 크게 향상되는 것을 알 수 있다.

4. 파일 입출력

  • 파일의 입출력은 open()함수를 통해 진행된다.
# Read mode
f = open("test.txt",'r')
print(f.read())
f.close()       # 반드시 해줘야함 -> 안해주면 파일이 계속해서 읽기모드로 남아 있게 되어 파일에 접근이 불가할수도 있음
# Write mode
f = open("test.txt",'w')
f.close

5. 함수(function)의 가변 매개변수

#형태

def function_name(*var_parameter):
	func_content
  • 가변 파라미터(*var_parameter)는 파라미터를 개수에 상관없이 받을 수 있음을 의미
  • 가변매개변수는 일반매개변수와 같이 사용할 시 반드시 일반매개변수 뒤에 위치해야한다
  • 가변매개변수는 오직 하나만 사용이 가능하다.(-> 구분이 불가능하기 때문)
# 가변매개변수와 일반매개변수를 같이 표현? ===> 가능하다. 단, 가변매개변수는 일반변수(positional parameter)앞에 올 수 없다
# 가변매개변수는 오직 하나만 사용할 수 있다.

def my_function(n,*args):
  print(f"n:{n}")
  for arg in args:
    print(arg, end=' ')

my_function(1,2,3,4) # 가변파라미터의 해당하는 실제 값의 개수가 몇개이든 상관 x

#result 
n:1
2 3 4

6. 변수의 유효범위(전역변수 vs 지역변수)

  • 지역변수 (Local Variables)
    • 특정 블록이나 함수 내에서 정의되고 사용되는 변수
    • 함수 내에서 선언된 변수는 해당 함수의 지역 변수로 간주
    • 지역 변수는 해당 함수 내에서만 접근할 수 있으며, 함수가 실행되면 생성되고 함수가 종료되면 소멸
  • 전역변수 (Global Variables)
    • 프로그램 전체에서 접근할 수 있는 변수
    • 프로그램의 어디에서든지 선언되고 사용할 수 있음
    • 함수 내부에서 전역 변수를 사용할 수 있지만, 함수 내부에서 변수 값을 변경할 때 global 키워드를 사용해야함
    • 프로그램이 시작될 때 생성되고 프로그램이 종료될 때 소멸
# 변수의 유효범위 (전역변수 vs 지역변수)

my_value2 = 100  # 전역변수 : 함수밖에서 정의된 변수 --> 함수밖에서 정의되었기에 함수 안에서도 적용 가능

def myFunc1():
  my_value = 0  # 지역변수 : 함수내에서 만든변수로 그 범위는 함수내로 국한되고 함수 밖에서 사용이 불가능하다.
  print(f"함수에서 만든 변수 : {my_value}")
  global my_value2 = 50   # 단, 전역변수를 함수내에서 값을 변경할 때 global을 사용해야함.

# print(my_value) # 함수에서 정의된 변수는 함수호출이 끝나면 지역변수이기에 사용이 불가능하다.
myFunc1()
print(my_value2)

7. 내장함수(시스템 함수)

  • python에 내장되어 있는 함수를 의미한다.
  • int(),float(),str(),bool(),list(),dict(),tuple(),set(),max(),min(),sum(),abs(),len() 등이 있다.

data = [[1,2],[3,4],[5,6]] # dict()를 사용하려면 하나의 쌍으로 구성된 원소가 필요하다
dict(data)

8. 다음에도 풀어봐야할 예제

0~99사이의 랜덤한 10개의 숫자중 짝수의 개수를 카운트하는 함수를 lambda를 통해 구현하기

code>

import random

data = random.sample(range(100),10)
count = lambda data : len([i for i in data if i%2==0])

print(f"랜덤 데이터 : {data}, 짝수의 개수 : {count(data)}")

result>

랜덤 데이터 : [22, 78, 76, 58, 8, 29, 42, 0, 75, 4], 짝수의 개수 : 8

0개의 댓글