아하
  • 토픽

  • 스파링

  • 잉크

  • 미션


디지털·가전제품

멋진참고래265

멋진참고래265

파이썬 관련된 질문 있습니다!!!!

이거 파이썬 읻데요,

for 반복문을 사용하여 어떻게 구할 수 있나요?🥺🥺🥺 도와주세요

12의 약수를 구해야합니다. 😱😱😱😱

2개의 답변이 있어요!

  • 성실한따오기76

    성실한따오기76

    파이썬을 배우시면서 반복문을 익히시는 거로 보이는데요, 문자열 포맷팅으로 f-string까지 쓰시고 잘했으나 약간의 수정이 필요해보여요.

    먼저 프린트문에서 약수를 뽑아내셔야 하는데 따로 n을 빼주지 않으셔서 약수가 나오지 않으셨고, end부분을 한칸 띄우신 건 구별을 하기 위함이라고 보여지는데, 매번 12의 약수라는 말이 나오니 출력부분에서 가독성이 떨어져보입니다.

    따라서 저 부분에서 조금만 수정해본다면

    num = int(input("정수 입력>>> "))


    for n in range(1,13):

    if num%n==0:

    print(f"{num}의 약수 {n}", end="\n")

    이런식으로 써서 반복마다 해당하는 약수 n을 뽑아내고 end쪽에서 한 줄 씩 띄어 가독성을 올릴 수 있겠습니다.

    최대한 작성자님의 코드를 살리는 측면으로 수정해봤고, 여기서 좀 더 제 나름대로 깔끔하게 수정을 해본다고 하면

    try:

    num = int(input("정수 입력>>> "))

    if num <= 0:

    print("양의 정수를 입력해주세요.")

    else:

    print(f"{num}의 약수: ", end="")

    for n in range(1, num + 1):

    if num % n == 0:

    print(n, end=" ")

    except ValueError:

    print("유효한 정수를 입력해주세요.")

    이런 식으로 써보는게 좋겠습니다. 입력하는 사람이 정수만을 입력한다는 보장도 없거니와 숫자가 아닌 다른 문자를 입력하게 된다면 에러가 뜰텐데 그것보다는 try - except문을 활용하시는게 좋습니다.

    코딩테스트를 해보시면 어느정도 감이 잡히시겠지만 아직 파이썬을 익히시는 단계이기에 전부 이해하려고 하지 마시고 이런 방법도 있겠구나 생각해보시는 것도 좋을 것 같습니다.

    혹시라도 코드보시고 설명이 필요하시다면 따로 코멘트 드리겠습니다.

  • 탈퇴한 사용자

    탈퇴한 사용자

    글쎄요 divisors라는 빈 리스트 하나 만들고 1~12 안에서 12%i가 0일 때마다 divisors.append(i)함수 쓰시고 나중에 divisors 리스트요소를 print하시면 될거같습니다

    divisors = []

    for i in range(1, 13):

    if 12 % i == 0:

    divisors.append(i)

    print(divisors)