[python] 3. 파이썬 기초 개념 총정리... (반복문, 별찍기, 함수)

mu-eng·2023년 1월 4일
1
post-thumbnail

python 기초 개념 😫
어려워 진다...
유튜브 '스타트코딩'채널 토대로 공부

.
.
.

계속 업데이트 중

💎 반복문

  • for : 리스트안에 요소들을 하나씩 뽑아내면서 명령블록 실행
# 형태
for 변수 in 리스트
	명령블록

# 기본예제
for a in [1, 2, 3, 4]
	print(a)
    
# 예제 (for + if문)
names = ['티모', '리신', '이즈리얼']

for name in names:
	if name == '티모':
    	print(name + '는 탑 챔피언입니다.')
    elif name == '리신':
    	print(name + '는 정글 챔피언입니다.')
    else name == '이즈리얼':
    	print(name + '는 원딜 챔피언입니다.')
  • range : 정수를 입력 받아 순서열을 만들어 주는 함수
# 형태 : range(10) => 0~9까지 순서열을 반환

# 기본예제
for i in range(60):
	print(i+1, '분')
# 형태 : range(시작숫자, 끝숫자+1)
range(1, 10) #=> 1~9까지 숫자
# 형태 : range(시작숫자, 끝숫자+1, 단계)
range(1, 10, 2) #=> 1, 3, 5, 7, 9
range(10, 1, -1) #=> 10, 9, 8, 7, ... , 2
# 예제1
for i in range(1, 11):
	print(i, "번째 페이지입니다.")

# => 1, 2, 3, ... 10번째 페이지입니다. 출력됨
  • while
    -- for문과 대체가 가능하다.
    -- for문과의 차이점은?
    -- ==> for문 : 정한 횟수만큼 반복
    -- ==> while : 조건을 만족하지 않을 때 까지 반복
    -- if문과 비슷한 형태!
# 형태
while 조건:
	명령블록 # 조건이 참이면 무한 반복

# while 기본예제

count = 0 # 젤 중요한 조건, 초기화!

while count < 5:
	print (count, "번째 반복입니다")
    count = count + 1 # ==> 0, 1, ... 4

# for 기본예제
for count in range(5):
	print(count, "번째 반복입니다" # ==> 0, 1, ... 4
  • 반복문 예제 풀어보기
# Q1. 프로그램 사용자로부터 자연수를 입력 받고, 0부터 자연수까지의 합계를 출력하세요.

a = int(input("자연수를 입력하세요. >>>"))
sum = 0 #젤 중요한 조건, 초기화하기

for i in range(1, a + 1):
	sum = sum + i

print(sum)

## 넘 어렵..ㅋ ㅠㅠ 하나하나 따져보자.
## i = 1, sum = 0 + 1
## i = 2, sum = (0 + 1) + 2
## i = 3, sum = ((0 + 1) + 2) + 3
## ... 중략
## i = a, sum = 0 + 1 + 2 + 3 + ... + a
### => 그래서 결과적으로 0부터 자연수 a까지 값 모두 더한 값
# Q2. 사용자로부터 -1을 입력 받으면 프로그램이 종료되는 프로그램을 작성해보세요.

print("프로그램 시작")
a = int(input("종료하려면 -1을 입력하세요:"))

while a != -1:
    a = int(input("종료하려면 -1을 입력하세요:"))

print("프로그램 종료")


# 또는 (if문, break 사용)
print("프로그램 시작")

while True: # 조건이 참일 때 무한반복하겠다.
    a = int(input("종료하려면 -1을 입력하세요.>>>"))
    if a == -1:
        print("프로그램 종료")
        break
# Q3. 다음과 같이 프로그램이 동작하도록 코드를 작성해보세요.
# (스타트 코딩 파이썬 기초 8강 반복문 예제 3번)

while True:
    a = int(input(("[메뉴를 입력하세요]" + "\n" + "1.게임시작 2.랭킹보기 3.게임종료 >>>")))

    if a == 1:
        print("-> 게임을 시작합니다.")
    elif a == 2:
        print("-> 랭킹보기")
    elif a == 3:
        print("-> 게임을 종료합니다.")
        break
    else:
        print("다시 입력해 주세요.")

💎 별찍(고 싶지않아요)기

  • 알고리즘 문제에 굉장굉장굉장히 많이 등장한다는 별찍기.. 스타트코딩에 설명해주시길래 같이 함 해봤읍니다...
# Q1. 완성 모양 :
# *
# **
# ***
# ****
# *****

for i in range(1, 6):
    stars = "*" * i
    print(stars) # print()안에 ("*" * i)를 바로 넣어도 된다
Q2. 완성 모양 :
# *****
# ****
# ***
# **
# *

# 풀이1. -------------------------------------------------
for i in range(6, 1, -1):
    print("*" * (i - 1))
    
# range 세번째 자리에 '-1'을 넣으면 거꾸로 카운트 된다고 하는데 그럼 
# range(1, 6, -1) 이라 써야 되는거 아니냐고 ㅠ ㅠ ㅠ ㅠ ㅠ ㅠ ㅠ
# 응 아니고 말 잘 듣자. range(6, 1, -1)

# 풀이2. -------------------------------------------------
for i in range(1, 6):
    print("*" * (6 - i))
Q3. 완성 모양 :
#     *
#    **
#   ***
#  ****
# *****

for i in range(1, 6):
    print(" " * (5 - i) + "*" * i)
Q4. 완성 모양 :
# *****
#  ****
#   ***
#    **
#     *

for i in range(1, 6):
    print(" " * (i - 1) + "*" * (6 - i)) # 내 1차 답안

for i in range(5):
    print(" " * (i) + "*" * (5 - i)) # 내 2차 답안

💎 함수(function)

  • 작업을 수행하는 명령블록
  • 코드가 길어지고 복잡해질 때 편리하게 쓰기 위해 활용
  • 반복적으로 사용되는 코드를 함수로 만든다!
# 형태
def 함수이름(매개변수):
	명령블록
    ...
    return 리턴값
    
# 기본형태 예시
def sum(a, b):
	result = a + b
    return result
    
# 사용하는 방법
def sum(a, b):
	result = a + b
    return result
    
# 예시
x = sum(1, 2)
y = sum(3, 4)
print(x) # => 3
print(y) # => 7
# 매개변수가 없는 함수
def 함수이름():
	명령블록
    ...
    return 리턴값

# 예제 : 1~9까지 숫자 중 랜덤으로 뽑아
import random # 실행중인 파일안에 다른 파일을 넣어두는 것(?)

def getRandomNumber():
	number = Random.randint(1, 10)
    return number

print(getRandomNumber())
# 매개변수가 없는 함수
def 함수이름():
	명령블록
    ...
    return 리턴값
    
def getRandomNumber():
	number = Random.randint(1, 10)
    rerurn number

print(getRandomNumber())
# 리턴값이 없는 함수
def 함수이름(매개변수):
	명령블록
    ...
    
def printName(name):
	print(name)
    
# 예제
def printName(name):
	print(name)
    
printName("스타트코딩") # 스타트코딩 출력됨
# 매개변수x 리턴값x 경우
def 함수이름():
	명령블록
    
def sayHI():
	print("안녕")
    
sayHI() # 안녕 출력됨
# 예제문제
# Q. 로도 예제 프로그램 예상번호 만들기
## 1. 로또 번호 6개를 생성
## 2. 로또 번호는 1~ 45까지의 랜덤한 번호
## 3. 6개의 숫자 모두 달라야 함
## 4. 로또 번호 생성함수를 작성하고 사용한다

import random

lotto_num = [] # 빈 로또 번호 리스트 생성

def getrandomnumber():
    number = random.randint(1, 45)
    return number

count = 0 #횟수를 저장할 변수

while True:
    if count > 5:
        break
    random_number = getrandomnumber() # 로또 번호 하나 뽑기
    if random_number not in lotto_num: # 로또 번호 리스트 안에 뽑은 로또 번호가 없으면
        lotto_num.append(random_number) #로또 번호 리스트에 뽑은 로또 번호를 추가해라
        count = count + 1
        
print(lotto_num)

# 따라 적긴 했는데 이해가 안 된다.

-- 위에 문제 참고 링크 : https://bit.ly/3vLGfBr

💎 함수를 사용하는 이유?

  • 코드를 간편하게!
  • 유지 보수를 간편하게!
# 함수를 사용하지 않은 경우
print("안녕하세요, 뷔님"
print("현재 프리미엄 서비스 사용기간이 30일 남았습니다.")

print("안녕하세요, 정국님"
print("현재 프리미엄 서비스 사용기간이 20일 남았습니다.")

print("안녕하세요, 진님"
print("현재 프리미엄 서비스 사용기간이 10일 남았습니다.")

# 함수를 사용한 경우
def print_message(name, date):
	print("안녕하세요", name, "님")
    print("현재 프리미엄 서비스 사용기간이", date, "일 남았습니다.")
    
print_message("뷔", 30)
print_message("정국", 20)
print_message("진", 10)
# 함수 만들기
def 함수이름(매개변수1, 매개변수2)
	명령블록
    return 결과값
    
# 예제
def sum(a, b):
	result = a + b
    return 결과값
    
# 함수 사용하기
# 형태 : 함수이름(인자1, 인자2)
print(sum(1, 2))

## => 인자1인 1이 매개변수1인 a로, 인자2인 2가 매개변수 2로
## 즉 print(sum(1, 2)) == print(3)
profile
[무엥일기] 무엥,,, 내가 머쨍이 개발자가 될 수 이쓰까,,,

0개의 댓글