<jupyter_start><jupyter_text>내장함수- import 없이 파이썬에서 사용 가능 ![image.png](attachment:image.png)<jupyter_code>dir(__builtins__)
# abs : 절대값
abs(-1)<jupyter_output><empty_output><jupyter_text>그래프와 같이 이동한 거리 dx, dy 를 구할 수 있는 distance() 함수 작성<jupyter_code>def distance(start, end):
    ax, ay = start
    bx, by = end
    return abs(ax-bx), abs(ay-by)
start = (1, 1)
end = (5, 3)
dx, dy = distance(start, end)
print('dx:', dx, 'dy:', dy)
# all(): iterable 자료 받아서 요소가 모두 True 면 True
ls = [1,1,1,1,0]
all(ls)<jupyter_output><empty_output><jupyter_text>모든 문제에 대해 답이 작성되었는지 확인하는 코드 작성<jupyter_code>print('컴파일 언어가 아닌 것은?')
answer1 = input('1. C 2. C# 3. Python 4. swift => ')
print('컴퓨터 장치가 아닌 것은?')
answer2 = input('1. HDD 2. SDD 3. RAM 4. CPU => ')
print('파이썬의 자료형이 아닌 것은?')
answer3 = input('1. str 2. tuple 3. list 4. Map => ')
answer_list = list()
answer_list.append(answer1)
answer_list.append(answer2)
answer_list.append(answer3)

print('\n제출완료') if all(answer_list) else print('\n재입력')
# any() :iterable 자료 요소에 참이 하나라도 있으면 True
ls = [0,0,0,0]
any(ls)
# chr() :  아스키(ASCII)코드를 입력받아 해당하는 문자를 돌려주는 함수
chr(48)
# dir() : 객체가 가지고 있는 변수와 함수를 돌려주는 함수
# class만들어서 안에 def 생성하면 dir에서도 확인할 수 있다
dir([1,2,3])[:3]
# divmod() : 1요소/ 2요소 결과 몫과 나머지를 튜플로 돌려주는 함수

divmod(5,3)

a = 123
b = 16

quotient,remainder = divmod(a,b)
print('몫', quotient)
print('나머지', remainder)
# enumerate() : iterable 자료의 index, value 돌려주는 함수
for i, e in enumerate([1,2,3]):
    print(i,e)
char_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
char_dict = {}
for i, e in enumerate(char_list):
    char_dict[i+1] = e
print(char_dict)
# eval(): 문자열을 신행한 결과값을 돌려주는 함수

eval('any([0,0,0,1])')
# filter(): bool 함수와 iterable자료 받은 후 참인 값만 돌려주는 함수

list(filter(lambda x: x%2==0, (1,2,3,4,5,6)))<jupyter_output><empty_output><jupyter_text>1. filter, lambda, 함수 등을 이용하여 리스트 요소 중 음수를 제거한 리스트 만들기<jupyter_code>num_list = [1, -2, 3, -5, 8, -3]
# 코드 작성
list(filter(lambda x: x>=0, num_list))<jupyter_output><empty_output><jupyter_text>2. filter, lambda, 함수 등을 이용하여 리스트 요소 중 3의 배수를 제거한 리스트 만들기<jupyter_code>num_list = range(1, 21)

list(filter(lambda x: x%3 !=0 , num_list))
# hex: 10진수인 정수를 입력받은 후 16진수 정수로 돌려주는 함수
hex(5)
# id() : 객체를 입력받은 후 객체의 고유 주소값을 돌려주는 함수
# 어떠한 변수와 다른 변수가 같은 존재인가, 아닌가 판단시 용이
a = [1,2,3]
id(a)<jupyter_output><empty_output><jupyter_text>색상표를 통해 확인된 숫자를 16진수로 표현<jupyter_code>red = 190
green = 66
blue = 205
# 코드 작성
r,g,b = hex(red), hex(green), hex(blue)
print(r, g, b)
# input() :  사용자 입력을 받은 후 문자열로 돌려주는 함수
# int() :  문자열 형태의 숫자, 소수점이 있는 숫자를 정수 형태로 돌려주는 함수

int('11',2) #2진수로 변환<jupyter_output><empty_output><jupyter_text>주어진 16진수 문자를 이용하여 실행결과와 같이 출력될 수 있도록 show_hex_to_ch() 함수 작성 (split(), chr(), int() 등 이용)<jupyter_code>hexa_string1 = '48 45 4C 4C 4F'
temp=hexa_string1.split()[2]
int(temp,16)
hexa_string1 = '48 45 4C 4C 4F'
hexa_string2 = '47 47 4F 52 45 42'
def show_hex_to_ch(hexa_string):
    st_ls=hexa_string.split()
    result = [print(chr(int(i,16)), end='') for i in st_ls]
    print()
show_hex_to_ch(hexa_string1)
show_hex_to_ch(hexa_string2)
# isinstance(): 입력받은 변수와 클래스가 같은 인스턴스인지 확인해주는 함수
class Car: pass
a = Car()
class Taxi(Car): pass
b = Taxi()
isinstance(a, Car), isinstance(b, Taxi)<jupyter_output><empty_output><jupyter_text>values 리스트 변수에 저장되어 있는 요소 중 모든 정수(int)와 실수(float)의 합 구하기<jupyter_code>values = [10, 'a', True, {}, [], -4, 23.24, (1,), -1.2]
result = 0
for value in values:
    if not isinstance(value,bool):
        if isinstance(value, int)or isinstance(value, float):
            result += value
        
    
print(result) # 29.04
## list() : 반복가능한 자료형을 입력받아 리스트로 만들어주는 함수
list({'a':1, 'b':2, 'c':3})<jupyter_output><empty_output><jupyter_text>map()- 입력된 값에 연산결과를 반영하여 반환하는 함수와 반복 가능한(iterable) 자료를 입력받은 후 함수 적용한 결과값 반환<jupyter_code>list(map(lambda x: x**2, [1,2,3,4]))<jupyter_output><empty_output><jupyter_text>1. map, lambda, 함수 등을 이용하여 리스트 연산 후 결과와 같이 출력하기<jupyter_code>num_list = [1, 2, 3, 4]
list(map(lambda x: 3*x, num_list))<jupyter_output><empty_output><jupyter_text>2. map, lambda, 함수 등을 이용하여 리스트 연산 후 결과와 같이 출력하기<jupyter_code>num_list = [1, 2, 3, 4]
list(map(lambda x: x**x, num_list))
# max(): 반복 가능한 자료형을 입력받아 요소 중 최대값을 돌려주는 함수
max('python')
# min() :  반복 가능한 자료형을 입력받아 요소 중 최소값을 돌려주는 함수
min({'a':1, 'b':3, 'c':1})<jupyter_output><empty_output><jupyter_text>리스트의 요소 중 최대값과 최소값 구하기<jupyter_code>num_list = [-8, 2, 7, 5, -3, 5, 0, 1]

print('최대값', max(num_list))
print('최소값', min(num_list))

# oct() :  10진수인 정수를 입력받은 후 8진수 정수로 돌려주는 함수
oct(5)

# open() : 입력된 mode에 따라 파일객체를 돌려주는 함수
with open('txt_files/test.txt','r')as file:
    print(file.read())
    
    
'''
file = open('txt_files/test.txt','r')
print(file.read())
file.close()
'''
# ord() : 문자를 입력받아 해당하는 아스키(ASCII)코드를 돌려주는 함수 ( ⇔ chr() )

ord('K')
# pow():  2개의 x, y 숫자를 입력받은 후 x의 y제곱 결과를 돌려주는 함수
pow(2,10)<jupyter_output><empty_output><jupyter_text>주어진 문자열을 이용하여 실행결과와 같이 출력될 수 있도록 show_ch_to_ascii() 함수 작성<jupyter_code>''.join(string1.split())

string1 = 'ASCII TABLE'
string2 = 'PYTHON'
def show_ch_to_ascii(string):
    temp = ''.join(string.split())
    for i in temp:
        print(ord(i), end=' ')
    print()
show_ch_to_ascii(string1)
show_ch_to_ascii(string2)<jupyter_output>65 83 67 73 73 84 65 66 76 69 
80 89 84 72 79 78<jupyter_text>range() : 주로 for문과 연계하여 사용되며, 입력받은 숫자에 해당하는 범위를반복 가능한 객체로 만들어서 돌려주는 함수<jupyter_code># sorted: 오름차순 정렬
sorted(('z', 'y', 'r', 'a', 'b'), reverse=True)

import operator
d = {'a': 10, 'c':5, 'b':12, 'd':1}
print(sorted(d))
print(sorted(d.items(), key=operator.itemgetter(1)))<jupyter_output>['a', 'b', 'c', 'd']
[('d', 1), ('c', 5), ('a', 10), ('b', 12)]<jupyter_text>str() : 문자형 변환 tuple() : 튜플로 변환 type() : 자료형 출력  zip() :- 반복 가능한 자료형 묶음별 요소들을 각 순번에 맞춰 튜플로 묶어진 리스트를 돌려주는 함수<jupyter_code>list(enumerate({7,8,9}))
list(zip([1,2,3],(4,5,6),(7,8,9), [1,2,3,4]))
list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
list3 = ['가', '나', '다', '라']
# 코드 작성

list(zip(list1,list2,list3))<jupyter_output><empty_output><jupyter_text>![image.png](attachment:image.png)<jupyter_code>import sys
print(sys.path)
type(sys.path) #경로 추가하고 싶다면 sys.path.append('')하기<jupyter_output>['C:\\Users\\mdyo_\\Documents\\dev\\TIL\\python\\MultiCampus', 'C:\\ProgramData\\Anaconda3\\python37.zip', 'C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', '', 'C:\\Users\\mdyo_\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\mdyo_\\.ipython']<jupyter_text>pickle- 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈- pickle.dump() : 저장하기- pickle.load() : 불러오기<jupyter_code>import pickle
class NowData:
    def __init__(self):
        self.x = 0
        self.y = 0
    def move(self, x, y):
        self.x = x
        self.y = y
    def get_location(self):
        return self.x, self.y

data = NowData()
data.move(100, 200)

file = open('txt_files/nowdata.bin', 'wb')
pickle.dump(data,file)
file.close()
import pickle
file = open('txt_files/nowdata.bin','rb')
data = pickle.load(file)
# data = NowData()
data.get_location()
file.close()<jupyter_output><empty_output><jupyter_text>os- os.environ :환경변수 확인- os.chdir() : 현재 디렉토리 위치 변경- os.getcwd() : 현재 지정된 디렉토리 확인- os.system(): 시스템(운영체제 또는 외부 프로그램) 명령어 호출하기- os.popen() :시스템(운영체제 또는 외부 프로그램) 명령어 호출 결과 받기- os.mkdir() : 디렉토리를 만들어주는 함수- os.rmdir()     - 디렉토리를 삭제해주는 함수 (디렉토리가 비어있어야 가능)- os.unlink()     - 파일을 지워주는 함수    - os.rename()     - 디렉토리 또는 파일의 이름을 변경해주는 함수- os.path.abspath() : 절대 경로<jupyter_code>import os
os.getcwd()
os.mkdir('txt_files/a')

file = open('txt_files/a/a.txt', 'w')
file.write('aaa')
file.close()

!ls txt_files/a
!cat txt_files/a/a.txt
import glob
fileList = glob.glob('C:/ProgramData/Anaconda3/Lib/c*')
print(fileList[:3])
from glob import glob
glob('C:/ProgramData/Anaconda3/Lib/c*')[:3]
[i.split('\\')[1] for i in fileList][:3]
    
! ls txt_files |grep test
import shutil
shutil.copy('txt_files/test.txt', 'txt_files/a/test.txt')
! ls txt_files/a<jupyter_output>a.txt
test.txt<jupyter_text>time<jupyter_code>import time
time.time()
time.localtime()
t=time.localtime()
t
t2 = time.localtime(time.time())
t2.tm_mday, t.tm_mday
time.asctime(t2), time.asctime(t)
time.ctime()
import random
random.seed(1)
random.randint(1,10)
time.strftime('%Y %m %d', time.localtime(time.time()))<jupyter_output><empty_output><jupyter_text>time.sleep<jupyter_code>import time
print(time.localtime().tm_sec)
# minute = 1
time.sleep(2)
print('a')
print(time.localtime().tm_sec)
after100=time.time()+100*24*60*60

time.strftime('%Y %m %d',time.localtime(after100))
import calendar
week_dict = { 0 : '월', 1 : '화', 2 : '수', 3 : '목', 4 : '금', 5 : '토', 6 : '일' }

week_dict[calendar.weekday(2017, 5, 9)]
calendar.prmonth(2004,8)
w_day, last_dy =calendar.monthrange(2004,8)

result = []
for i in range(1,last_dy+1):
    tm_day = calendar.weekday(2004,8,i)
    if tm_day == 0:
        result.append(i)
result<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1828358208955224, 'fraction_numerical': 0.038740122914837576, 'mean_word_length': 4.6497210167389955, 'pattern_counts': {'":': 0, '<': 77, '<?xml version=': 0, '>': 81, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '20', 'dir': 'jupyter-structured-clean-dedup', 'id': '363437', 'license': 'MIT', 'n_tokens_mistral': 5087, 'n_tokens_neox': 5770, 'n_words': 961, 'path': 'python/MultiCampus/07_functions.ipynb', 'repo_name': 'dayoungMM/TIL', 'size': '9112'}