for dan in dans:
에서 사용된 for ... in ... 구문을 좀 더 자세히 설명하면 다음과 같습니다.
for aaa in 집합_변수
for ... in ... 구문에서 사용되는 '집합_변수'는 리스트, 튜틀, 문자열 등이 됩니다.
예를 들어 '집합_변수'가 'abcde'라면 변수 aaa는 'a', 'b', 'c', 'd', 'e'의 값을 가지고 5번 반복됩니다.
만약 '집합_변수'가 [10, 20, 30, 40, 50]인 리스트라면 aaa는 10, 20,30,40,50의 값을 가지면서 반복되구요.
튜플도 리스트와 거의 같은 식으로 된다고 보면 됩니다.
질문하신 프로그램에서 dans 대신 len(dans)-1 로 하면
Traceback (most recent call last):
File "C:/Users/user/AppData/Local/Programs/Python/Python37-32/aaa.py", line 6, in <module>
for dan in len(dans)-1:
TypeError: 'int' object is not iterable
과 같은 오류가 발생하는 데 이는 len(dans)-1 이 하나의 정수를 의미하는 것으로 정수는 for in 구문에서 사용할 수 없습니다.
정리하면 for in 구문에서는 in 다음에는 반복 루프를 수행할 수 있는 문자열, 리스트, 튜플, 딕셔너리 등이 와야 합니다.^^