# 9. TIL

이지훈·2021년 5월 16일
1

TIL

목록 보기
9/33
post-thumbnail

DO it! 자료구조와 알고리즘 입문 파이썬편을 공부했습니다. 🤦‍♂️

1. 1부터 n까지 정수의 합

### 1부터 n까지 정수의 합 문제

print('1부터 n까지 정수의 합을 구하시오.')
n = int(input('n값을 입력하세요 : '))

sum = n * (n + 1) // 2 # 가우스 법칙 이용

print(f'1부터 {n}까지 정수의 합은 {sum}입니다.')

🐱‍👤 가우스의 덧셈 법칙이란?

  • 1+2+3+…+99+100을 계산하면 앞의 숫자와 뒤의 숫자를 더하면 모든 쌍의 합이 101이 나오며, 그 개수는 전체 개수의 절반인 50개가 된다는 점에 착안된 법칙

사진출처


2. +와 -를 번갈아서 출력하기

print('+와 - 번갈아 출력')
n = int(input('몇 개를 출력할까요? : '))

for _ in range(n // 2):
    print('+-', end='')

if n % 2:
    print('+', end='')

print()

👀 for 문에서의 '_' (언더스코어)란?

  • 코드 작성시 '값'을 무시할 경우(인덱스를 반환받을 필요없을 경우 불필요한 변수를 만드는 것보다 언더스코어를 사용해 깔끔하게 코드를 작성할 수 있다)

3. 2자리 양수 입력받기

### 2자리 양수(10 ~ 99) 입력받기

print('2자리 양수를 입력하세요')

while True:
    num = int(input('값을 입력하세요 : '))
    if not(num < 10 or num > 99): # 드모르간 법칙 사용
        break

print(f'입력받은 양수는 {num}입니다.')

🐱‍👤 드모르간 법칙이란?

  • AND와 OR 연산을 서로 바꾸고, 각 변수의 보수를 취하는 법칙

-> x and y 는 not(not x or not y)와 논리값이 같음
-> x or y 는 not(not x and not y)와 논리값이 같음

식 비교

if not(num < 10 or num > 99): # 드모르간 법칙 쓴 방법
if 10 <= num <= 99: # 비교연산자를 연속으로 쓴 방법

사진출처


4. 구구단 곱셉표 출력하기

### 구구단 출력

for i in range(1, 10):
    for j in range(1, 10):
        print(f'{i * j:3}', end='')
    print()

-> print(f'{i * j:3}', end='') 에서 :3 은 3자리(공백 1칸 포함)으로 만들기 위함입니다.

-> print(f'{i * j:4}', end='') 를 하니 공백포함 4칸으로 만들어졌습니다.


5. 함수 내외부에서 정의한 변수와 객체의 식별 번호 출력하기

### 함수 내외부에서 정의한 변수와 객체의 식별 번호 출력

n = 1
def put_id(): # 전역 변수
    x = 1 # 지역 변수
    print(f'id(x) = {id(X)}') 

print(f'id(1) = {id(1)}')
print(f'id(n) = {id(n)}')
put_id()

👀 파이썬 변수 알아보기

  • 변수는 객체를 참조하는 객체에 연결된 이름에 불과
  • 모든 객체는 메모리를 차지하고, 자료형뿐만 아니라 식별 번호(고유한 id 값)을 가진다.

파이썬에서 변수는 값을 저장하는 상자가 아니라 단순한 이름에 불과함 ❗

  • n은 전역 변수이고 x는 지역변수이지만, 1, n x의 식별번호(id)는 같게 출력됨
  • C언어는 함수 내부의 지역 변수가 함수가 실행될때 생성되고 종료될때 소멸하는 것과는 달리 그런 개념이 없음(for문 반복 시 계속해서 생성된다는 뜻)
  • 프로그램에서 1 이라는 정수 객체는 put_id() 함수와 무관하게 존재하기 때문임
profile
꾸준하게 🐌

0개의 댓글