임베디드/라즈베리파이

라즈베리파이 파이썬 함수

마달랭 2024. 10. 16. 10:42
반응형

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

 

 

728x90
반응형