160808: 102회차

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


schedule _ 경로 설정 & html 충돌로 페이지 안 떴었음.

테이블 수정해서 권한 넣을 것


[11] 구구단 출력하기, 문자열 가지고 놀기

[01]  구구단 출력하기 

1. 1단 출력하기


# -*- coding:utf-8 -*-
# 구구단 1단 출력 ##############
 
for n in range(1, 10):              # 1~9까지 숫자 추출을 위한 반복문
    print 1, 'x', n, '=', 1*n      # 1 x 1 = 1 포맷의 출력


2. 원하는 단 출력하기

# -*- coding:utf-8 -*-
# 입력 받은 숫자에 해당하는 구구단 출력 ##############
 
m = int(input('구구단 몇 단을 출력 할까요? 숫자를 입력하세요: '))
 
while m < 1 or m > 9:
    m = int(input('구구단은 1단부터 9단까지 출력 가능합니다. 맞는 숫자를 다시 입력하세요: '))
 
for n in range(1, 10):
    print m, 'x', n, '=', m*n


3. 구구단 전체 출려하기

# -*- coding:utf-8 -*-
# 구구단 전체 출력 ##############
 
for m in range(1, 10):
    print('='*10)
    for n in range(1, 10):
        print m, 'x', n, '=', m*n




[02] 문자열 가지고 놀기

1. 문자열 대소문자 변경하기

# -*- coding:utf-8 -*-
s = raw_input('영어 대소문자로 이루어진 문장을 입력하세요.\n')  # 문자열 입력
 
print('모두 대문자로 출력\n' + s.upper())   # 대문자로 모두 변환
 
print('모두 소문자로 출력\n' + s.lower())   # 소문자로 모두 변환
 
new_s = str()   # 신규 문자열 형 변수 선언
 
for c in s:     # 입력 받은 문자를 하나씩 꺼내서 c에 대입
 
    if c.islower():         # 해당 문자가 소문자이면
        new_s += c.upper()  # 대문자로 변경하여 new_s에 붙이기
    else:                   # 해당 문자가 대문자이면
        new_s += c.lower()  # 소문자로 변경하여 new_s에 붙이
 
print('대소문자 바꿔서 출력\n' + new_s)             # 최종 변환 결과 출력
 
print('대소문자 바꿔서 출력\n' + s.swapcase())      # 대소문자 모두 변환


2. 문자열 순서 바꾸기

# -*- coding:utf-8 -*-
s = raw_input('영어 문장을 입력하세요.\n')  # 문자열 입력
 
new_s = str()                       # 신규 문자열형 변수 선언
 
for x in range(len(s)-1, -1, -1):   # range()를 활용한 역순 인덱스 추출
    new_s += s[x]                   # 문자열을 끝에서부터 앞으로 신규 변수에 붙이기
 
print(new_s)                        # 위 결과 출력
 
print(s[::-1])                      # 인덱스 사용법으로 역순 출력 = -1부터 반대로 가라 :-)



[12] 파일 입출력
[01]파일 입출력
1. 파일 처리 모드
 - open(filename, mode) 내장 함수로 filename 이름을 지닌 file 객체를 얻는다.
 - 얻어진 파일 객체에서 자료를 읽거나, 쓰거나, 덧붙이는 작업 수행 
 - 모든 작업이 끝나면 close()를 호출하여 작업 프로세스의 자원 점유 해제
 - 두번째 인자 mode 생략시에는 읽기 전용(r) 모드로 설정
a는 append 같은 것
mode 부분에 저걸 적으면 됨
 
 - filename → 첫 번째 인자에 문자열 형태로 기입 
 - mode → 두 번째 인자로 읽을 것인지, 쓸 것인지, 덧붙일 것인지 결정 ?
 - open 함수를 쓰면 항상 close 함수 같이 씀 ?
 - 읽기모드는 파일이 존재해야 함 ? 
 - 파일포인터 → 현재 읽는 위치 ?
 - read라는 메소드를 사용 시 파일포인터 있는 위치를 읽음 
 - 'a'는 affend의 약자 → 이미 존재하는 내용 뒤에 쓰기
 
 2. 파일 쓰기
 - 현재 작업디렉토리 알기
 # -*- coding:utf-8 -*-
 import os
 print os.getcwd()

 ____________________  cwd는 리눅스에서 현재 위치를 알려주는 것
 
 s = """안녕하세요. 파이썬 프로그래밍의 파일처리부분을 수업합니다.
 우선 파일에 글일 저장하는 파일쓰기글 먼저 수행합니다. 
 open함수를 이용하여 파일객체를 쓰기모드로 생성 합니다.
 또한 파일에서 읽어오는 방법에 대해서도 알아봅니다.
 """ 
 f = open('t.txt', 'w') 
 f.write(s) # 문자열을 파일에 기록 f.close()
 
- 이중따옴표 3개 → 여러 개의 문장 입력 가능 
- mode가 w → 파일이 쓰기 전용으로 열림 
- open 내장함수가 반환하고 있는 객체가 file 객체 
- write 메소드 → 문자열을 파일에 기록
 
- eclipse의 프로젝트 폴더에서 새로고침 하면 t.txt 파일이 보임
 
 
3. 파일 읽기
# -*- coding:utf-8 -*-
f = open('t.txt', 'r') # f = file('t.txt')와 동일 
s = f.read()
print s
 
- 모드가 쓰이지 않음 → 읽기 모드 
- s = f.read( ) → f라는 변수 내에 파일 내용 전체를 가져와 문자열 할당
- f.close( ) → 파일이 자원을 점유하고 있던 것을 해제
- close()을 마지막에 호출하지 않으면 해당 file 객체가 다른 값으로 치환되거나 
  프로그램이 종료될 때 자동으로 close()가 불리워진다. 
 
 
4. 라인 단위로 파일 읽기(총 4개)
1) 파일 객체의 반복자 이용하기 
  - 파일 객체의 반복자는 각 라인별로 내용을 읽어오도록 설정되어 있음 
  - 파일을 라인별로 읽는 방법 중 가장 효과적임
  - line 변수에는 첫 번째 라인 내용이 들어옴
 
f = open('t.txt') 
i = 1 
for line in f:
     print i, ":", line, 
     i += 1 
f.close()
 
 
2) readline(): 한번에 한줄씩 읽는다.
  - readline( ) → 현재의 파일포인터에서 개행 문자까지 읽음 = 한 라인
 
f = open('t.txt') 
line = f.readline()
i = 1 
while line: 
    print i, ":", line, 
    line = f.readline() 
    i += 1 
f.close()
 
3) readlines(): 파일 전체를 라인 단위로 끊어서 리스트에 저장한다. 
  - 각 라인을 모두 읽어서 메모리에 리스트로 저장
  - readlines( ) → 리스트를 반환 ? 
  - seek(0) → 파일포인터를 처음으로 돌려줌 
  - f.readlines( ) 호출하면 파일포인터가 젤 마지막에 위치하게 됨
 
# -*- coding:utf-8 -*-
f = open('t.txt') 
print f.readlines() 
print
f.seek(0) 
i = 1 
for line in f.readlines(): 
    print i, ":", line, 
    i += 1 
f.close()
 
4) xreadlines():
  - readlines()과 유사하지만 파일 전체를 한꺼번에 읽지 않고, 
    상황별로 필요한 라인만 읽는다. 
  - 대용량의 파일을 for 문 등으로 라인 단위로 읽을 때 효율적이다. 
  - xreadlines( ) → 리스트가 반환되지 않고 파일 객체 내용이 찍힘 
  - xreadlines( ) → 전체가 아닌 라인별로 읽어옴 → 효과적인 메모리 사용
f = open('t.txt') 
print f.xreadlines() 
f.seek(0) 
i = 1 
for line in  f.xreadlines(): 
    print i, ":", line, 
    i += 1 
f.close()
 
 
5. 라인 단위로 파일 쓰기
1) writelines(): 리스트 안에 있는 각 문자열을 연속해서 파일로 출력한다
 - writelines(lines) → 각각의 문자열을 라인 단위로 출력 ?
 - read( ) → 전체 내용을 모두 읽음 ? 
 - 각각의 라인을 입력할 때 '\n'은 필히 사용
 - '\n'을 넣지 않으면 개행이 되지 않음
 
# -*- coding:utf-8 -*-
lines = ['first line\n', 'second line\n', 'third line\n']  - 리스트하고 사전 타입 빼고는 다 변경 불가능
f = open('t1.txt', 'w')
f.writelines(lines)
f.close()
f = open('t1.txt')
f.seek(0) 
print f.read()
f.close()
 
2) write() 이용하여 여러 문자열을 각 라인별로 파일로 출력하는 방법
  - '\n'.join(lines) → 라인에 존재하는 원소를 '\n'로 이어줌
 
lines = ['first line', 'second line', 'third line']
f = open('t1.txt', 'w')
f.write('\n'.join(lines))
f.close()
f = open('t1.txt')
f.seek(0)
print f.read() 
f.close()
 
6) 텍스트 파일 t.txt의 단어(공백으로 분리된 문자열) 수를 출력하는 방법
- split( ) → 공백문자를 기준으로 문자를 잘라 list 화 ?
- len(s.split( )) → 리스트 안에 존재하는 원소의 개수
 
f = open('t.txt')
s = f.read()
n = len(s.split()) 
print n
f.close()
 
7) 기존 파일에 내용 추가
 
- 새로운 파일 추가 시 ‘a’ 모드 사용 
- 현재 존재하는 파일내용의 맨 뒤에 내용 삽입됨
 
f = open('retest.txt', 'w') # 파일의 생성
f.write('first line\n')
f.write('second line\n')
f.close()
 
f = open('retest.txt', 'a') # 파일 추가 모드로 오픈 
f.write('third line\n')
f.close()
f = open('retest.txt')      # 파일 읽기 
print f.read()

5. 표준 출력을 파일로 저장하기 
- 표준 출력(print)을 파일 객체로 전환  
- >> : 리다이랙트 기호 
f = open('t3.txt', 'w')
print >> f, 'spam string' 
f.close()  
f = open('t3.txt')
print f.read() 
f.close() 

값 타입이 없고 모두 참조타입이다 (함수명도 식별자를 가짐)






5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160816: 104회차  (0) 2016.08.16
160809: 103회차  (0) 2016.08.09
160805: 101회차  (0) 2016.08.05
160804: 100회차  (0) 2016.08.04
160803: 99회차  (0) 2016.08.03
Posted by DAVID