함수가 리턴값이 존재하지 않을 경우, 변수에 대입하면 None를 가리킨다.
def myPrint(s):
print(s+s)
a = print("Hi")
print (a)
>>> None
인자의 개수를 동적으로 사용하고 싶다면 * 을 사용한다.
def sum_many(*nums):
sum = 0
for num in nums:
sum += num
return sum
print (sum(1, 2, 3, 4))
>>> 10
print (sum(5, 5))
>>> 10
파이썬에서 변수는 다양한 scope 를 갖는다
Local Scope
현재 실행중인 코드 블럭 내에서만 존재하는 범위
Enclosing Scope
지역 범위의 한 단계 위 범위
Global Scope
최상단에 위치한 범위
Built-in Scope
모든 것을 담고 있는 범위 (ex. print())
변수의 scope 는 위 순서대로 우선순위를 갖는다.
global
global var 과 같이 변수명과 함께 사용되며 선언된 변수는 코드 전역적으로 공유된다.
아래 코드에서 a 변수와 b 변수는 p 함수를 호출할 경우 둘 다 global 이름 공간에 할당되어 이후 다른 곳에서 자유롭게 해당 값을 global scope로 사용할 수 있다.
a = 3
def p():
global b
b = 10
print(a)
p()
>>> 3
print (b)
>>> 10
nonlocal
nonlocal 을 사용하면 해당 블럭보다 상위에 있는 변수를 해당 블럭에서 사용할 수 있게 된다.
global 과는 달리 이미 선언했던 변수명만 사용가능하며, global scope 에 있지 않은 변수만 사용가능하다.
var = 10
def fun1():
var = 4
def fun2():
nonlocal var
var = 5
fun2()
print(var)
fun1()
>>> 5
print (var)
>>> 10---
input() 은 파이썬 자료형에 맞게 값을 읽는다. (따라서, 문자열은 따옴표로 감싸야 에러가 나지 않는다.)
raw_input() 을 사용하면 모든 값을 문자열로 읽는다.
print() 는 연속된 문자열을 출력할 시 '+' 로 명시하거나 그냥 이어 붙여도 상관없다. (ex. print("a" + "b") == print("a" "b") // "ab")
print 에 , 를 사용하면 문자들을 공백으로 구분하여 출력할 수 있다. (ex. print("a", "b") // "a b")
open() 을 통해 파일을 "r", "w", "a" 모드로 열 수 있다.
파일 읽기
readline() : 한 줄만 읽어와 문자열로 반환
readlines() : 파일의 모든 내용을 읽어와 줄 단위로 끊어 리스트로 반환
read() : 파일의 모든 내용을 문자열로 반환
파일 쓰기
write()
파일 포인터 함수
seek(num) : num 번째 위치로 파일 포인터를 이동시킴
tell() : 현재 파일 포인터의 위치 반환