별의별 이야기

return statement, module random 본문

3./Python

return statement, module random

Hailey Han 2024. 12. 31. 11:48
728x90
return statement
 
- return문은 함수의 실행을 종료함. 함수 바디 어디든 위치 가능
- 리턴 키워드 다음에 오는 표현의 값을 호출 한 곳으로 '반환'한다. 
- 만약 없으면, 함수가 코드(바디) 끝에 도착했을 때 함수가 종료된다.
- return되는 값이 여러 개인 경우, 그 값은 tuple 형식으로 전달된다. (변수는 하나인데 리턴은 두개인 경우)
(tuple : 괄호와 컴마로 아이템을 분류함.)
 
 
연습문제1
#9_2_3 : return statement
#연습문제1
#함수 정의, 파라메터 문자열에서 모음인 문자들만 합하여 만든 문자열 리턴
#문자열 두번 입력 받아서, 각각 문자열을 파라메터로 합수를 호출하고
#그 결과를 합하여 출력한다.  
#같이풀기
#input먼저 받아보자
def find_vowel(str1):
    revowel='' #변수만들기
    for i in str1: 
        if i in 'AEIOUaeiou':
            revowel+=i
    return revowel

str1 = input('첫 번째 문자열 입력: ')
str2 = input('두 번째 문자열 입력: ')

print( find_vowel(str1)+find_vowel(str2)) #함수에 str1을 넣고, 함수에 str2 호출
#함수부터 동작하는것이 아님. 실제 코드는 15번 줄부터 동작하게 된다.
- 함수부터 동작하는것이 아님. 실제 코드는 15번 줄부터 동작하게 된다.
- 함수는 특정 지역이되고, 그 함수는 그 안에서만 쓸 수 있음. st1(함수내부변수=지역변수), st1(그외=지역변수)
 
연습문제2
#연습문제2
#함수정의, 파라메터 문자열의 모음의 수와 자음의 수 리턴 
#문자열 입력 받아서, 입력받은 파라미터로 함수 호출하고, 그 결과 출력함
#인덱스 지정하면 각각 따로 가져와서 쓸 수 있다.
#같이풀기
#함수정의부터 해보자 이번엔: 모음수와 자음수를 리턴하는 함수다.
def count_char(str): #문자열 받아야하니까 str변수로 받기
    vcount = 0 #모음카운트 변수
    nvcount = 0 #자음 카운트 변수
    for i in str: #문자하나씩 가져오면서 모음자음 판단.
        if i in 'AEiOUaeiou' : #이 변수에 있는 문자가 아에이오우인지
            vcount +=1 #들어있으면 vcount 증가, 아니면 nvcount 증가
        else: 
            nvcount+=1 
    return vcount, nvcount #마지막에 두개의 변수 리턴

st1 = input('enter string: ')
countch = count_char(st1) #함수에 호출해서 넘겨주고, 값을 받아옴(countch변수)
print(st1, countch, '모음수=', countch[0], '자음수', countch[1]) #마지막으로 출력형식에 맞게 출력
#튜플이 되기에 인덱스로 구별이 가능함.

연습문제 3

#연습문제3
#입력받은 양의 정수가 몇자리 인지 확인 후
#자리수와 젤 마지막 값을 리턴하는 함수 lennum(ni)을 작성하시오. 1회 실행
def lennum(n): 
    return len(n), n[len(n)-1]

num = input('enter p integer: ') #입력부터 받아보자 우선
length, lastItem = lennum(num) #길이와 마지막 수를 받아오고 함수 호출, 이제 함수 만들자 

#마지막 프린트
print(num, '자리수', length, '마지막 숫자는: ', lastItem) 
#함정: 숫자연산을 다 잘라내는 것보다. 문자열로 그대로 남아있으면 카운트만 하면 된다! 그래서 num에 형변환 안함

module random

random(난수)을 사용하는 경우: 게임, 등.. 
randome 함수 -> import random 
method는 굉장히 다양하다 : 정수형(randome.randrange(1,9,1)), 실수형(random.uniform(1,2), 리스트에서 선택하기(random.choice([1,2,3,4,5])

#9_03_02 랜덤 연습문제
#List이름과 정수를 parameter로 입력하는 함수를 만든다
#함수는 List 아이템 중 하나를 랜덤으로 선택해서 출력한다. return 문은 사용하지 않는다
import random as rd
rd.seed() 

def rndchoice(nlist,num):
    #rd.choice(nlist) #nlist에서 받아서 임의로 선택하도록 만듦
    for i in range(num):#선택하고 출력까지 그리고 이걸 반복하기 -> 반복문하기 근데? 정수만큼 반복 -> num 만큼
        print(rd.choice(nlist))
num_list=[3,1,7,11,25,5,4,9]
rndchoice(num_list,3)
# 연습문제2
#함수정의: 두 개의 정수 매개변수(파라매터) 설정. 
#첫번째 매개변수보다 크거나 같고, 두번째 매개변수보다 작은 구간에서 난수 생성
#''A'+생성된 정수' 에 해당하는 대문자 출력, 함수를 10번 호출해 결과 출력 
#첫번째 정수 범위는 1-10까지, 두번재 정수 범위는 1번째 정수 범위+10 
#hint: randrange, 반복문

import random as rd
rd.seed()
def genRandInt(num1, num2):
    #rd.randrange(num1,num2) #하나는 매개변수, 하나는 아니다
    genInt=rd.randrange(num1,num2) #생성된걸 변수에 저장
    #'A'+gneInt 를 문자를 숫자로(ord), 그걸 다시 문자로 (chr) 
    #chr(ord("A"))+genInt  를 출력하는 함수
    print(genInt, chr(ord("A")+genInt) )
for i in range(10): #첫번째 정수의 범위
    genRandInt(i, i+10)
#연습문제3
#주사위 두개를 던져 같은 수가 나올 때까지 반복. 
#함수정의: 1-6사이의 정수 난수 생성과 반환
import random as rd

def dice():
    return rd.randrange(1,7) #1에서 6사의 값 리턴
while True: #계속반복이니 무한루프인 true로 설정
    #print(dice(),dice()) 를 넣으면 아래식까지 호출이 4개로 되어서, 변수로 받아야 함!!! temp
    temp1, temp2 = dice(), dice() 
    #if dice() == dice(): #이런식으로 해야되는데 #수정해보자
    print(temp1, temp2)
    if temp1 == temp2:
        break
#연습문제4
#문제2 dice()함수 사용. 주사위 두 개 던져 다른 값인 경우 리스트 dicelist에 저장 3번 반복
# 2개 주사위가 같으면 다른 값 나올때까지 반복, 최종 dicelist 출력
import random as rd
dicelist=[]
def dice():
    return rd.randrange(1,7) #1에서 6사의 값 리턴
while True: #계속반복이니 무한루프인 true로 설정
    temp1, temp2 = dice(), dice() 
    dicelist += (temp1, temp2)
    print(dicelist)
    if temp1 != temp2:
        break 
#같이풀기 
import random as rd
def dice():
    return rd.randrange(1,7) #1에서 6사의 값 리턴
dicelist=[] #list 만들기
for i in range(3): #주사위 세번 반복해야 함. 이걸 dicelist 즉, temp1, temp2에 넣음
    temp1, temp2 = dice(), dice() 
    while temp1 == temp2: 
        temp1, temp2 = dice(), dice() #같으면 다시 반복하기~
    print(temp1,temp2) #다이스 결과값  출력
    dicelist.append(temp1)
    dicelist.append(temp2) #를 출력한다. 
    #근데 얘네가 같은지?를 물어봐야 함 -> while

'3. > Python' 카테고리의 다른 글

dictionary 복습  (0) 2025.01.07
module: datatime, tkinter, OS, 사용자 정의(Tuple)  (0) 2025.01.02
List  (0) 2024.12.31
내장함수, math module, 사용자 정의 함수  (0) 2024.12.30
string methods  (0) 2024.12.24