1/5 Python 8일차

빨강·2024년 1월 5일
0

기록 - Python

목록 보기
10/14
post-thumbnail

1/5

  • 아침 마인드셋

    • 노력하고 있는 모습에 만족하고 있지는 않은가?
    • 노력 자체에 만족하고 있지 않은가?
    • 성취에서도 만족을 느끼자
    • 그래도 오랜만에 사는 게 겁나 재밌어. 유튜브가 재미없는 정도..?
  • 수업 후 소감..

    • 겁.나. 어.렵.네…
    • 보고 이해는 하겠는데 내 머리에서 출력이 안 됨..
  • 어제 과제

work_while.py

START = False

# 17
if START :
    i = 0
    while i < 100:
        print('Hello, world!')
        i += 1

    i = 0
    while i <100:
        print('Hello, world!')
        i += 1

    i = 1
    while i <= 100:
        print('Hello, world!', i)
        i += 1

    i = 100
    while i > 0:
        print('Hello, world!', i)
        i -= 1

    count = int(input('반복할 횟수를 입력하세요: '))

    i = 0
    while i < count:
        print('Hello world!', i)
        i += 1

#17.1.3

import random

print(random.random())

print(random.randint(1,6))

i = 0
while i != 3:
    i = random.randint(1,6)
    print(i)

dice = [1, 2, 3, 4, 5, 6]
print(random.choice(dice))
print(random.choice(dice))
print(random.choice(dice))

# while 1:
#     print('Hello, world!')
# while 'Hello':
#     print('Hello, world!')

num = 1350
inp = int(input())
while inp>=1350:
    print(f'{inp-num}')
    inp -= num

work_break.py

# # i = 0
# # while True:
# #     print(i)
# #     i += 1
# #     if i == 100:
# #         break
# #
# # for i in range(10000):
# #     print(i)
# #     if i == 100:
# #         break
# #
# # for i in range(100):
# #     if i % 2 == 0:
# #         continue
# #     print(i)
# # for i in range(10):
# #     pass
# #
# # while True:
# #     pass
# #
#
# count = int(input('반복할 횟수를 입력하세요: '))
#
# i = 0
# while True:
#     print(i)
#     i += 1
#     if i == count:
#         break
#
# count = int(input('반복할 횟수를 입력하세요: '))
#
# for i in range(count+1):
#     if i % 2 == 0:
#         continue
#     print(i)

start, stop = map(int, input().split())

i = start

while True :
    j = stop
    if i == j:
        break
    if i%10==3:
        i +=1
        continue
    print(i, end=' ')
    i += 1

work_FizzBuzz.py

# for i in range(1, 101):
#     print(i)
#
# for i in range(1, 101):
#     if i % 3== 0:
#         print('Fizz')
#     elif i% 5 ==0:
#         print('Buzz')
#     else:
#         print(i)
#
# for i in range(1, 101):
#     if i & 3 == 0 and i % 5 ==0:
#         print('FizzBuzz')
#     elif i % 3 ==0:
#         print('Fizz')
#     elif i % 5 ==0:
#         print('Buzz')
#     else:
#         print(i)
#
# # if i % 3 == 0:
# #     print('Fizz')
# # elif i % 5 ==0:
# #     print('Buzz')
# # elif i % 3==0 and i % 5 ==0:      #FizzBuzz 검증이 안 됨
# #     priint('FizzBuzz')
# # else:
# #     print(i)
#
# for i in range(1,101) :
#     if i % 15 ==0:
#         print('FizzBuzz')
#     elif i % 3 == 0:
#         print('Fizz')
#     elif i % 5 == 0:
#         print('Buzz')
#     else:
#         print(i)
#
# for i in range(1,101):
#     print('Fizz' * (i%3 ==0) + 'Buzz' * (i%5==0) or i)
#
# print('Fizz'+'Buzz')
# print('Fizz'*True)
# print('Fizz'*False)
#
# print('Fizz'*(i%3==0))
# print('Buzz'*(i%5==0))
# print('Fizz' * (i%3 ==0) + 'Buzz' * (i%5==0))
#
# print('Fizz' * (i % 3 == 0) + 'Buzz' * (i % 5 == 0) or i)

min, max = input().split()
min = int(min)
max = int(max)
for data in range(min, max+1):
    if min%5==0 and min%7==0 :
       print('FizzBuzz')
    elif min%5==0:
        print('Fizz')
    elif min%7==0:
        print('Buzz')
    else:
        print(min)
    min +=1

work_2ndlist.py

# a=[[10,20], [30,40], [50,60]]
# print(a)
#
# a= [[10, 20],
#     [30, 40],
#     [50, 60]]
# print(a)
#
# a=[[10,20], [30,40], [50,60]]
# print(a[0][0])
# print(a[1][1])
# print(a[2][1])
# a[0][1]=1000
# print(a[0][1])
# print(a)
#
# a = [[10, 20],
#      [500, 600, 700],
#      [9],
#      [30],[40],
#      [8],
#      [800, 900, 1000]]
# print(a)
#
# a=[]
# a.append([])
# a[0].append(10)
# a[0].append(20)
# a.append([])
# a[1].append(500)
# a[1].append(600)
# a[1].append(700)
# print(a)
#
# a= ((10, 20), (30, 40), (50,60))
# b= ([10, 20], [30, 40], [50, 60])
# c= [(10, 20), (30, 40), (50, 60)]
# print(a,b,c)
# # a[0][0]=500
# # a[0]=(500,600)
# b[0][0]=500
# # b[0]=(500,600)
# # c[0][0]=500
# c[0]=(500, 600)
# print(a, b, c)
#
# a = [[10,20], [30,40], [50,60]]
# print(a)
#
# from pprint import pprint
# pprint(a, indent=4, width=20)
#
#
# a = [[10,20], [30,40],[50,60]]
# for x, y in a:
#     print(x, y)
#
# for i in a:
#     for j in i:
#         print(j, end=' ')
#     print()
#
# for i in range(len(a)):
#     for j in range(len(a[i])):
#         print(a[i][j], end=' ')
#     print()
#
# # for i in range(len(a)):
# #     for j in range(len(a)):
#         # print(a[i][j], end=' ')
#
# i = 0
# while i < len(a):
#     x, y = a[i]
#     print(x,y)
#     i += 1
#
# i = 0
# while i < len(a):
#     j = 0
#     while j < len(a[i]):
#         print(a[i][j], end=' ')
#         j += 1
#     print()
#     i += 1
#
# # i = 0
# # while i < len(a):
# #     j = 0
# #     while j < len(a[i]):
# #         print(a[i][j], end=' ')
# #         j += 1
# #         i += 1
# #     print()
#
# a = []
# for i in range(3):
#     line = []
#     for j in range(2):
#         line.append(0)
#     a.append(line)
# print(a)
#
#
# a = [[0 for j in range(2)] for i in range(3)]
# print(a)
#
# a = [3, 1, 3, 2, 5]
# b = []
#
# for i in a:
#     line = []
#     for j in range(i):
#         line.append(0)
#     b.append(line)
# print(b)
#
#
# students = [
#     ['john', 'C', 19],
#     ['maria', 'A', 25],
#     ['andrew', 'B', 7]
# ]
# print(sorted(students, key=lambda student: student[1]))
# print(sorted(students, key=lambda student: student[2]))
#
# a = [[10,20], [30,40]]
# b = a
# b[0][0] = 500
# print(a)
# print(b)
#
# a = [[10,20], [30,40]]
# b = a.copy()
# b[0][0] = 500
# print(a)
# print(b)
#
# a = [[10,20], [30,40]]
# import copy
# b = copy.deepcopy(a)
# b[0][0] = 500
# print(a)
# print(b)

#

col, row = map(int, input().split())
matrix = []
for i in range(row):
    matrix.append(list(input()))

20장 과제 지뢰찾기는 어려워서 아직 해결 못함


  • 09:00
    • 회사에서 신입은 잘한다면 좋겠지만 어차피 신입, 성실한 사람이 더 빨리 적응하고 성과를 낼 수 있다

ex_func_01.py

# 함수 호출(calling)
#
# 함수 - 전자렌지 비유?
#
# def 전자렌지(닭가슴살, 호빵):
#     메뉴1 : 데우기
#     메뉴2 : 1분 30초
#     메뉴3 : 시작
#     return 데워진 닭가슴살, 데워진 호빵
#
# def abs(num):          # 여기서 num은 매개변수, parameters
#     result = 1
#     if num>0:
#         result = num
#     elif num ≤0:
#         result = num * -1
#
# abs(-7)               # - 여기서 -7은 인자, argument
#
# - 값 저장 변수
# - 주소 저장 변수 : 참조변수, 레퍼런스 변수
# - 함수코드에 전달된 Data 저장 변수 : 매개변수, parameters

# -----------------------------------------------------------------
# 함수 (function)
# - 특정 기능을 구현하기 위한 코드 묶음을 의미
# - 자주 사용되는 기능을 함수로 구현함
# def 함수이름(매개변수1, 매개변수2, ..., 매개변수):
# <-->실행코드
# <-->실행코드
#     return 리턴값      (동의어. 변환값, 결과값)
# -----------------------------------------------------------------
# 함수 기능 : 2개의 숫자의 합계를 계산 후 결과를 반환해주는 기능
# 함수 이름 : addTwo
# 매개 변수 : x , y
# 반 환 값 : 합계
# -----------------------------------------------------------------

def addTwo (x, y):       # 함수명이 합성어(?)인 경우 띄어쓰기를 대문자로 대체하여 구분하는 것이 관습
    value = x + y
    return value

# -----------------------------------------------------------------
# 함수 기능 : 2개의 숫자의 곱셈 결과를 반환해주는 기능
# 함수 이름 : multi
# 매개 변수 : x , y
# 반 환 값 : 곱셈결과
# -----------------------------------------------------------------

def multi (x, y):
    value = x * y         # 여러 함수에서 공통되게 value가 사용되어도 영향주지 않음
    return value

# -----------------------------------------------------------------
# 함수 사용 => 함수 호출(Calling)
# - 방법 : 함수이름(데이터, 데이터...)
# -----------------------------------------------------------------

print(addTwo(5, 10))
print(multi(5,10))
print(multi(5,'s'))

# 코딩 시 표기법 '명명법'
# - 대표적으로 "카멜(camelCase) / 파스칼(PasclaCase) / 스네이크(snake_case)
# - 카멜 표기법 : 변수명, 함수명
# - 파스칼 표기법 : 클래스 (가끔 함수)
# - 스네이크 표기법 : 변수명, 함수명, 데이터 타입,
  • 10:00

ex_func_02.py

# -----------------------------------------------------------------
# 다양한 함수의 형태 - (1) 기본
# -----------------------------------------------------------------
# 함수 기능 : 팩토리얼을 계산 후 계산 결과를 반환해주는 기능
#           팩토리얼이란? 3! = 3 * 2* 1
# 함수 이름 : factorial
# 매개 변수 : a,b,c,d,e
# 반 환 값 : 팩토리얼 결과
# -----------------------------------------------------------------

def factorial(number):
    numbers = 1
    for number in range(1, number+1):
        numbers = numbers * number
    value = numbers
    return value

print(factorial(3))

# 내가 만든 것
# -----------------------------------------------------------------
# 선생님이 만든 것

def factorial2(x):
    ret = 1
    if x:
        for n in range(x, 0, -1): ret *= n      # ret = ret *n
    return ret

print(factorial2(3))
# -----------------------------------------------------------------
# 다르게 제시하는 법
#
# 함수 기능 : 팩토리얼을 계산 후 계산 결과를 아래와 같은 형태로 반환해 주는 기능
#           예시 결과 3! = 3 * 2 * 1 = 6
# 함수 이름 : factorial3
# 매개 변수 : x
# 반 환 값 : 팩토리얼 결과
# -----------------------------------------------------------------
def factorial3(x):
    ret = 1
    if x:
        for n in range(x, 0, -1): ret *= n
    strRet = ''
    for n in range(x, 0, -1):
        strRet = strRet + str(n) + (" * " if n != 1 else " = ")
    return str(x) + "! = " + strRet + str(ret)

print(factorial3(0))

ex_func_03.py

# -----------------------------------------------------------------
# 다양한 함수의 형태 - (2) 반환값 없는 함수
# -----------------------------------------------------------------
# 함수 기능 : 2개의 정수를 덧셈 후 출력해주는 기능
# 함수 이름 : addTwo
# 매개 변수 : x, y
# 반 환 값 : 없음
# -----------------------------------------------------------------

def addTwo(x,y):
    value = x+y
    print(f'{x}+{y}={value}')

# 함수 사용, 즉 함수 호출 ----------------------------------------------
addTwo (10,3)

# 반환값이 없는 함수들
# [].sort()
# [].pop()

# 함수 호출 시에 매개변수 갯수와 동일하게 데이터 전달해야 함!! ------------------
# ERROR
# addTwo(10,10,10)
# addTwo(10)
# -----------------------------------------------------------------

# -----------------------------------------------------------------
# 함수 기능 : 영어 단어를 입력 받아서 모두 대문자로 변환 해주는 기능
# 함수 이름 : convertCase
# 매개 변수 : word
# 반 환 값 : 없음
# -----------------------------------------------------------------
def convertCase(word):
    word = word.upper()

# -----------------------------------------------------------------
# 함수 기능 : 시퀀스 객체의 모든 원소를 대문자로 변환 해주는 기능
# 함수 이름 : convertCase2
# 매개 변수 : str 타입의 원소로 구성된 list
# 반 환 값 : 없음
# -----------------------------------------------------------------

def convertCase2(dataList):
    for idx in range(len(dataList)):
        dataList[idx] = dataList[idx].upper()

dataList = [('apple'), ('danger')]
for idx, data in enumerate(dataList):
    dataList[idx] = data.upper()
print(dataList)

# 함수 사용 즉, 함수 호출 ----------------------------------------------
datas = ['Apple', 'Banana', 'Mango']
print(f'[Before]{datas}')

convertCase2(datas)

print(f'[After] {datas}')
  • 13:00 ex_func_03.py 이어서
def convertCase2(dataList):
    for idx in range(len(dataList)):
        dataList[idx] = dataList[idx].upper()

# 함수 사용 즉, 함수 호출 ----------------------------------------------
datas = ['Apple', 'Banana', 'Mango']
print(f'[Before]{datas}')

convertCase2(datas)

print(f'[After] {datas}')

# ㄴ 이미 값이 다 바뀌었기 때문에 return 값이 필요없는 경우

  • return이 필요하여서 수정하는 경우

def convertCase2(dataList):
    for idx in range(len(dataList)):
        dataList[idx] = dataList[idx].upper()

def convertCase(word):
    word = word.upper()
    return word

datas = ['Apple', 'Banana', 'Mango']
print(f'[Before]{datas}')

# convertCase2(datas)
datas[0]=convertCase(datas[0])

print(f'[After] {datas}')

ex_func_04.py

# return은 break처럼 아래 구문이 있어도 return이 있는 구문에서 종료하고 빠져나옴
# -----------------------------------------------------------------
# 다양한 함수의 형태 - (3) return 키워드
# - 함수 호출한 곳으로 돌아가게 하는 기능
#   결과값이 함께 있다면 결과값을 가지고 돌아감
#
# - 함수 생성 문법
# def 함수이름(매개변수1, 매개변수2, ..., 매개변수):
#     조건 코드와 return 값
#     실행코드
#     실행코드
#     return 결과값
# -----------------------------------------------------------------
# 함수 기능 : 팩토리얼을 계산 후 계산 결과를 반환해주는 기능
#           팩토리얼이란? 3! = 3 * 2* 1
# 함수 이름 : factorial
# 매개 변수 : x
# 반 환 값 : 팩토리얼 결과
# -----------------------------------------------------------------
def factorial(x):
    if not x:
        return 1        #즉시 함수 종료 후 호출한 곳으로 변환
    ret = 1
    if x:
        for n range(x, 0, -1):
            ret *= n
    return ret

print( f'0! = {factorial(0)}')
print( f'3! = {factorial(3)}')

ex_func_05.py

# -----------------------------------------------------------------
# 다양한 함수의 형태 - (4) 매개변수가 존재하지 않는 형태
# - 함수에게 전달되는 데이터가 없음
#
# - 함수 생성 문법
# def 함수이름(매개변수1, 매개변수2, ..., 매개변수):
#     조건 코드와 return 값
#     실행코드
#     실행코드
#     return 결과값
# -----------------------------------------------------------------
# 함수 기능 : 인사 메시지 출력 기능
# 함수 이름 : welcome
# 매개 변수 : 없음
# 반 환 값 : 없음
# -----------------------------------------------------------------
def welcome():
    print("반가워요~ 짝! 짝! 짝!")
# -----------------------------------------------------------------
# 함수 기능 : 프로그램 정보 출력 기능
# 함수 이름 : printInfo
# 매개 변수 : 없음
# 반 환 값 : str
# -----------------------------------------------------------------
def printInfo():
    return "MYGAME VERSION 1.0\nDEVELOPER KK\nEMAIL:master@game.com"

# 함수 사용 즉, 함수 호출-----------------------------------------------

welcome()
welcome()

infoMsg = printInfo()
print(infoMsg)

ex_func_special_01.py

# -----------------------------------------------------------------
# 다양한 함수의 형태 - 특별한 함수 (1)
# - 매개변수의 갯수를 유동적으로 가변으로 하는 함수
# - 형태 : def 함수명(*data):
# - 이름 : 가변 인자 함수
# - 매개변수 갯수 : 0개 ~ N개
# -----------------------------------------------------------------
# 2개 정수를 덧셈 후 결과를 반환하는 함수 생성-------------------------------
def addTwo(x, y):
    return x + y
print(addTwo(3, 5))

# 5개 정수를 덧셈 후 결과를 반환하는 함수 생성-------------------------------
def addFive(a, b, c, d, e):
    return a + b + c + d + e
print(addFive(1,2,3,4,5))

# 3개 정수를 덧셈 후 결과를 반환하는 함수 생성-------------------------------
def addThree(x, y, z):
    return x + y + z
print(addThree(1,2,3))

# 7개 정수를 덧셈 후 결과를 반환하는 함수 생성-------------------------------
def addSeven(x, y, z, a, b, c, d):
    return x + y + z + a + b + c + d
print(addSeven(1,2,3, 4, 5, 6, 7))

# -----------------------------------------------------------------
# 함수 기능 : 전달 받은 숫자를 모두 덧셈한 결과 반환 함수
# 함수 이름 : addNumber
# 매개 변수 : *nums
# 반 환 값 : 계산결과
# -----------------------------------------------------------------

def addNumber(*data):
    print((type(data)))
    ret = 0
    for d in data: ret += d
    print(ret)

# 함수 사용 즉, 함수 호출----------------------------------------------
addNumber(1,2,3)
addNumber(10)
addNumber(1,2,3,4,5,6,7,8,9,1,1,2,3,4,5,6,7)

# * : 시퀀스/반복이 가능한 객체 => 내부에 모든 원소를 하나씩 풀어서 전달(언팩킹)
addNumber(*(range(1,11)))

a = [11,22,33,44]
aTuple = 'a', 'b', 'c'
aDict = {'jj' : 'Hong', 'age':100}

print(*a, sep='-')
print(a, aTuple)
print(*aTuple, sep='-')     # * 애스터리스크
print(*aDict, sep='-')      # * 한 개면 key만
print(**aDict, sep='-')     # ** 두 개일 때는 key=value형태로 되는데 print()는 **가안 됨

# print()는 (), (1), (1,2,3,) 처럼 다양한 인자가 가능함 => *values 가변인자 사용

14:10 ex_func_special_01.py 이어서(보충 완료)

ex_func_special_02.py

# -----------------------------------------------------------------
# 다양한 함수의 형태 - 특별한 함수 (2)
# - 매개변수의 갯수를 유동적으로 가변으로 하는 함수
# - 키와 값의 덩어리 데이터
# - 형태 : def 함수명(**data):
# - 이름 : 가변 인자 함수
# - 매개변수 갯수 : 0개 ~ N개
# - 호출 : 함수명(키1=값1)
#         함수명(키1=값1, 키2=값2, 키3=값3) 형태
#         함수명()
# -----------------------------------------------------------------
aDict = {'name':'Hong', 'age':10}
aDict.update(job = '학생')
aDict.update(job = '학생', birth='1112', blood='A')
print(aDict)
aDict.update(점수1 = 100, 점수2 = 200, 점수3 = 300, 점수4 = 400, 점수5 = 500)
print(aDict)

def addx(x,y):
    '''
    x+y
    :param x: int
    :param y: int
    :return: x + y int
    '''
    return x+y

print(addx (1, 2))

# -----------------------------------------------------------------
#

ex_test_01.py

# -----------------------------------------------------------------
# [실습1] 2개의 정수를 입력 받은 후 사칙 연산 수행 결과를 반환하는
#        기능의 함수를 정의해주세요.
#        함수이름 : fourCalc
#        매개변수 : n1, n2
#        변환결과 : 사칙 연산 결과
# -----------------------------------------------------------------

def fourCalc(n1, n2):
    return n1+n2, n1-n2, n1*n2, n1/n2 if n2 else '0으로 나눌 수 없음'

print(fourCalc(1, 0))
# -----------------------------------------------------------------
# [실습2] 문자열을 16진수 코드값으로 변환 후 반환하는 기능의 함수를 정의해주세요.
#        함수이름 : getCode
#        매개변수 : message
#        변환결과 : str
# -----------------------------------------------------------------

def getCode(message):
    # pass
    ret = ''
    for msg in message:
        ret += hex(ord(msg)) + ' '
    return ret

print(getCode(('Good Luck')))

# 헛된 노력의 흔적..

#
#     message.split()
#
#     message2 = map(ord, message)
#     for idx, msg in enumerate(message):
#         message[idx] = hex(msg)

# message = ("안녕하세요")
# print(ord("안"))

# message = "message"
# print(ord(message))
#
# print(hex(message))
#
# print("안녕하세요".split())
# print(map(ord, "안녕하세요".split()
# print(list(map(int, "안녕하세요".split())))
  • 15:20

ex_func_special_02.py

# # -----------------------------------------------------------------
# # 다양한 함수의 형태 - 특별한 함수 (2)
# # - 매개변수의 갯수를 유동적으로 가변으로 하는 함수
# # - 키와 값의 덩어리 데이터
# # - 형태 : def 함수명(**data):
# # - 이름 : 가변 인자 함수
# # - 매개변수 갯수 : 0개 ~ N개
# # - 호출 : 함수명(키1=값1)
# #         함수명(키1=값1, 키2=값2, 키3=값3) 형태
# #         함수명()
# # -----------------------------------------------------------------
# aDict = {'name':'Hong', 'age':10}
# aDict.update(job = '학생')
# aDict.update(job = '학생', birth='1112', blood='A')
# print(aDict)
# aDict.update(점수1 = 100, 점수2 = 200, 점수3 = 300, 점수4 = 400, 점수5 = 500)
# print(aDict)
#
# def addx(x,y):
#     '''
#     x+y
#     :param x: int
#     :param y: int
#     :return: x + y int
#     '''
#     return x+y
#
# print(addx (1, 2))

# -----------------------------------------------------------------
# 함수 기능 : 회원 가입 기능
# 함수 이름 : joinMember
# 매개 변수 : 이름, 전화번호, 아이디, 이메일, 취미, 주소, 생일, ...
#           가변 + 데이터 정보 함께
#           키워드파라미터 **member
# 반 환 값 : '가입 완료 되었습니다.' str
# -----------------------------------------------------------------

def joinMember(**member):
    # print(type(member))
    # 멤버 저장소에 멤버 추가하기
    mList.append(member)

    members[f'M{len(members)+1}'] = member

    print(member)
    print(mList)
    pass

#
#
# # -----------------------------------------------------------------
# # 함수 사용 즉 호출
# # -----------------------------------------------------------------
# # 가입된 회원들 저장 변수
members = {}
mList = []
#
print(f'[BF] : {members}')

# # 회원가입 기능 함수 호출
joinMember(name='Hong', age=17, birth='2020')
joinMember(id='Hong84', phone='010', job='actor', blood='B')
joinMember(id='Hon', birth='2012', blood='AB')

print(f'[AF] : {members}')

#
# # m = {'name':'Hong', 'age':17}
# print("key", members.keys())
# print(members.values())
# print(members.items())
#
# joinMember(name='Hong', age=17, birth='2222/22/22')
# print("key", members.keys())
# print(members.values())
# print(members.items())

# -----------------------------------------------------------------
# 함수 기능 : 회원 가입 기능
# 함수 이름 : joinMember2
# 매개 변수 : 필수 => id, pw
#           선택 => **option 이름, 전화번호, 이메일, 취미, 주소, 생일, ...
#           가변 + 데이터 정보 함께
# 반 환 값 : '가입 완료 되었습니다.' str
# -----------------------------------------------------------------

def joinMember2(id, pw, **option): #**option, id, pw는 앞이 몇개 들어올 지 모르기때문에 가변 인자가 뒤로 와야
    # 멤버 저장소에 멤버 추가하기
    print('ok')

members = {}
mList = []
#
print(f'[BF] : {members}')

# # 회원가입 기능 함수 호출
joinMember2(id='Hong', pw=1234, age=17, birth='2020')
joinMember2(id='Hong84', pw='010', job='actor', blood='B')
# joinMember2(id='Hon', birth='2012', blood='AB')

print(f'[AF] : {members}')
print(f'[AF] : {mList}')

# -----------------------------------------------------------------
# 함수 기능 : 회원 가입 기능
# 함수 이름 : joinMember3
# 매개 변수 : 필수 => id, pw
#           선택 => **option 이름, 전화번호, 이메일, 취미, 주소, 생일, ...
#           가변 + 데이터 정보 함께
# 반 환 값 : '가입 완료 되었습니다.' str
# -----------------------------------------------------------------

def joinMember3(id, pw, loc='내국인', gender='남자', **option): #**option, id, pw는 앞이 몇개 들어올 지 모르기때문에 가변 인자가 뒤로 와야
    # 멤버 저장소에 멤버 추가하기
    print(id, pw, loc, gender, option)
    # 키 => id
    # 값 => pw, loc='내국인', gender='남자', **option
    #       { 'pw' : '1234', 'loc' : '내국인', 'gender' : '남자', **option 반복문해서 풀든가, 'etc': option 하든지}
    valueDict = {}
    valueDict['pw'] = pw
    valueDict['loc'] = loc
    valueDict['gender'] =gender
    valueDict['etc'] = option
    members[id] = valueDict

members = {}
mList = []
#
print(f'[BF] : {members}')

# # 회원가입 기능 함수 호출
joinMember3(id='Hong', pw='1234', age=17, birth='2020')
joinMember3(id='Hong84', pw='10', gender='여자', job='actor', blood='B')
joinMember3('Hon', '2012', '내국인')

print(f'[AF] ---------')
for m in members.items():
    print(m)

def test2(gojung, *a, **kw):
    print(gojung, a, kw)

test2(10, 20, 30, name=('Hong','lee', 'kim'))

print(test2)

ㄴ 함수 형태 끝

  • 16:20 ex_func_special_02.py 이어서 (보충완료)

  • 오늘의 질문

    • #함수안에 매개변수 무한히 넣게끔 하려면? *data
profile
갈림길인 줄 알았는데 알고보니 직진

0개의 댓글