아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
영리한안경곰162
영리한안경곰16220.10.20

파이썬 코딩 질문입니다 매개변수 쪽

#1015-42.py

# two integer def function

import random

def add() :

#1 add

z = x + y

print("%d + %d = %d" % (x,y,z))

def compare() :

#2 compare

if x > y :

print("%d > %d" % (x,y))

elif x < y :

print("%d < %d" % (x,y))

else :

print("%d = %d" % (x,y))

def loopsum() :

#3 sum

#x = random.randrange(0,100)

#y = random.randrange(0,100)

if x > y :

z = x

x = y

y = z

hap = 0

for i in range() :

hap += i

print("%d ~ %d sum = %d" % (x,y,hap))

#main

while True :

x = random.randrange(0,100)

y = random.randrange(0,100)

print("--------------")

print(" 1.add")

print(" 2.compare")

print(" 3.sum")

print(" 4.exit")

print("--------------")

n = input("n : ")

n = int(n)

if n ==1 : add()

elif n == 2 : compare()

elif n == 3 : loopsum()

elif n == 4 :

print("end ----")

break

else :

continue

이대로 돌렸을경우 1 과 2를 눌렀을때엔 잘나오는데 3번 loopsum을 돌리면 안됩니다. 매개변수를 직접 넣어주면 되긴하는데, 1번이랑 2번은 잘되는데 왜 3번만 안되는지 궁금합니다.

55글자 더 채워주세요.
답변의 개수3개의 답변이 있어요!
  • 이렇게 수정해 보세요

    def loopsum() : #3 sum x = random.randrange(0,100) y = random.randrange(0,100) if x > y : z = x x = y y = z hap = 0 for i in range(x,y+1) : hap += i print("%d ~ %d sum = %d" % (x,y,hap))

    그리고 python은 indentation이 중요한 언어로, 질문주실때도 source형태로으 포멧으로(편집기 제일 마지막 아이콘)질문 주시면 감사하겠습니다.

    제가 수정한 곳은 range부분만 수정을 했어요 그리고 마지막에 +1을 한 이유는 range의 경우 마지막 숫자는 제외가 되기 때문에

    range(1,5)

    면 1,2,3,4까지만 합이 구해집니다. 따라서 1,2,3,4,5까지를 포함하기 위해서 마지막에 +1을 하였습니다.

    감사합니다.


  • 안녕하세요,

    loopsum 함수 중 range 함수에 인자값이 없으므로 에러가 발생합니다.

    for i in range() :

    x와 y의 숫자만큼 1씩 더하는 목적이시라면...

    for _ in range(x): hap += 1 for _ in range(y): hap += 1

    이런식의 코드가 되어야 하지 않을까 싶습니다..

    더불어 코드 질문 올리실 때는 에디터 중 </> 버튼으로 코드 입력 영역을 만들고, 그 안에 붙여넣기 하시면 문제 파악이 쉽습니다.

    감사합니다.


  • def loopsum() : #3 sum x = random.randrange(0,100) y = random.randrange(0,100) if x > y : z = x x = y y = z hap = 0 for i in range(x,y) : hap += 1 print("%d ~ %d sum = %d" % (x,y,hap))

    이렇게 해서 실행해보세요 ,아마도 잘 될거라 예상합니다

    혹 잘 안된다면 저의 컴퓨터에 파이썬 설치를 안해서

    그냥 소스보고 수정을 해본거라

    수정의 큰 맥락만 알려드리자면 x , y 변수에 랜덤 넣는 명령문에 # 있던거 빼서 정상동작하게 한것이고

    for 문에 range 괄호안에 변수가 빠져있어서 넣었습니다