print()
출력 함수로 ,(콤마) 를 이용해 여러 데이터를 출력할 수 있다
python은 세 가지 방법으로 문자열 포매팅이 가능하다.
예시 코드
if __name__ == "__main__":
print(10)
print(10, 20, 30)
print(10, "hello", 20)
n = 12
print("SSAFY {}th Fighting!".format(n))
print(f"SSAFY {n}th Fighting!")
print("SSAFY %dth Fighting!" %n)
출력
10
10 20 30
10 hello 20
SSAFY 12th Fighting!
SSAFY 12th Fighting!
SSAFY 12th Fighting!
print는 기본적으로 줄바꿈을 지원한다.
만약 줄바꿈이 아닌 공백을 기준으로 한 줄에 출력을 진행하고 싶다면 매개변수로 end=' '를 추가해 주면 된다.
예시 코드
if __name__ == "__main__":
s = 'Hello'
e = 'World!'
print(s)
print(e)
print(s, e)
print(s + e)
print(s, end=' ')
print(e, end=' ')
출력
Hello
World!
Hello World!
HelloWorld!
Hello World!
end=는 공백뿐만 아니라 입력된 모든 값이 print한 내용 뒤에 붙게 된다.
input()
기본적으로 한번에 하나의 데이터만 입력 가능하다.
입력된 데이터는 모두 str 타입이다. ( map() 이용해서 여러 data 형 변환이 가능하다. )
예시 코드
if __name__ == "__main__":
s = input()
n = int(input())
print(s, type(s))
print(n, type(n))
a, b = input().split()
c, d = map(int, input().split())
print(a, b, type(a), type(b))
print(c, d, type(c), type(d))
lst = list(map(int, input().split()))
print(*lst, type(lst))
출력
5
5
5 <class 'str'>
5 <class 'int'>
5 10
5 10
5 10 <class 'str'> <class 'str'>
5 10 <class 'int'> <class 'int'>
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 <class 'list'>
참고
C++의 입출력 버퍼를 제거하는 것과 같이 파이썬에서도 빠른 입출력을 위한 기능이 있다.
ios::sync_whit_stdio(0);
cin.tie(0);
cout.tie(0);
예시 코드
import sys
if __name__ == "__main__":
s = sys.stdin.readline().rstrip()
n = int(sys.stdin.readline())
print(s, type(s))
print(n, type(n))
a, b = sys.stdin.readline().split()
c, d = map(int, sys.stdin.readline().split())
print(a, b, type(a), type(b))
print(c, d, type(c), type(d))
lst = list(map(int, sys.stdin.readline().split()))
print(*lst, type(lst))
출력
1
2
1 <class 'str'>
2 <class 'int'>
1 2
1 2
1 2 <class 'str'> <class 'str'>
1 2 <class 'int'> <class 'int'>
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 <class 'list'>
해당 메서드를 단일로 사용할 경우 개행문자까지 포함되므로 .rstrip()을 통해 개행문자를 제거해 주어야 한다.
ord, chr
파이썬은 일반 문자열이 기본적으로 유니코드를 사용한다.
Python은 유니코드를 지원하여 글자가 깨지지 않는다.
- ord(문자) : return : 유니코드 숫자값
- chr(유니코드) : return : 문자
예시 코드
if __name__ == "__main__":
print(ord('A'))
print(ord('괡'))
print(chr(65))
print(chr(97))
출력
65
44321
A
a
abs, pow
해당 부분은 타 언어와 유사도가 높다.
- abs(값) : return : 절대값
- pow(value, 승수) : return : value 의 승수 값
예시 코드
if __name__ == "__main__":
print(abs(-4))
print(abs(-85))
print(pow(2,5))
print(pow(3,3))
출력
4
85
32
27
index()
특정 값을 찾아서, index 값을 리턴
값이 없다면 index error가 출력된다.
in 을 이용하여 내부에 값이 있는지 먼저 확인하자.
예시 코드
if __name__ == "__main__":
a = [ 1,2,3 ] #list
b = ( 1,2,3 ) #tuple
print( a.index(2) )
print( b.index(3) )
출력
1
2
예시 코드
if __name__ == "__main__":
a = [ 1,2,3 ] #list
b = ( 1,2,3 ) #tuple
print( a.index(2) )
print( b.index(4) )
출력
1
Traceback (most recent call last):
File "main.py", line 6, in <module>
print( b.index(4) )
ValueError: tuple.index(x): x not in tuple
예시 코드
if __name__ == "__main__":
a = [ 1,2,3 ] #list
b = ( 1,2,3 ) #tuple
print( a.index(2) )
if 4 in b: print( b.index(4) )
else: print('Not found')
출력
1
Not found
count()
List에 들어있는 값을 쉽게 Counting 가능 없으면 0이 출력된다.
예시 코드
if __name__ == "__main__":
a = [ 1,2,3 ] #list
b = ( 1,2,3 ) #tuple
print( a.count(1) )
print( b.count(10) )
출력
1
0
max, min
max값과 min값을 쉽게 구할 수 있다.
C++과 달리 Tuple / List 모두 사용 가능하다. (C++은 별도의 헤더파일을 include해주어야 한다.)
예시 코드
if __name__ == "__main__":
a = [ 1,2,3 ] #list
b = ( 1,2,3 ) #tuple
#dictionary
c = { "num1" : 1, "num2" : 2 }
print( max(a) )
print( min(b) )
print( max( list(c.values()) ) )
출력
3
1
2
슬라이싱
List / Tuple 특정 범위의 객체 새롭게 생성
- a[ 시작부터 : 전까지 : Step ]
- [ 3 : ] → 3부터 끝까지
- [ 1:5:2 ] → 1부터 4까지 1칸 건너뛰기
- [ :4 ] → 처음부터 3까지
- [ : ] → 전부
슬라이싱은 깊은 복사를 지원한다.
보통 파이썬에서 이미 선언된 자료형을 =을 통해 다른 변수에 전달해 준다면 얕은 복사가 된다.
예시 코드
if __name__ == "__main__":
a = [1, 2, 3]
b = a
b[0] += 5
print(a[0])
출력
6
하지만 슬라이싱을 통해 [:]로 전달해 주면 기존 리스트를 참조하지 않는다.
예시 코드
if __name__ == "__main__":
a = [1, 2, 3]
b = a[:]
b[0] += 5
print(a[0])
출력
1
'임베디드 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이 파이썬 제어문 (0) | 2024.10.16 |
---|---|
라즈베리파이 파이썬 자료형 (0) | 2024.10.16 |
라즈베리파이 파이썬 기초 (2) | 2024.10.16 |