Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘 #자료구조 #리스트 #스택 #큐 #트리
- authorizeUrls
- python manage.py migrate
- authorizeUrls missing
- 파이썬 #기타제어흐름도구 #제어문 #함수 #FOR문
- configureGlobal
- 루비
- character_set
- MySQL
- 자바
- 스프링
- Rails
- WebSecurityConfigurerAdapter
- 알고리즘 #프로그래머스 #K번째수 #자바 #JAVA #정렬알고리즘 #정렬
- 알고리즘
- Java
- 개발자
- AuthenticationManagerBuilder
- 파이썬 #자료형 #python
- 스프링시큐리티
- Spring
- ruby
- ruby-prof
- 정적리소스
- Ruby on Rails
- springsecurity
- authorizeRequests
- 프로그래머스
- minitest
- 정렬
Archives
- Today
- Total
손만이의 개발노트
제어문 본문
제어문참고글 : https://docs.python.org/ko/3/tutorial/controlflow.html
4. 기타 제어 흐름 도구 — Python 3.7.4 문서
docs.python.org
이번 시간에는 제어문 중 for문과 함수의 특이점을 알아보고자 합니다.
For문
파이썬의 for문은 일반적인 이터레이터 사용 시
>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
이런 모양으로 사용이 가능합니다.
다만 주의할 점은 묵시적으로 사본을 만들지 않으므로
>>> for w in words: # Loop over a slice copy of the entire list.
... if len(w) > 6:
... words.insert(0, w)
...
>>> words
이런식으로 코드를 사용하는 경우 무한루프에 빠집니다.
하여 슬라이스 표기법으로 표현하는 경우 묵시적으로 사본을 만들기에
>>> for w in words[:]: # Loop over a slice copy of the entire list.
... if len(w) > 6:
... words.insert(0, w)
...
>>> words
['defenestrate', 'cat', 'window', 'defenestrate']
이런식으로 표기해주어야 합니다.
함수
함수의 실행은 함수의 지역 변수들을 위한 새 심볼 테이블을 만듭니다.
좀 더 구체적으로, 함수에서의 모든 변수 대입들은 값을 지역 심볼 테이블에 저장합니다;
반면에 변수 참조는 먼저 지역 심볼 테이블을 본 다음, 전역 심볼 테이블을 본 후,
마지막으로 내장 이름들의 테이블을 살핍니다. 그래서, 참조될 수는 있다 하더라도,
전역 변수들과 둘러싸는 함수의 변수들은 함수 내에서 직접 값이 대입될 수 없습니다
(전역 변수를 global 문으로 명시하거나 둘러싸는 함수의 변수를 nonlocal 문으로 명시하지 않는 이상).
함수 호출로 전달되는 실제 매개변수들 (인자들)은 호출될 때 호출되는 함수의
지역 심볼 테이블에 만들어집니다; 그래서 인자들은 값에 의한 호출(call by value)로 전달됩니다
(값은 항상 객체의 값이 아니라 객체 참조입니다).
1 함수가 다른 함수를 호출할 때, 그 호출을 위한 새 지역 심볼 테이블이 만들어집니다.
라는 인용문을 보면,
함수는 호출 시 같은명의 변수라도 가장 작은 단위인 지역->전역 순으로 변수를 참조합니다.
'Python' 카테고리의 다른 글
[django] sqlite3에 생성된 db조회 (0) | 2020.05.04 |
---|---|
[Python]아나콘다 간단 사용법 (0) | 2020.05.01 |
[Python]Json 직렬화/역직렬화 (0) | 2020.04.21 |
파이썬 기타 자료형 (0) | 2019.10.08 |
파이썬 기초 자료형 특징들 (0) | 2019.09.17 |