■ 26. 시퀀스 자료형 이해하기
문자열 'abcde' 는 a,b,c,d,e 가 순서대로 나열되어있는
시퀀스 자료형이다
예제:
strdata = 'abcde' #a b c d e
print(strdata[0]) #0 1 2 3 4
listdata = ['a', 'b', 'c', 'd', 'e' ]
0 1 2 3 4
print(listdata[0])
결과: a
| |
strdata = 'abcde' #a b c d e
print(strdata[0]) #0 1 2 3 4
listdata = ['a', 'b', 'c', 'd', 'e' ]
-5 -4 -3 -2 -1
문제73. 이름의 끝글자가 T로 끝나는 사원들의 이름을
출력하시오
파이썬으로
import csv
file=open("d:\\csv\\emp2.csv", 'r')
emp=csv.reader(file)
for emp_list in emp:
if str(emp_list[1][-1])=='T':
print(emp_list[1])
■ 27. 시퀀스 자료 인덱싱 이해하기
예제:
strdata = 'Time is money!!' #문자열 변수
listdata=[1,2,[4,5,6 ] ] #리스트 변수
#리스트 안에 리스트가 있는 경우
[삼중 리스트에서 인덱싱하기]
조금 복잡하지만 다음의 예를 따라 해보자.
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
리스트 a안에 ['a', 'b', ['Life', 'is']]라는 리스트가 포함되어 있고, 그 리스트 안에 다시 ['Life', 'is']라는 리스트가 포함되어 있다. 삼중 구조의 리스트이다.
이 경우 'Life'라는 문자열만 끄집어내려면 다음과 같이 해야 한다.
>>> a[2][2][0]
'Life'
문제74. 위의 예제에서 strdata 문자열 변수에서
철자 i 만 출력하시오.
strdata = 'Time is money!!' #문자열 변수
strdata='Time is money!!'
print(strdata[1,5])
문제75. 아래의 listdata 변수에서 숫자 2를 출력하시오
listdata=[1,2,[4,5,6 ] ]
print(listdata[1])
※설명
listdata=[ 1, 2, [ 4, 5, 6 ] ]
0 1 2
문제76. 아래의 listdata 변수에서 숫자4를 출력하시오
listdata=[1,2,[4,5,6 ] ]
listdata=[1,2,[4,5,6 ] ]
print(listdata[2][0])
■ 28. 시퀀스 자료 슬라이싱 이해하기
예제:
strdata='Time is money'
print(strdata[1:5])
※설명
strdata='T i m e i s m o n e y'
01 2 3 4 56 78 910 11 12
→이것의 의미 : 1 <= strdata[1:5] < 5
**
strdata='Time is money'
print(strdata[:])
↑
처음부터 끝까지 뽑아라
문제77. strdata 에서 아래의 문자만 출력하시오
---->> Time is
strdata='Time is money'
print(strdata[0:7])
이렇게 처음부터 시작 하는 것은
--> print(strdata[:7]) 가능합니다.
*****번외문제
□
a='20181120rainy'
year=a[:4]
day=a[4:8]
weather=a[8:]
print(year,'년',day,'일',weather)
□
a='pythan'
if b==a[4]: ====> 안됨. 튜플, 문자열은 immutable 자료.
b='o'
print(a)
↓
print(a[:4]+'o'+a[-1]) ---> 이렇게 slice 해서 하면 된다.
**************************
문제78. strdata 문자열 변수값에서 짝수번째 철자만 출력하시오
strdata='Time is money'
결과: Tm smny
print(strdata[::2])
||
print(strdata[ 0 : 12 : 2])
시작 전체길이 시작지점부터 2개씩 퐁당퐁당
홀수번째 뽑으려면
strdata='Time is money'
print(strdata[1:12:2])
문제79. 이름을 출력하고
이름의 첫번째 철자부터 세번째 철자까지 아래와 같이 출력되게 하시오!
import csv
file=open("d:\\csv\\emp2.csv", 'r')
emp=csv.reader(file)
for emp_list in emp:
print(emp_list[1][:3])
문제80. 위의 결과를 pandas 를 이용해서
출력하시오
import pandas as pd
emp = pd.read_csv("d:\\csv\\emp.csv")
result=emp['ename']
print(result.apply(lambda x:x[:3]) )
■ 29. 시퀀스 자료 연결하기 (+)
예제:
strdata1 = 'I love '
strdata2 = 'Python '
print(strdata1 + strdata2)
문제81. 이름을 출력하는데 전부 소문자로 출력하시오
import csv
file=open("d:\\csv\\emp2.csv", 'r')
emp=csv.reader(file)
for emp_list in emp:
print(emp_list[1]. lower() )
↑
컴마 아님!
문제82. 이름을 출력하는데 이름의 첫철자는 대문자로 출력하고
나머지는 소문자로 출력하는 아래의 SQL 을 구현하시오
SQL> select initcap(ename)
from emp;
↓
import csv
file=open("d:\\csv\\emp2.csv", 'r')
emp=csv.reader(file)
for emp_list in emp:
a=emp_list[1][0].upper()
b=emp_list[1][1:].lower()
print(emp_list[1], a+b)
■30. 시퀀스 자료 반복 이해하기 (*)
예제:
a=int(input('숫자를 입력'))
for i in range(1, a+1):
print('별'*i)
숫자를 입력 ~ 7
■ 31. 시퀀스 자료 크기 이해하기 (len)
strdata1= 'I love python'
print(len(strdata1))
||
오라클의 length 함수와 같은 기능.
문제83. 아래의 sql 을 파이썬으로 구현하시오
SQL> select ename, length(ename)
from emp;
||
import csv
file=open("d:\\csv\\emp2.csv", 'r')
emp=csv.reader(file)
for emp_list in emp:
print(emp_list[1], len(emp_list[1]))
■ 32. 문자열의 멤버체크 이해하기 (in)
예제:
listdata = [1,2,3,4]
result1 = 5 in listdata
result2 = 4 in listdata
print(result1)
print(result2)
※설명:
result1 = 5 in listdata
↑
'listdata 안에 숫자 5가 있다' 를 뜻함.
문제84. 겨울왕국 대본에는 elsa가 몇 번 나오는지 확인하기 위해서 겨울왕국 스크립트 한라인 한라인을 각각 list 변수에 담으시오
winter.txt (텍스트) ------------------> list 변수
↓ ↓
script ['repaired', 'with', 'a', 'ice.\n']
답:
file = open("d:\\winter.txt", 'r')
for winter_list in file:
a=winter_list.split(' ')
print(a) ↑
공백으로 쪼개겠다.
문제85. 아래의 리스트에서 단어를 하나씩
뽑아내서 출력하시오
['repaired', 'with', 'a', 'ice.\n']
for i in ['repaired', 'with', 'a', 'ice.\n']
print(i)
| |
a= ['repaired', 'with', 'a', 'ice.\n']
for i in a:
print(i)
문제86.
for loop문 for loop문
winter.txt (텍스트) --------> list 변수-------------->한단어
↓ ↓
script ['repaired', 'with', 'a', 'ice.\n']
문제85번 처럼 한단어씩 쪼개져서 나오게 하시오.
file = open("d:\\winter.txt", 'r')
for winter_list in file:
a=winter_list.split(' ')
for b in a:
print(b)
문제87. 쪼개진 단어들이 소문자로 출력되게 하시오
file = open("d:\\winter.txt", 'r')
for winter_list in file:
a=winter_list.split(' ')
for b in a:
print(b.lower())
문제88. 아래의 list 에서 단어 aaa 가 몇 개 있는지
count 하시오
word=['bbb', 'ccc', 'aaa', 'ddd', 'aaa']
For i in word:
Cnt=0
Cnt=cnt+i.count('aaa') #cnt+=i.count('aaa')
print(cnt)
답:2
심플답:
Word=['bbb', 'ccc', 'aaa', 'ddd', 'aaa']
Print(word.count('aaa') )
***********
번외문제
word=['bbb', 'ccc', 'aaa', 'ddd', 'aaa\n']
위 리스트를 가지고 'aaa' 갯수를 세는데,
Sum과 count 모두 이용해서 print 하고
차이점을 확인하시오
오답:
word=['bbb', 'ccc', 'aaa', 'ddd', 'aaa']
Cnt=0 #count 함수 쓸거라서 0으로 해줘야 한다.
S.cnt=0 # sum도 마찬가지, ''로 하면 에러난다.
For i in word:
Cnt=cnt+i.count('aaa')
If i=='aaa':
S.cnt=sum+i
Print(cnt, sum)
답:
word=['bbb', 'ccc', 'aaa', 'ddd', 'aaa']
cnt=0
if_cnt=0
for i in word:
cnt=cnt+i.count('aaa')
if i=='aaa':
if_cnt=if_cnt+1
print(cnt, if_cnt)
*******if i=='aaa':
if_cnt=if_cnt+1
을 정확히 이해 하고 있는가?
문제89. 겨울왕국 대본에는
elsa라는 단어가 몇 번 나오는가?
anna 라는 단어는 몇 번 나오는가?
준하
file = open("d:\\winter.txt","r")
b=0
c=0
for winter_list in file:
a=winter_list.split(' ')
for i in a:
j=i.lower()
b+=j.count('elsa')
c+=j.count('anna')
print(b,c)
---------------------------
선혜 [리스트로 뽑아서 anna.\n 같은건 제껴짐]
elsa = 0
anna = 0
file = open('c:\\데이터\\winter.txt','r')
for winter_list in file:
winter_list = winter_list.lower()
a=winter_list.split(' ')
elsa+=a.count('elsa')
anna+=a.count('anna')
print('elsa는 %d번, anna는 %d번' %(elsa, anna))
------------------------
한솔
elsa = 0
anna = 0
file = open('d:\\winter.txt','r')
for winter_list in file:
winter_list = winter_list.lower()
a=winter_list.split(' ')
elsa+=a.count('elsa')
anna+=a.count('anna')
print('elsa는 %d번, anna는 %d번' %(elsa, anna))
--------------------------------------------
소현[증명]
word = ['bbb','ccc','aaa','bbb','aaa.\n']
cnt = 0
cnt_if =0
for i in word:
cnt += i.count('aaa') #'aaa' count 한거 더해라.(그룹화)
if i == 'aaa':
cnt_if +=1
print(cnt, cnt_if) # (2,1)
**count와 sum의 차이
-->count 는 aaa.\n 도 센다.
------------------------------------
서일[증명]
word = ['bbb','ccc','야aaa호','bbb','야아아aaa호']
cnt = 0
cnt_if =0
print (word.count('aaa'), ' for문 이전의 색적') #0
for i in word:
print(i) #word 값이 하나씩 세로로 출력 ㅇㅈ?
cnt += i.count('aaa') #'aaa' 들어간거 카운트한거 더하셈
if i == 'aaa': # i 문에서 'aaa'랑 일치하는거
cnt_if +=1 # if문 지정->다 더해
print(cnt, 'for문 이후의 색적')
*리스트에서 출력할 때와
for문 이용해서 단어로 쪼개진거 출력할 때가 다르다.
리스트는 anna\n 을 anna 로 인식 X
For 는 anna\n 을 anna 로 인식 O
■ 160. 주어진 숫자를 천단위 구분하기
num = input('아무 숫자를 입력하세요: ')
if num.isdigit():
num = num[::-1]
ret = ''
for i, c in enumerate(num):
i += 1
if i != len(num) and i%3 == 0:
ret += (c + ',')
else:
ret += c
ret = ret[::-1]
print(ret)
else:
print('입력한 내용 [%s]: 숫자가 아닙니다.' %num)
■ 161. 문자열의 각 문자를 그 다음 문자로 변경하기
text = input('문장을 입력하세요: ')
ret = ''
for i in range(len(text)):
if i != len(text)-1:
ret += text[i+1]
else:
ret += text[0]
print(ret)
'python' 카테고리의 다른 글
7. 리스트, 튜플, dictionary (0) | 2019.03.25 |
---|---|
6. 문자열, escape (0) | 2019.03.24 |
파이썬vs오라클vs판다스 연산자 (0) | 2019.03.24 |
4. 연산자, TRUE/FALSE (0) | 2019.03.24 |
3. None, 정수형, 실수형, 복소수형 (0) | 2019.03.24 |