난 if else 이게 프로그래밍의 뼈대인줄알고
이거 잘쓰는게 중요한줄 알았는데
아닌가보네
형들 함 봐줄래?
#숫자 크기 순서대로 배열 정리하기
#배열의 두번째 인덱스부터 시작하여 좌측 인덱스 값이 더 클 경우 서로 자리를 바꾸며 소팅을 합니다
#자리수가 다른 정수값들 비교 시 소팅이 안됐던 점을 수정하였습니다
numbers=[]
while 1:
number=input("숫자를 입력하세요: ")
try:
int(number)
except:
break
intnumber=int(number)
numbers.append(intnumber)
print(numbers)
gaesu=len(numbers)
print("%d개의 숫자에 대하여 Sorting을 시작합니다" %gaesu)
import time
for i in range(1,gaesu):
if numbers[i-1]>numbers[i]:
while numbers[i-1]>numbers[i]:
numbers[i-1],numbers[i]=numbers[i],numbers[i-1]
i=i-1
if i <1:
break
else:
pass
print(numbers)
time.sleep(1)
이런식으로 코딩 방식은 문제가 있는건가?
까리한 함수들 쓰고 싶은데 아는게 읍다...ㅠㅠ
그냥 케바케지 무슨. if많이쓰면 극혐이라는거는, 0~4까지 순환하면서 출력한다고 할때 if(cnt==5) cnt=0; 이딴거 쓰지말고, cnt=cnt++ % 5 이런거 쓰라는겨.
평가해 달라는게 글쓴 목적인거 같아서 평가하자면 대충봐서는 if numbers[i-1]>numbers[i]: 이거 없어도 됨
1. 함수 한군데에서 두가지 일을 하고 있음. 배열을 생성하는 것과 배열을 정렬하는 것. 조또 별거 없는 작은 프로그램이라도 단위 작업으로 분리하는 습관을 들이지 않으면 나중에도 계속 그런식으로 일을 하게 된다. 그렇게 해서 땔까머가 되는거고.. 입력은 키보드에서 뱓을수도 있고 파일에서 받을 수도 있지.
2. 정렬하는 모듈을 떼어내면서 정렬 알고리즘과 정렬할지 결정하는 조건부분을 분리하도록 개선해봄. 두 element의 순서를 결정해주는 함수를 입력으로 받아서 구현을 유연하게 가져갈 수 있음.
형들 다들 고마워 특히 아나콘다형 상세한 어드바이스 감사 시간될때 형이 말한대로 바꿔서 다시 올려볼께 땡큐!!