본문 바로가기

python

15-1. round, filter, type변환하기

728x90
반응형

68. 반올림수 구하기 (round)

*오라클이랑 똑같음

 

   1  6  .  5  5  4

 -2 -1  0  1  2  3

 

 

print(round(16.554, 0))

결과: 17

 

print(round(16.554, 1))

결과: 16.6

 

 

print(round(16.554, -1))

결과: 20.0

 

그러나!!

 

print(round(16.5, 0))

결과: 16.0

 

파이썬은

0.5123354 처럼 0.5뒤에 숫자가 붙으면 , 관계없이 반올림시켜주고,

0.5 끝나면서 앞의자리가 짝수면 반올림 안한다.

 

 

 

문제228.
이름,  월급*0.15 출력하시오

(판다스 이용해서 출력)

 

import pandas as pd

emp=pd.read_csv("d:\\csv\\emp.csv")

emp['sal']=emp['sal']*0.15

print(emp[['ename','sal']])

 


 

소수점 뒤에가 보기 싫다면????????

 

문제229.

위의 결과를 다시 출력하는데

월급을 출력할 때에 소수점 첫번째 자리에서 반올림되게 하시오.

 

import pandas as pd

emp=pd.read_csv("d:\\csv\\emp.csv")

emp['sal']=emp['sal']*0.15

emp['sal']=emp['sal'].round()

print(emp[['ename','sal']])

 

 

import pandas as pd

emp=pd.read_csv("d:\\csv\\emp.csv")

emp['sal']=emp['sal']*0.15

print(round(emp[['ename','sal']],1))

 

 


반올림값이 다르다.

왜냐하면 "R 파이썬은 짝수를 좋아한다"

예를들면 아래수를 반올림시키면

7.5 --------> 8

2.5---------> 2

 

※설명:

 JAMES 142.5 ----> 142.0

WARD 187.5----> 188.0

파이썬은 기본적으로 이것을 해결하는 함수가 없다.

 

 

문제230.(점심시간 문제)

문제 229번을 제대로 반올림되게 하시오

 

 


반올림 하기

import pandas as pd

emp=pd.read_csv("d:\\csv\\emp.csv")

emp['sal']=emp['sal']*0.15

print(emp[['ename','sal']])

 

 

 

 

 

import pandas as pd

emp=pd.read_csv("d:\\csv\\emp.csv")

emp['sal']=emp['sal']*0.15+0.00001

emp['sal']=round(emp['sal'])

print(emp[['ename','sal']])

 


 

 

 

69. 실수형 자료를 정수형 자료로 변환하기 (int)

 

*파이썬의 변환 함수 정리

 

                   Data type               변환함수

1. 정수형          int                          int()

2. 문자형          str                          str()

3. 실수형          float                        float()

4. 리스트형       list                           list()

5. 튜플형         tuple                        tuple()

 

 

 

문제231.

판다스를 이용하지 말고,

이름,연봉(sal*12) 출력하시오

(그냥 csv 파이썬)

 

 

import csv

file=open("d:\\csv\\emp2.csv", 'r')

emp=csv.reader(file)

 

for emp_list in emp:

    emp_list[5]=int(emp_list[5])*12

    print(emp_list[1],emp_list[5])

또는 프린트에 바로 12곱해서 출력해도

 

 

70. 정수형 자료를 실수형 자료로 변환하기(float)

 

예제:

a=float(10)

print(a)   # 10.0 으로 출력됨

 

 

71. 정수 리스트에서 소수만 걸러내기(filter)

 

    합성수             vs                소수

       6                                     7

      2x3                             두개의 수로 나누는

                                        (1 자기자신으로만 나눌 있는 )

                                        (1, 3, 5, 7, 11, 13, 17, 19)

 

문제232.

아래의 리스트에서 소수만 걸러내시오

 

a=[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

 

결과: 11, 13, 17, 19

----------

선혜땁

a = [ 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 42 ]

for i in a:

    x=[]

    num=0

    for j in range(2,i):

        if i%j==0:

            num+=1

    if num==0:

        x.append(i)

print(x)

 

*****range(2,2) 어떻게 출력되게???

-----------------------------------

소수가 2,3으로 나눌수 있는 수를 제외한 라는것을 알면

 

a=[2,3,10,11,12,13,14,15,16,17,18,19,20,49]

x=[]

for i in a:

    if i==1 or i==2 or i==3:

        x.append(i)

    if i%2==0 or i%3==0:

        continue

    else:

        x.append(i)

print(x)

 

 

 

 

문제233.

답을 def 함수로 생성하시오.

def getPrime(data):

    x=[]

    for i in a:

        num=0

        for j in range(2,i):

            if i%j==0:

                num+=1

        if num==0:

            x.append(i)

    return x

 

a = [ 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 42 ]

 

#result=filter(getPrime, a)

#print(list(result))

print(getPrime(a))

 

 

 

 

 

 

문제234.

getPrime 함수와 filter 이용해서 a리스트에서 소수를 걸러내시오

 

a = [ 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 42 ]

 

result=filter(getPrime, a)

print(result)

 

------------------

def getPrime(x):

    num=0

    for j in range(2,x):

        if x%j==0:

            num+=1

    if num==0:

        return x

 

a = [ 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 42 ]

 

result=filter(getPrime, a)

print(list(result))

 

 

filter 함수에 적용하려면 값이 하나씩 처리가 되어야 한다.

 

 

result=filter(getPrime, a)

                                 

               함수명  처리해야할 리스트

 

print(list(result))

 

 


728x90
반응형

'python' 카테고리의 다른 글

16. 텍스트마이닝  (0) 2019.03.25
15-2. 특정위치 문자열(count,find)  (0) 2019.03.25
★판다스공식  (0) 2019.03.25
14. pandas  (0) 2019.03.25
13. 이진탐색  (0) 2019.03.25