입출력과 데이터타입, 라이브러리(모듈)

송한솔·2023년 5월 23일
0

파이썬

목록 보기
3/16

파이썬의 입출력 - input(), print()

  • 기본 파이썬 환경에서 사용할 수 있는 함수
  • 파이썬 프로그램의 유일한 입출력 방식은 아닙니다.
  • input(), print()은 CLI환경에서 출력할 수 있는 함수
    대표적인 CLI환경 : 터미널(Terminal), 명령프롬프트(cmd)

print(*values, sep=, end=)

함수 설명에 * 또는 ...가 있으면 계속 넣을 수 있다는 뜻

  • 무제한으로 넣을 수 있습니다.
  • 때문에 다음 인자를 넣어주려면 매개변수 명을 지정합니다.
# 출력함수 print의 사용 방법
# print(*values) 출력할 값 인자를 원하는 만큼 입력하기
# *values? = 무한으로 값을 넣을 수 있다.
print(1,2,3,4,5,6) # 1 2 3 4 5 6
print(1,2,3,4,5,6, 'a', 'b', 'c', 'e', [1, 2, 3]) # 1 2 3 4 5 6 a b c e [1, 2, 3]


# print(*values, sep=) 값 사이에 구분자(seperator) 지정 기본은 ' '
# sep = 구분자(seperator)
print(1,2,3,4,5,6) # print(1,2,3,4,5,6)
print(1,2,3,4,5,6, sep='') # 123456
print(1,2,3,4,5,6, sep='/') # 1/2/3/4/5/6


# print(*values, sep=, end=) 출력 마무리에 붙일 문자. 기본 지정은 '\n'(줄바꿈)
# end = escape

print(1,2,3,4,5,6) # 1 2 3 4 5 6
print(1,2,3,4,5,6, end = 'n') # 1 2 3 4 5 6n 
# => print의 마지막에 end에 'n'으로 설정된 데이터를 넣어줍니다.

# 체크할 점
print(1,2,3,4,5,6) # 1 2 3 4 5 6n1 2 3 4 5 6   =>   ??

# 여기서 print(1,2,3,4,5,6)을 출력해 보면
# 위에 출력한 print(1,2,3,4,5,6, end = 'n')과 합쳐져서
# 1 2 3 4 5 6n1 2 3 4 5 6 이 출력되는 것을 확인할 수 있습니다
# 이는 end의 기본값이 \n(줄바꿈)으로 설정되어 있어서 그렇습니다
# 상단 print(1,2,3,4,5,6, end = 'n')에서
# end에 \n이 아닌 n으로 들어가서 줄바꿈이 안되고 있습니다.
# sep의 기본값이 ' ' 로 공백이 한칸 설정되어 있는 것과 같은 이유입니다.

# 여러가지 특수문자
print('a\tb') # a       b  => \t => TAB과 같은 기능
print('a\\b') # a\b
print('Spencer\'s') # Spencer's

# print할때 문자 반복 사용
print('=' *20) # ====================

format()

  • 문자열에 {}로 표시한 곳에 데이터를 넣어 포맷팅해줍니다.
  • 문자열의 출력 양식을 예쁘게 꾸밀 수 있습니다.
# format을 통해 변수 값을 문자열에 넣기
# => 문자열의 전용 함수
student = "김OO"
school = "아이씨뱅큐"
principal = " 스펜서"

# 기본 사용방법
text = "{}{}{}"
text = text.format(student, school, principal)
print(text) # 김OO아이씨뱅큐 스펜서
# => text = "{}{}{}".format(student, school, principal)과 같은 상황

text = "안녕하십니까 {} 학부모님 저는 {} 교장 {}입니다."
text = text.format(student, school, principal)
print(text) # 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장  스펜서입니다.

# => 그러나 보통 이런식으로 사용하지 않음


# 변수의 기본 사용 방법 => 주로 사용하는방법
print("안녕하십니까 {} 학부모님 저는 {} 교장 {}입니다.".format(student, school, principal))
# 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장  스펜서입니다.


# (예습) 나중에 배울 반복문과 학생 리스트를 함께
print('=' * 20)
students = ["김OO", "이OO", "박OO", "곽OO"]
school = "아이씨뱅큐"
principal = "스펜서"
text = "안녕하십니까 {} 학부모님 저는 {} 교장 {}입니다."

for student in students:
    print("안녕하십니까 {} 학부모님 저는 {} 교장 {}입니다.".format(student, school, principal))
# 반복문이 실행됩니다.
# ▼    
# 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장 스펜서입니다.
# 안녕하십니까 이OO 학부모님 저는 아이씨뱅큐 교장 스펜서입니다.
# 안녕하십니까 박OO 학부모님 저는 아이씨뱅큐 교장 스펜서입니다.
# 안녕하십니까 곽OO 학부모님 저는 아이씨뱅큐 교장 스펜서입니다.


# {0} {1}과 {변수명1} {변수명2}를 활용
student = "김OO"
school = "아이씨뱅큐"
principal = " 스펜서"

text = "안녕하십니까 {0} 학부모님 저는 {1} 교장 {2}입니다. {0}이가 우수한 성적을 거두었습니다."
print(text.format(student, school, principal))
# 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장  스펜서입니다. 김OO이가 우수한 성적을 거두었습니다.
# 보면서 알 수 있듯이 자바스크립트의 배열과는 비슷하지만 조금 다른 개념입니다.
# 배열의 인덱스 번호보다는 넣을 데이터의 순서번호에 가깝게 보입니다.

# 매개 변수 할당해서 사용하기
student = "김OO"
school = "아이씨뱅큐"
principal = " 스펜서"

text = "안녕하십니까 {name} 학부모님 저는 {b} 교장 {c}입니다."
# print(text.format(student, school, principal)) 이러면 에러가 발생하는것을 볼 수 있습니다
print(text.format(name = student, b = school, c = principal)) # 이렇게 할당해 주어야 합니다.
# 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장  스펜서입니다.

student = "김OO"
school = "아이씨뱅큐"
principal = " 스펜서"

text = "안녕하십니까 {name} 학부모님 저는 {school} 교장 {teacher}입니다.
print(text.format(name = student, school = school, teacher = principal))
# 안녕하십니까 김OO 학부모님 저는 아이씨뱅큐 교장  스펜서입니다.

input()

  • input()으로 데이터를 받으면 무조건 str데이터가 생성된다.
    데이터의 변환이 필요하다면 함수를 이용해야 합니다.
  • 숫자 데이터가 필요하다면 input() -> input() 또는 float()을 이용
  • 리스트가 필요하다면 input() -> .split()
# 입력 함수 input()
# 기본 사용 방법
name = input("이름을 입력해주세요 : ") # 사용자의 입력 대기 => 엔터를 누른 순간 값 반환
print("내 이름은", name, type(name))
# 내 이름은 (입력한 이름) <class 'str'>


# 숫자를 입력 -> 형 변환
age = int(input("나이를 입력 : "))
print(age, type(age)) # str -> int
# 11 <class 'int'>

# 여러 개를 입력 -> 문자열 함수 .split()
basket = input("구매한 물품 목록 : ")
print(basket, type(basket))
# '바나나 사과 복숭아 코코넛 우유' <class 'str'>
# 여러개를 입력해도 받아들일 수 없음

basket = input("구매한 물품 목록 : ").split()
print(basket, type(basket))
# '바나나 사과'를 입력한다면
# ['바나나', '사과'] <class 'list'>

basket = input("구매한 물품 목록 : ").split(',')
print(basket, type(basket))
# '바나나,사과'를 입력한다면
# ['바나나', '사과'] <class 'list'>
# 이를 통해 .split()의 기본 값은 ' '(공백한칸)임을 알 수 있습니다.


# [팀] 여러 숫자를 입력 -> 문자열 함수 .split()
# -> 리스트 각 value에 대해서 형변환 map(int, 리스트) ->
score = input("국가시험 점수는 : ").split()
print(score)
# ['90', '100', '80']

# map 사용
score = list(map(int, input("국가시험 점수는 : ").split()))
print(score)

파이썬의 모듈 참조

  • 모듈
    기능이 구현된 파이썬 파일
    다른 파이썬 파일에서 이를 참조하여 기능을 사용할 수 있습니다.
  • 참조를 위한 대표적인 문법 예시
    import module_name
    from module_name import 변수명 또는 함수명
    as로 별명을 지어줄 수도 있다.

파이썬 표준 라이브러리(PSL)

  • 파이썬의 장점 : 많은 라이브러리
  • 규모 : 라이브러리 >= 패키지 >= 모듈
    1개의 모듈을 라이브러리로 보는 경우도 있습니다.
  • 표준 라이브러리 : 기본 파이썬이 설치되면서 사용이 가능해지는 라이브러리
  • 오늘 배울 표준 라이브러리
    time, math, random, sys

모듈 참조하기

# 모듈 참조 import module_name
import random
import math, time

print(math.pi) # 3.141592653589793 => 원주율 출력
print(random.random()) # 0~1의 랜덤한 숫자 출력


# 모듈 참조 from module_name
from random import random as rd # as ~~ => 별칭 만들기
from math import pi, cos, log2
# => from ... import ...의 장점 예시처럼 math없이 바로 호출할 수 있음
print(pi) 
print(rd())

0개의 댓글