강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của djaghdyd1233655
djaghdyd1233655

câu hỏi đã được viết

[Python thực tế] Web crawling và phân tích dữ liệu: Phân tích giá trị chuyển nhượng của các cầu thủ bóng đá trên toàn thế giới

Bùm~! Cuối cùng, thu thập dữ liệu thực tế

강의 10:00 분쯔음 player 에 값 넣기

Viết

·

419

0

안녕하세요 

for info in player_info:

       player = info.find_all("td")

이 부분이 이해가 안가는 것이 있어서요.

사실 문법 문제인것같은데..

for 반복문을 돌면서 player에 값을 대입하면 결국 마지막 info만 들어가게 되지않나요? 즉 25번째 선수의 정보만 player 배열에 값이 들어가게되지 않나요?

+= 를 사용하지 않았는데 왜 player 배열에 각 선수 정보들이 누적되서 들어가있는지 궁금합니다!

감사합니다.

python웹-크롤링pandasbeautifulsoup

Câu trả lời 1

1

jaygil님의 프로필 이미지
jaygil
Người chia sẻ kiến thức

안녕하세요?

질문 감사드립니다. 

for 반복문은 반복되는 요소들을 "하나씩" 꺼내서 실행합니다. 그러니까, 마지막 요소(info)만 들어가는 것이 아니라 첫번째 요소(info)부터 차례차례 반복되면서 명령문을 실행하고 다 끝나면 다음 두번째 요소가 나와서 처리하고...하는 식으로 반복됩니다. 

파이썬 for 반복문에 대한 사용법을 인터넷 검색을 통해서 한 번 확인해보시면 좋을 것 같습니다. ^^;

다른 질문이 또 생기면 언제든지 질문해주세요~!

감사합니다. 

djaghdyd123님의 프로필 이미지
djaghdyd123
Người đặt câu hỏi

player[0] 에 순위가 [ 1, 2, 3, ... 25] 로 들어가있는데

제 생각에는 아래와같이 실행하면

for info in player_info:

       player = info.find_all("td")

첫번째 info (음바페 선수 정보) 부터 시작해서 player에 값이 대입되는데.

첫번째 info 가 끝나고 두번째 info(두번째 선수) 값을 다시 player에 대입하면 

기존 음바페 선수정보가 있는 것에 더해서 추가되는 것이아니라 덮어씌어지는 것이 아닌가해서 질문을 드렸습니다.

즉 마지막에는 player[0] = 25 하나밖에없는...

제가 뭘 놓치고있나요 ㅠㅠ..

jaygil님의 프로필 이미지
jaygil
Người chia sẻ kiến thức

아, 어떤 부분을 놓치고 계신지 알 것 같습니다. 

마지막에는 25가 들어가는 것이 맞습니다!

그런데, 우리는 반복을 하면서 계속 출력을 하고 그때마다 저장을 하는 것입니다. 

다음의 예제를 한 번 볼까요?

첫 번째 예제에서 a를 출력하면 각 요소를 제곱한 값들이 하나씩 차례로 모두 출력이 되지요?

그런데, 두 번째 예제를 보면, 마지막 값인 25만 출력이 됩니다. 반복이 다 끝나고 나서 출력을 하면 마지막 값만 나오는 겁니다. print()명령문의 띄어쓰기 위치를 확인해보세요!

 

혹시 다른 부분이 궁금한 거라면 다시 알려주세요..^^

djaghdyd123님의 프로필 이미지
djaghdyd123
Người đặt câu hỏi

아.. 그런거였군요 ㅎㅎ 가르쳐주셔서 감사합니다

Hình ảnh hồ sơ của djaghdyd1233655
djaghdyd1233655

câu hỏi đã được viết

Đặt câu hỏi