파일 다루기

 

파일 읽기

저장할 변수명 = open("파일 이름", "모드")

변수명.close()

r : 파일을 읽기 전용 모드로 열기
w : 파일을 쓰기 모드로 열기 / 파일생성
a : 파일에 내용 추가하기 / 파일생성
t : 텍스트 모드로 파일 열기
b : 바이너리 모드로 파일 열기
r+ : 읽기+쓰기 모드, 덮어쓰기로 파일을 쓴다.
w+ : 읽기+쓰기 모드, 기존의 파일을 지우고 파일을 쓴다. / 파일생성
a+ : 읽기+쓰기 모드, 기존의 파일 끝에서부터 파일을 쓴다. / 파일생성

 

변수명.write("저장할 내용")

In [4]:
 f= open("test.txt", 'w') # 파일 열기  
 f.write("파이썬 월드")
 f.close() # 파일 닫기  
 # test.txt 파일이 생성됨 
 

with문 사용
-파일을 open하면 무조건 close()해야함
-with문을 사용하면 close()하지 않아도 with블록이 끝나면 자동으로 close해주어 편리함

with open("파일이름.txt", 'w') as 변수명:

In [6]:
with open("test2.txt", 'w') as f:
    f.write("파이썬 월드")
# test2.txt 파일이 생성됨
 

여러 개의 리스트를 한 줄에 쓰기
변수명.writelines("...\n...")

In [8]:
f=open("test3.txt", 'w')
f.writelines(["파이썬","배우기"])
f.close()
In [12]:
data="에 오신 것을 환영합니다."
f=open('test.txt', 'a') #파일에 내용 추가하기
f.write(data)
f.close()
#파이썬 월드에 오신 것을 환영합니다. -> 내용 저장됨 
In [3]:
#반복문을 이용하여 내용 추가 
n=0
f=open("test.txt", 'a')
while n<10:
    data= "%d 숫자"%n
    f.write(data)
    n=n+1
f.close()
In [4]:
#test파일에 이전 내용이 삭제되고 내용이 추가됨
n=0
f=open("test.txt", 'w')
while n<10:
    data= "%d 숫자"%n
    f.write(data)
    n=n+1
f.close()
 

 
 
 
문제1) 새로운 텍스트 파일 loop.txt를 생성하되, 이미 파일이 있는 경우 기존 파일의 내용을 추가한다.
1부터 100까지 한 칸씩만 띄우고 모두 한 줄에 저장한다.

 

1)

In [6]:
n=1
f=open("loop.txt", 'w')
while n<101:
    data="%d "%n
    f.write(data)
    n=n+1
f.close()
 

2)

In [8]:
n=1
f=open("loop.txt", 'w')
while n<101:
    data=str(n)+" "
    f.write(data)
    n=n+1
f.close()
 

   
 
파이썬에서 utf-8로 txt를 저장하기 위해서는 encoding="utf-8"를 사용한다.

In [25]:
f=open('test.txt', 'w', encoding="utf-8")
f.write("I have a dream, a song to sing\n\
To help me cope with anything\n\
If you see the wonder of a fairy tale\n\
You can take the future even\n\
if you fail I believe in angels\n\
Something good in everything")
f.close()
 

 
 
텍스트 파일 읽기
read() : 파일글자 읽기 / 모드 'r'
변수명.read()

readlines() : 한 줄씩 읽어 리스트로 반환하기
변수명.readlines()

readline() : 한 줄씩 부르기
변수명.readline()

In [26]:
f=open("test.txt", 'r', encoding="utf-8")
a=f.read()
print(a)
f.close()
 
I have a dream, a song to sing
To help me cope with anything
If you see the wonder of a fairy tale
You can take the future even
if you fail I believe in angels
Something good in everything
In [27]:
f=open("test.txt", 'r', encoding="utf-8")
a=f.readlines() #해당 위치에서 전체내용 행렬로 리스트 부르기 
print(a)
f.close()
 
['I have a dream, a song to sing\n', 'To help me cope with anything\n', 'If you see the wonder of a fairy tale\n', 'You can take the future even\n', 'if you fail I believe in angels\n', 'Something good in everything']
In [28]:
f=open("test.txt", 'r', encoding="utf-8")
a=f.readline() #해당 위치에서 한 줄씩 부르기 
print(a, end="")
a=f.readline()
print(a, end="")
a=f.readline()
print(a, end="")
a=f.readline()
print(a, end="")
a=f.readline()
print(a, end="")
a=f.readline()
print(a, end="")
f.close()
 
I have a dream, a song to sing
To help me cope with anything
If you see the wonder of a fairy tale
You can take the future even
if you fail I believe in angels
Something good in everything
 

replace("찾을값", "바꿀값",[바꿀횟수])

In [29]:
f=open("test.txt", 'r', encoding="utf-8")
i=0
while True:
    line=f.readline()
    if not line:
        break
    print(line)
    i=i+1
f.close()
 
I have a dream, a song to sing

To help me cope with anything

If you see the wonder of a fairy tale

You can take the future even

if you fail I believe in angels

Something good in everything
In [30]:
f=open("test.txt", 'r', encoding="utf-8")
i=0
while True:
    line=f.readline()
    if not line:
        break
    print(line.replace("\n", ""))
    i=i+1
f.close()
 
I have a dream, a song to sing
To help me cope with anything
If you see the wonder of a fairy tale
You can take the future even
if you fail I believe in angels
Something good in everything
 

파일 안 글자의 통계정보 출력하기
변수명.split() / len()

In [31]:
f=open("test.txt", 'r', encoding="utf-8")
contents= f.read()
word_list= contents.split(" ")
line_list= contents.split("\n")

print("총 글자 수 : ", len(contents)) #공백포함
print("총 단어의 수 : ", len(word_list))
print("총 줄의 수 : ", len(line_list))
 
총 글자 수 :  188
총 단어의 수 :  35
총 줄의 수 :  6

'Python' 카테고리의 다른 글

Python 기초05  (0) 2020.09.07
Python기초04_ 텍스트파일에서 특정단어를 원하는 단어로 바꾸기  (0) 2020.09.06
Python 기초3  (0) 2020.09.04
Python 기초2  (0) 2020.09.04
Python 기초1  (0) 2020.09.04
Python_03

함수

def 함수이름(매개변수 #1...):
    수행문1
    수행문2
    return <반환값>

In [2]:
def  calculate_rectangle_area(width, height):
    return width*height
rectangle_x= 10
rectangle_y= 20
area= calculate_rectangle_area(rectangle_x, rectangle_y)
print("사각형의 넓이 : ", area)
사각형의 넓이 :  200
In [6]:
def print_something(my_name, your_name):
    print("Hello {0}. My name is {1}".format(your_name, my_name)) # 0,1 생략가능

print_something("길동", "Python")
Hello Python. My name is 길동
In [9]:
def print_something_2(my_name, your_name="Python"): # 입력이 없을 시 Python
    print("Hello {0}. My name is {1}".format(your_name, my_name)) # 0,1 생략가능

print_something_2("길동", "JAVA")
print_something_2(my_name="길동")
print_something_2("길동")
Hello JAVA. My name is 길동
Hello Python. My name is 길동
Hello Python. My name is 길동

가변인수

In [1]:
#매개변수 개수가 2개 이상이면 정상 동작
def asterisk_test(a,b, *args):
    return a+b+sum(args)

sum_array= asterisk_test(1,2,3,4,5,6,7)
print(sum_array)
28
In [4]:
#매개변수 개수가 2개 이상이면 정상 동작
def asterisk_test(a,b, *args):
    return a+b+sum(args)

sum_array= asterisk_test(1,3,7)
print(sum_array)
11
In [5]:
#매개변수 개수가 2개 이상이면 정상 동작
def asterisk_test(*args):
    return sum(args)

sum_array= asterisk_test(1,3,7)
print(sum_array)
11
In [11]:
a=1
b=1
print( a is b)
print( a ==b)
a=300
b=300
print( a is b)
print( a ==b)
# -5부터 256까지의 정수값을 특정 메모리 주소에 저장한다.
True
True
False
True
Python_02

랜덤

In [11]:
import random 
coin= random.randrange(2) # 0,1 
print("동전던지기 게임 시작!")
if coin==0:
    print("동전은 뒷면")
else:
    print("동전은 앞면")
print("게임종료")
동전던지기 게임 시작!
동전은 앞면
게임종료
In [21]:
for i in range(10):
    print(random.randint(0,10), end=" ") 
8 10 8 7 10 3 8 3 0 4
In [8]:
import random
choice=random.choice([1,2,3])
print(choice)
choice=random.choice(["오전", "오후","저녁"])
print(choice)
2
오후
In [17]:
import random
options=(["왼쪽","중앙","오른쪽"])
computer_choice=random.choice(options)
user_choice= input("어디를 수비하시겠어요? (왼쪽, 중앙, 오른쪽) : ")

if(computer_choice==user_choice):
    print(computer_choice+ " : "+ user_choice)
    print("수비에 성공하였습니다. ")
else:
    print("패널티킥에 성공하였습니다. ")
패널티킥에 성공하였습니다. 

조건문

In [23]:
a=8
b=5
result = (a==8 and b==4)
print(result)
False
In [22]:
a=8
b=5
result= (a>7 or b>7)
print(result)
True

예제1)

나이를 입력 받아 다음의 분류에 따라 출력 내용을 다르게 한다.
(if-elif-else)문을 사용하여 프로그램을 작성하여 보자)
나이 10살 미만인 경우 : kid
나이 10살 이상 20살 미만인 경우 : student
나이 20살 이상인 경우 : adult

In [50]:
age=int(input("나이를 입력하세요. : ")

if age<10:
    print("당신은 kid 입니다.")
elif age<20:
    print("당신은 student 입니다.")
else:
    print("당신은 adult입니다.")
당신은 adult입니다.

range()

range(start=0, stop, step=1)

start = 시작값 stop = 종료값 step = 증가값

In [33]:
for i in range(5): #range(끝숫자)
    print(i, end=" ")
0 1 2 3 4
In [35]:
for i in range(1,10,2): #range(시작숫자, 끝숫자, 뛰어세기)
    print(i, end=" ")
1 3 5 7 9
In [36]:
array= [273, 32, 103, 57, 52]
for element in array:
    print(element)
273
32
103
57
52
In [52]:
array= [273, 32, 103, 57, 52]
for i in range(len(array)):
    print(str(i)+"번째 반복: " + str(array[i]))
0번째 반복: 273
1번째 반복: 32
2번째 반복: 103
3번째 반복: 57
4번째 반복: 52
In [44]:
array= [273, 32, 103, 57, 52]
for i in range(len(array)):
    print("{}번째 반복: {}".format(i,array[i]), end=" ")
    print("{%d}번째 반복: {%d}" %(i,array[i]))
0번째 반복: 273 {0}번째 반복: {273}
1번째 반복: 32 {1}번째 반복: {32}
2번째 반복: 103 {2}번째 반복: {103}
3번째 반복: 57 {3}번째 반복: {57}
4번째 반복: 52 {4}번째 반복: {52}
In [46]:
for i in reversed(range(10)):
    print(i, end=" ") 
9 8 7 6 5 4 3 2 1 0

break

In [49]:
for i in range(10):
    if i==5:
        break
    print(i,end=" ")
print()
print("Eno Of Program")
0 1 2 3 4 
Eno Of Program
In [11]:
mixlist = ['apple', 5, 'banana', 'grape', 3,8,6, 'melon']
for i in range(len(mixlist)) :
    if type(mixlist[i]) == str:
        print(mixlist[i], end=" ")
        print("type is string")
    else :
        print(mixlist[i], end=" ")
        print("type is integer")
apple type is string
5 type is integer
banana type is string
grape type is string
3 type is integer
8 type is integer
6 type is integer
melon type is string
python_01

변수 = 값을 담는 바구니
변수 = 저장할 값

In [1]:
x=100
print(x)
100
In [2]:
x=100
x=200
print(x)
200
In [3]:
x=100; y=200
print(x,y)
100 200
In [5]:
x=100; y=200; sum= x+y
print(sum)
300
In [6]:
name= "홍길동"  
address= '대구광역시 신암동 300'  
print(name)
print(address)  
홍길동
대구광역시 신암동 300
In [7]:
a=7
b=5
print(a+b)
print("a+b")
12
a+b
In [8]:
x=7; y=6
print(x+y)
x='7'; y='6'
print(x+y)
13
76

변수

In [10]:
import keyword 
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

변수 명명법

My new car
=> My_new_car => my_new_car: 헝가리안표기법
=> Mynewcar => myNewCar: 카멜식(낙타식)표기법

변수의 타입

print(type(변수명))

In [12]:
a=176
print(type(a))
<class 'int'>
In [13]:
print(type(179.8))
<class 'float'>
In [14]:
st= '키는 height'
print(type(st))
<class 'str'>

자료형

  • 정수형 : 양수, 정수
  • 실수형 : 소수점이 포함된 실수
  • 문자형 : 따옴표에 들어가 있는 문자형
  • 불린형 : 참/거짓

사칙연산

In [22]:
#주석은 샾(#) 기호 사용, 단축키: ctrl+'/'
print('25+30 :', 25+30) # 덧셈(+)
print('30-12 :', 30-12) # 뺄셈(-)
print('50*3 :', 50*3)  # 곱셈(*)
print('30/5 :', 30/5)  # 나눗셈(/)
print('7%5 :', 7%5)   # 나머지(%)
print('7//5:', 7//5)  # 몫연산자(//)
#print()에서 ,로 구분되면 한칸 띄운다 
25+30 : 55
30-12 : 18
50*3 : 150
30/5 : 6.0
7%5 : 2
7//5: 1

제곱 연산자

In [25]:
print('3^5:',3*3*3*3*3)
print('3^5:',3**5)
3^5: 243
3^5: 243

루트2를 ** 연산자를 사용해서 구해보자

In [27]:
print('sqrt(2) :', 2**0.5)
sqrt(2) : 1.4142135623730951
In [28]:
num1= 3.1**4.2
print(num1)
115.80281433592612
In [29]:
num2=2*5**2
print(num2)
50
In [31]:
a=1
a=a+1
print(a)
a +=1
print(a)
a +=2
print(a)
a +=2
print(a)
2
3
5
7
In [32]:
a=10
a=a-1
print(a)
a -=1
print(a)
a -=2
print(a)
a -=2
print(a)
9
8
6
4
In [33]:
print("정수를 입력하세요")
x= int(input()) # input() 입력을 문자열로 받음
print("입력한 정수는 ", x, "입니다.") 
정수를 입력하세요
입력한 정수는  5 입니다.
In [36]:
x= int(input(print("정수를 입력하세요"))) 
print("입력한 정수는 ", x, "입니다.") 
정수를 입력하세요
입력한 정수는  5 입니다.
In [37]:
x= int(input("정수를 입력하세요")) 
print("입력한 정수는 ", x, "입니다.") 
입력한 정수는  5 입니다.
In [39]:
number=2
print("number :", number)
number *=5
print("number :", number)
number -=4
print("number :", number)
number //=2
print("number :", number)
number %=2
print("number :", number)
number : 2
number : 10
number : 6
number : 3
number : 1

String 자료형

In [40]:
Tom= "Boy" 
bob= 'I am a boy'
print(Tom)
print(bob)
Boy
I am a boy
In [41]:
a='문장' 
b= "문장" 
c= '''여러 줄
문장''' 
d= """여러줄 
문장"""
In [42]:
print('"영수는 훌륭해" 선생님이 말씀하셨다')
"영수는 훌륭해" 선생님이 말씀하셨다
In [43]:
print("He's frien is my brother")
He's frien is my brother

String 형- 문자혈 병합

In [91]:
str10= "문자(열) " + "문자(열) " + "문자(열) " + "문자(열)" # (+) 덧셈은 문자열끼리 더한다 
print(str10)
문자(열) 문자(열) 문자(열) 문자(열)
In [53]:
start = '=' * 15
title = 'Python Programing'
finish = '=' * 15
print(start+title+finish)
print(start,title,finish)
===============Python Programing===============
=============== Python Programing ===============
In [50]:
str1= "Hello, "
str2= "Python"
stars= '****'
print(stars*5+str1+str2+stars*5)
********************Hello, Python********************
In [93]:
str7= "Hello Python"
r= "Hello Python"
print("Len of", str7, ":", len(str7)) # len: string의 길이를 출력하는 함수(가운데 공백 포함)
Len of Hello Python : 12
In [92]:
str3= 'mountain'
print("length of '"+str3+"' :", len(str3))
for n in range(len(str3)) : 
    print('str3[',n,'] = ', str3[n])
length of 'mountain' : 8
str3[ 0 ] =  m
str3[ 1 ] =  o
str3[ 2 ] =  u
str3[ 3 ] =  n
str3[ 4 ] =  t
str3[ 5 ] =  a
str3[ 6 ] =  i
str3[ 7 ] =  n
In [63]:
str3= 'mountain'
print("length of '"+str3+"' :", len(str3))
count =0
for ch in str3 :
    print('str3[',count,'] = ', ch)
    count +=1
length of 'mountain' : 8
str3[ 0 ] =  m
str3[ 1 ] =  o
str3[ 2 ] =  u
str3[ 3 ] =  n
str3[ 4 ] =  t
str3[ 5 ] =  a
str3[ 6 ] =  i
str3[ 7 ] =  n
In [69]:
tom= 'Tom is a good student'
print("새로 합성할 단어 : mood")
print(tom[2]+tom[1]+tom[1]+tom[-4]) # 오른쪽부터 시작하면 -
새로 합성할 단어 : mood
mood
In [71]:
greetin= 'Hello Python!'
greeting= 'J' # 한 글자만 바꾸는건 no ex)greeting[0]='J'
print(greeting)
J

slice : string의 일부를 취할 수 있음
Hello "Hello"[1:4] => "ell"

In [72]:
print("Hello"[1:4])
ell
In [90]:
str5= 'Hello'
print("length of '"+str5+"' :", len(str5))
for n in range(len(str5)) : 
    print('str5[',n,'] = ', str5[n])
length of 'Hello' : 5
str5[ 0 ] =  H
str5[ 1 ] =  e
str5[ 2 ] =  l
str5[ 3 ] =  l
str5[ 4 ] =  o

[:n] : 처음부터 n-1까지
[m:] : m번째 부터 string의 끝까지
[m: 문자열의 길이보다 큰값] : m번째부터 끝까지

In [81]:
string1 = "red apple"
string2 = "yello banana"
print(string2[:5]+ string1[3:])
yello apple
In [83]:
# 정수 <-> 실수 변환 
a= int(10.99)
b= int(10.3)
print(a,b, a+b)
10 10 20
In [84]:
a= 10 
b= float(a)
print(a,b, a+b)
10 10.0 20.0
In [85]:
a=10
b=3 
print(a/b)
3.3333333333333335
In [88]:
#문자형 => 숫자형간의 변환 
a= '76.3'
b= float(a)
print(a, b)
# print(a+b) #문자+숫자는 자료형이 불일치라서 안됨
76.3 76.3
In [3]:
#숫자형 =>문자형 변환 
a = b = 76.3
a = str(a)
b= str(b)
print(a+b)
76.376.3
In [4]:
a= int(10.3)
b= float(10.3)
c= str(10.3)

print(type(a))
print(type(b))
print(type(c))
<class 'int'>
<class 'float'>
<class 'str'>
In [17]:
#end="" : 줄 안바뀜
x=float(input('당신의 키를 입력하시오 : '))
print("당신의 키는 %.1fcm 입니다."%x) # 여러 개는 괄호추가 %(x,y)/ ,x,는 띄어쓰기 됨.
print("당신의 키는 {0:.1f}cm 입니다.".format(x)) # " {번호:자료형}   ".format(변수1, 변수2)
당신의 키는 180.0cm 입니다.
당신의 키는 180.0cm 입니다.
In [26]:
# 위의 코드를 수정해서 결과값은 정수로 소수점아래를 버린다.

x=float(input('당신의 키를 입력하시오 : '))
print("당신의 키는 %dcm 입니다."%x) 
print("당신의 키는 {0:d}cm 입니다.".format(int(x))) 
당신의 키는 188cm 입니다.
당신의 키는 188cm 입니다.
In [27]:
print("%d %d %d"%(1,2,3))
print("{}{}{}".format("a", "b", "c"))
1 2 3
abc

"~%자료형1 ~~"%(값1)

In [29]:
print("%s %s"%('one', 'two'))
print("%d, %d"%(1,2)) 
one two
1, 2
In [28]:
print("I eat %d apples"%3)
print("I eat %s apples"% 'five')
I eat 3 apples
I eat five apples
In [30]:
print("I love %s"%("meet"))
print("My thing is %dcm" %(180))
print("I get %c grade" %("A"))
print("%x마일 남았어" %(20)) #16진수
print("%e키로만 더 찌워야지" %(12345678)) #지수승으로표시 
print("%f키로만 더 뺴야지" %(0.005)) #소수점 표시(기본 6자리)
I love meet
My thing is 180cm
I get A grade
14마일 남았어
1.234568e+07키로만 더 찌워야지
0.005000키로만 더 뺴야지
In [2]:
print("제품: %s, 개당가격: %f$." %("Apple", 5.243))
number=3
day="Three"
print("사과를 %d개 먹음. I was sick for %s days" %(number,day))
제품: Apple, 개당가격: 5.243000$.
사과를 3개 먹음. I was sick for Three days
In [35]:
print("I'm {0} years old.".format(20))
I'm 20 years old.
In [36]:
print("제품: {0}, 가격: {1:.2f}$.".format("Apple", 5.243))
제품: Apple, 가격: 5.24$.

"{번호: 자료형 or 공백 or 번호만}".format{인수}

In [37]:
test= 'Hello {}'.format('Bob')
print(test)
Hello Bob
In [41]:
print("%10.3f"%5.94343)
print("%10.2f"%5.94343)
print("%-10.2f"%5.94343)
5.943
      5.94
5.94      
In [42]:
print("{0:<10s}".format("Apple")) #좌측정렬
print("{0:>10s}".format("Apple")) #우측정렬
Apple     
     Apple

초단위의 시간을 받아서 몇 분 몇 초인지를 계산하여 보자.

In [69]:
print("시간을 입력하시오(초단위) : ")
second = int(input())

minute = second / 60
hour = minute/60
second2 = second % 60
 
print('%d초는 %d시간 %d%d초 입니다' % (second, hour ,minute, second2)) 
시간을 입력하시오(초단위) : 
10000초는 2시간 166분 40초 입니다
In [49]:
americano= int(input("아메리카노 판매 개수를 입력하세요: "))
cafelatte = int(input("카페라떼 판매 개수를 입력하세요 : "))
capucino = int(input("카푸치노 판매 개수를 입력하세요: "))

americano_price=2000
cafelatte_price=3000
capucino_price = 3500

sales= americano*americano_price + cafelatte*cafelatte_price + capucino*capucino_price 

print("총 매출은 %d원 입니다."%sales)
총 매출은 185000원 입니다.
In [50]:
f=int(input("화씨온도를 입력하세요 : "))
c= (f-32.0)*5.0/9.0
print("섭씨온도는 : %f" %c)
섭씨온도는 : 37.777778
In [68]:
money= int(input("투입한돈 : "))
price= int(input("물건 값 : "))
change= money-price
print("거스름 돈 :",change)
coin500 = change/500
change = change %500 
coin100 = change/100

print("500원 동전의 개수: %d" %coin500)
print("100원 동전의 개수:%d" %coin100)
거스름 돈 : 2400
500원 동전의 개수: 4
100원 동전의 개수:4

 

 

 

 

 

변수 = 값을 담는 바구니
변수 = 저장할 값

In [9]:
x = 100
print(x)
 
100
In [10]:
x=100
x=200
print(x)
 
200
In [11]:
x=100
y=200
print(x,y)
 
100 200
In [12]:
x=100
y=200
sum = x+y
print(sum)
 
300
In [13]:
name = "홍길동"
adress = '대구광역시 신암동 300'
print(name)
print(adress)
 
홍길동
대구광역시 신암동 300
In [14]:
a=7
b=5
print(a+b)
print("a+b")
 
12
a+b
In [15]:
x=7; y=6
print(x+y)
x='7'; y='6'
print(x+y)
 
13
76
 

변수

 

의미 있는 이름을 사용
소문자와 대문자는 서로 다르게 취급된다.
변수의 이름은 영문자와 숫자, 밑줄(_)로 이루어진다.
변수의 이름 중간에 공백이 들어가면 안 된다. 단어를 구분하려면 밑줄(_)을 사용 한다
특별한 의미가 있는 예약어는 사용할 수 없다.

In [16]:
sum = 1
In [17]:
_count = 1
In [18]:
base_2nd = 3
 

1) aBC 2) ab! 3)aB1 4) 1ab
5) _ab 6) AB_C 7) 1_ 8) 에이비

 

예약어 확인

In [19]:
import keyword
print(keyword.kwlist)
 
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
 

변수 명명법

My new car
=> My_new_car => my_new_car :헝가리안표기법
=> Mynewcar => myNewCar : 카멜식(낙타식)표기법

 

변수의 타입

print(type(변수명))

In [20]:
a = 176
print(type(a))
 
<class 'int'>
In [21]:
print(type(179.8))
 
<class 'float'>
In [22]:
st = '키는 height'
print(type(st))
 
<class 'str'>
 

자료형

  • 정수형 : 양수, 정수
  • 실수형 : 소수점이 포함된 실수
  • 문자형 : 따옴표에 들어가 있는 문자형
  • 불린형 : 참/ 거짓
 

사칙연산

In [23]:
# 주석은 (샾 : #) 기호 사용, 단축키는 ctrl + '/'
print('25+30 :', 25+30) # 덧셈(+)
print('30-12 :', 30-12) # 뺄셈(-)
print('50*3 :', 50*3)  # 곱셈(*)
print('30/5 :', 30/5)  # 나눗셈(/)
print('7%5 :', 7%5)   # 나머지(%)
print('7//5 :', 7//5)  # 몫연산자 (//)
#print()에서 , 로 구분되면 한칸 띄운다
 
25+30 : 55
30-12 : 18
50*3 : 150
30/5 : 6.0
7%5 : 2
7//5 : 1
 

제곱 연산자

In [24]:
print('3^5 :',3*3*3*3*3)
print('3^5 :',3**5)
 
3^5 : 243
3^5 : 243
 

루트 2를 ** 연산자를 사용해서 구해보자

In [25]:
print('sqrt(2) :', 2**0.5)
 
sqrt(2) : 1.4142135623730951
In [26]:
num1 = 3.1**4.2
print(num1)
 
115.80281433592612
In [27]:
num2 = 2 * 5 ** 2
print(num2)
 
50
In [28]:
a = 1
a = a+1
print(a)
a +=1
print(a)
a = a+2
print(a)
a +=2
print(a)
 
2
3
5
7
In [29]:
a = 10
a = a-1
print(a)
a -=1
print(a)
a = a-2
print(a)
a -=2
print(a)
 
9
8
6
4
In [1]:
print("정수를 입력하세요")
x=int(input()) #input()은 입력을 문자열로 받음
print("입력한 정수는", x, "입니다.")
 
정수를 입력하세요
입력한 정수는 5 입니다.
In [31]:
x=int(input("정수를 입력하세요"))
print("입력한 정수는", x, "입니다.")
 
입력한 정수는 1 입니다.
In [32]:
# 주석처리
# 한줄 주석 #
# 여러줄 주석 
In [33]:
number = 2
print("number :",number)
number *= 5
print("number :",number)
number -= 4
print("number :",number)
number //= 2
print("number :",number)
number %= 2
print("number :",number)
 
number : 2
number : 10
number : 6
number : 3
number : 1
 

String 자료형

In [34]:
tom = "Boy"
bob = 'I am a boy'
print(tom)
print(bob)
 
Boy
I am a boy
In [35]:
a='문장' 
b= "문장" 
c='''여러줄
 문장''' 
d="""여러줄
문장"""
In [36]:
print('"영수는 훌륭해" 선생님이 말씀하셨다')
 
"영수는 훌륭해" 선생님이 말씀하셨다
In [37]:
print("He's friend is my brother")
 
He's friend is my brother
 

String 형 - 문자열 병합

In [38]:
str0 = "문자(열) " + "문자(열) " + "문자(열) " + "문자(열) "
print(str0)
 
문자(열) 문자(열) 문자(열) 문자(열) 
In [39]:
start = '=' * 15
title = 'Python Program'
finish = '=' * 15
print(start+title+finish)
print(start,title,finish)
 
===============Python Program===============
=============== Python Program ===============
In [40]:
str1 = "Hello, "
str2 = "Python"
stars = '***'
print(stars*5+str1+str2+stars*5)
 
***************Hello, Python***************
 

len(string) : string의 길이를 출력(가운데 공백 포함)

In [41]:
str0 = "Hello Python"
print("Length of", str0, ":", len(str0))
 
Length of Hello Python : 12
In [42]:
str0 = 'mountain'
print("length of '"+str0+"' :", len(str0))
for n in range(len(str0)) :
    print('str0[',n,'] = ', str0[n] )
 
length of 'mountain' : 8
str0[ 0 ] =  m
str0[ 1 ] =  o
str0[ 2 ] =  u
str0[ 3 ] =  n
str0[ 4 ] =  t
str0[ 5 ] =  a
str0[ 6 ] =  i
str0[ 7 ] =  n
In [43]:
str0 = 'mountain'
print("length of '"+str0+"' :", len(str0))
count = 0
for ch in str0 :
    print('str0[',count,'] = ', ch)
    count+=1
 
length of 'mountain' : 8
str0[ 0 ] =  m
str0[ 1 ] =  o
str0[ 2 ] =  u
str0[ 3 ] =  n
str0[ 4 ] =  t
str0[ 5 ] =  a
str0[ 6 ] =  i
str0[ 7 ] =  n
In [44]:
tom = 'Tom is a good student'
print("새로 합성할 단어 : mood")
print(tom[2]+tom[1]+tom[1]+tom[-4])
 
새로 합성할 단어 : mood
mood
In [45]:
greeting = 'Hello Python!'
greeting[0] = 'J' # 한글자만 바꾸는 것은 불가능하다.
                  # (변경불가)
print(greeting)
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-45-0259f38bc987> in <module>
      1 greeting = 'Hello Python!'
----> 2 greeting[0] = 'J' # 한글자만 바꾸는 것은 불가능하다.
      3                   # (변경불가)
      4 print(greeting)

TypeError: 'str' object does not support item assignment
 

slice : string의 일부를 취할 수 있음
Hello "Hello"[1:4] => "ell"

In [46]:
print("Hello"[1:4])
 
ell
In [47]:
str1 = 'Hello'
print("length of '"+str1+"' :", len(str1))
for n in range(len(str1)) :
    print(str1+'[',n,'] = ', str1[n] )
 
length of 'Hello' : 5
Hello[ 0 ] =  H
Hello[ 1 ] =  e
Hello[ 2 ] =  l
Hello[ 3 ] =  l
Hello[ 4 ] =  o
 

[:n] 처음부터 n-1까지
[m:] m번째 부터 string의 끝까지
[m:문자열의 길이보다 큰값] m번째부터 끝까지

In [48]:
string1 = "red apple"
string2 = "yellow banana"
print(string2[:6]+ string1[3:])
 
yellow apple
 

자료 형 변환

In [49]:
# 정수 <-> 실수 변환
a = int(10.99)
b = int(10.3)
print(a, b, a+b)
 
10 10 20
In [50]:
a = 10
b = float(a)
print(a, b, a+b)
 
10 10.0 20.0
In [51]:
a = 10
b = 3
print(a/b)
 
3.3333333333333335
In [52]:
# 문자형 => 숫자형간의 변환
a = '76.3'
b = float(a)
print(a, b)
#print(a+b) # 문자+숫자는 자료형이 불일치
 
76.3 76.3
In [53]:
# 숫자형 =>문자형 변환
a = b = 76.3
a = str(a)
b = str(b)
print(a+b)
 
76.376.3
In [54]:
a = int(10.3)
b = float(10.3)
c = str(10.3)

print(type(a))
print(type(b))
print(type(c))
 
<class 'int'>
<class 'float'>
<class 'str'>
 

문제 :
키를 입력하시오: 180
당신의 키는 180.0cm 입니다.
(180.0과 cm는 붙어있고, 결과는 소수점 1자리까지 표시한다)

In [66]:
height = float(input('키를 입력하시오 : '))
print("당신의 키는 %.1fcm 입니다."%(height))
print("당신의 키는 {}cm 입니다.".format(height))
 
당신의 키는 18.0cm 입니다.
당신의 키는 17.99999999cm 입니다.
 

문제 :
키를 입력하시오: 180.77
당신의 키는 180cm 입니다.
(180과 cm는 붙어있고, 결과는 정수로 소수점아래를 버린다.)

In [70]:
height = float(input('키를 입력하시오 : '))
print("당신의 키는 %dcm 입니다."%(height))
print("당신의 키는 {}cm 입니다.".format(int(height)))
 
당신의 키는 179cm 입니다.
당신의 키는 179cm 입니다.
In [71]:
print("%d %d %d"%(1,2,3))
print("{}{}{}".format("a","b","c"))
 
1 2 3
abc
 

"~~ %자료형1 ~~"%(값1)

In [73]:
print("%s %s"%('one', 'two'))
print("%d %d"%(1,2))
 
one two
1 2
In [74]:
print("I eat %d apples"%3)
print("I eat %s apples"%'five')
 
I eat 3 apples
I eat five apples
In [76]:
print("I love %s" %("meet"))
print("My thing is %dcm" %(180))
print("I get %c grade" %("A"))
print("%x마일 남았어" %(20)) # 16진수
print("%e키로만 더 찌워야지" %(12345678)) # 지수승으로 표시
print("%f키로만 더 빼야지" %(0.005)) #소수점 표시(기본6자리)
 
I love meet
My thing is 180cm
I get A grade
14마일 남았어
1.234568e+07키로만 더 찌워야지
0.005000키로만 더 빼야지
In [79]:
print("제품: %s, 개당가격: %f$." %("Apple",5.243))
number = 3
day = "three"
print("사과를 %d개 먹음. I was sick for %s days"
%(number,day))
 
제품: Apple, 개당가격: 5.243000$.
사과를 3개 먹음. I was sick for three days
 

"{자료형}".format(인수)

In [80]:
print("I'm {0} years old.".format(20))
 
I'm 20 years old.
In [83]:
print("제품:{0},가격:{1:.2f}$.".format("Apple",5.243))
 
제품:Apple,가격:5.24$.
In [81]:
test = 'Hello {}'.format('Bob')
print(test)
 
Hello Bob
In [91]:
print("%-10.2f"%5.94343) #좌측정렬
print("%10.3f"%5.94343)
print("%10.2f"%5.94343)
 
5.94      
     5.943
      5.94
In [88]:
print("{0:<10s}".format("Apple")) # 좌측정렬
print("{0:>10s}".format("Apple")) # 우측정렬
 
Apple     
     Apple
In [ ]:
 

+ Recent posts