본문 바로가기
푸닥거리

AI를 위한 파이썬 핵심문법-1

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2022. 5. 24.
728x90

 

 

 


Python
-> 1991년 Guido van Rossum 이 개발
-> Script Language
-> 컴파일 과정 없이 인터프리터에 의해 실행 결과를 바로 확인

https://www.python.org/downloads/


python keyword
- 특별한 의미가 부여된 단어
- 숫자로 시작 불가
- False
- break
- else
- if
- not
- while
- None
- class
- except
- import
- or
- with
- True
- continue
- finally
- in
- pass
- yield
- and
- def
- for
- is
- raise
- as
- del
- from
- lambda
- return
- assert
- elif
- global
- nonlocal
- try


snake case: 언더바(_)를 기호 중간에 붙이기
camel case: 단어들의 첫 글자를 대문자로 

 


python data type
- string
- number
- boolean

 

#datatype1.py

print("안녕하세요")
print('안녕하세요')
print(100)
print(3.5)

print(type('안녕하세요'))
print(type(100))
print(type(3.5))

print(100>200)
print(100<200)
a=100<200
print(a)
print(type(a))

print("python" + ' program')
print(100+200)

print("홍길동 님, 안녕하세요")
print("'홍길동 님', 안녕하세요")
print('"홍길동 님", 안녕하세요')
print("\"홍길동 님\", 안녕하세요")
print()
print ("동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산대한 사람 , 대한으로 길이 보전하세.")
print ("동해 물과 백두산이 마르고 닳도록 n 하느님이 보우하사 우리나라 만세 n 무궁화 삼천리 화려 강산대한 사람 ,\n 대한으로 길이 보전하세.")
print ("""동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산대한 사람 , 대한으로 길이 보전하세.""")

 

#data_index.py

print("문자열 인덱싱")
print("안녕하세요")
print("안녕하세요"[0])
print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print()
print("안녕하세요"[-1])
print("안녕하세요"[-2])
print("안녕하세요"[-3])
print("안녕하세요"[-4])
print("안녕하세요"[-5])
print()

print("문자열 슬라이싱")
print("안녕하세요"[0:3]) #마지막 숫자는 포함되지 않음
print("안녕하세요"[1:4])
print("안녕하세요"[2:])
print("안녕하세요"[:4])
print("안녕하세요"[::-1])

print(len("안녕하세요."))
 
 
 

#datatype2.py

print("# 기본적인 연산")
print(15 , "+", 4 , "=", 15 + 4)
print(15 , "-", 4 , "=", 15 - 4)
print(15 , "*", 4 , "=", 15 * 4)
print(15 , "/", 4 , "=", 15 / 4)

print(10, '/', 3, '= ', 10/3)
print(10, '/', 3, '= ', 10//3)
print(10, '/', 3, '= ', 10%3)


print("# 제곱연산자 **")
print("2 ** 1 = ", 2**1)
print("2 ** 1 = ", 2**2)
print("2 ** 1 = ", 2**3)
print("2 ** 1 = ", 2**4)

 

#variable.py
#변수: 임의의 값을 저장하는 메모리의 임시 기억장소
#int a; (변수를 선언, 메모리 할당)
#a=100; (값을 변수가 할당된 메모리에 저장)

n1=100
f1=3.5
s1="kingdom"

print(type(n1), ", ", n1)
print(type(f1), ", ", f1)
print(type(s1), ", ", s1)      
print(n1+f1)
n1=200
print(n1+f1)

#input01.py

str1=input("성명 ? ")
print(type(str1), ", ", str1)

n1=input("정수 ? ")
print(type(n1), ", ", n1)

#n1=100;n2=30
#print(n1 , '+', n2, '=', n1+n2)

 

 

#input01.py

print("123")
print(type(int("123")), ", ", int("123"))
print(type(float(5.12)), ", ", float(5.12))


#str1=input("성명 ? ")
#print(type(str1), ", ", str1)

n1=input("정수1 ? ")
n1=int(n1)
print(type(n1), ", ", n1)

n2=int(input("정수2 ? "))
print(type(n2), ", ", n2)

#n1=100;n2=30
print(n1 , '+', n2, '=', n1+n2)

s1=100
s1_out=str(s1)
print(type(s1_out), ", ", s1_out)

 

 

#format01.py

name="홍길동"
salary=3800000

print("성명: ", name,", 월급: ", salary)
print("성명 :{}, 월급: {}, {}". format(name, salary, salary>=5000000))
print()

# 정수
output_a="{:d}".format(52)
# 특정 칸에 출력하기
output_b="{:10d}".format(52)
# 빈칸을 0으로 채우기
output_c="{:05d}".format(52)
output_d="{:05d}".format(-52)
print("# 기본")
print(output_a)
print("# 특정 칸에 출력하기")
print(output_b)
print("# 빈 칸을 0으로 채우기")
print(output_c)
print(output_d)
print()


#실수
output_a1="{:f}".format(52.273)
output_b1="{:15f}".format(52.273)
output_c1="{:+15f}".format(52.273)
output_d1="{:+015f}".format(52.273)
print(output_a1)
print(output_b1)
print(output_c1)
print(output_d1)
#의미없는 소수점 제거
output_a2 = "{:g}".format(53.00)
print(output_a2)
#소수점 출력자리수 지정
output_a3 = "{:.2f}".format(53.12345)
print(output_a3)
output_a4 = "{:.0f}".format(53.12345)
print(output_a4)


 

 

#fstring01.py

name="홍길동"
salary=3800000

print("성명: ", name,", 월급: ", salary)
print("성명 :{}, 월급: {}, {}". format(name, salary, salary>=5000000))

print(f"성명 : {name}, 월급 : {salary}")

print()

n1=100;n2=30
print(n1 , '+', n2, '=', n1+n2)
print(f"{n1} + {n2} = {n1+n2}")
print()

word="Pyton"
print(f"{word} , {word[0]}")
print(f"{word} , {word[-1]}")
print(f"{word} , {word[0:2]}")
print(f"{word} , {word[2:]}")
print(f"{word} , {word[:3]}")
print(f"{word} , {word[::-1]}")

print(f"{','.join([word] * 3)}")


 

#string_함수.py

str="hello world"
print(str.find("world")) #검색된 index 반환
print(str.find("campus"))

print("world" in str)   #포함하면 true
print("campus" in str)


#operator01.py

n1=50
n2=150

#관계연산자: 두 값을 비교하여 참(true), 거짓(False)을 반환
print(n1>n2)
print(n1<n2)
print(n1==n2)
print(n1!=n2)
print()

#논리연산자: 두 논리값을 비교하여 새로운 참(true), 거짓(False)을 반환
#           비교대상이 여러개 일 때 사용
print(n1>=100 and n2>=100)
print(n1>=100 or n2>=100)
print(not(n1>100))
print()

num=50
print(num>=0 and num<=100)  #0~100
print(0<= num <= 100)

#if01.py
#제어문: 조건제어(if), 반복제어(for, while), 기타제어(break, contine)

num=-10
if num >= 0 :        
    print(f"{num} 양수.")
else :        
    print(f"{num} 음수.")
print("End.")

score=45
if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
elif score >= 60:
    print("D 학점")
else:
    print("노력바람.")
print("End.")

import datetime

now1= datetime.datetime.now()
print(now1)

if now1.month <= 6:
    print("상반기")
else:
    print("하반기")
   
   

#for01.py
#반복횟수를 알고 있을 때 주로 사용

for index in range(10):
    print(index, ", ", end="")
print()

for index in range(1, 11):
    print(index, ", ", end="")
print()

for index in range(1, 11, 2):
    print(index, ", ", end="")
print()

for index in "CAMPUS":
    print(index, ", ", end="")
print()



 

#while01.py

i=1;sum=0

while i<=10:  #참이면 반복
    sum = sum+i
    i += 1; # i=i+1
print(f"합: {sum}")

# 1부터 100까지 홀수,짝수의 합
i=1
OddSum=0
EvenSum=0
while i<=100:
    OddSum += i
    EvenSum += (i+1)
    i += 2    
print("홀수의 합: ", OddSum)
print("짝수의 합: ", EvenSum)

 

 

#기타제어.py

#break/continue
i=0
sum=0
while True:
    i += 1
    if i>20:
        break;
    if(i%5 == 0):
        sum += i;
    else:
        continue
   
print("1 부터 20 까지 5의 배수의 합 :" , sum)
print()

'''
sum=0
for i in range(5):
    in_data=int(input(f"{i+1} 점수 ? "))
    sum += in_data
print(f"합: {sum}, 평균: {sum/5}")
'''

sum=0
cn=0
while True:
    in_data=input(f"{cn+1} 점수 ? ")
    if(in_data.isdigit()):
        sum += int(in_data)
        cn += 1
    else:
        print("값을 입력하세요!!")
    if(cn==5):
        break;

print(f"합: {sum}, 평균: {sum/cn}")
           

#list01.py

list_a=[100,200, "python", True, 3.5]
print(f"type(list_a) : {type(list_a)}")
print(f"list_a : {list_a}")

list_b=[40,50,60]
list_c= list_a + list_b
print(f"list_c : {list_c}")
print("list_b*3: ", list_b*3)
print()

print(f"list_c : {list_c}")
print(f"len(list_c) : {len(list_c)}")
print(f"list_c[0] : {list_c[0]}")
print(f"list_c[1] : {list_c[1]}")
print(f"list_c[-1] : {list_c[-1]}")
print(f"list_c[5:] : {list_c[5:]}")
print(f"list_c[:3] : {list_c[:3]}")
print(f"list_c[3:6] : {list_c[3:6]}")
print(f"list_c[::-1] : {list_c[::-1]}")
print(f"--->list_c : {list_c}")
print(f"list_c[2][0] : {list_c[2][0]}")

list_c[0]=150
print(f"list_c : {list_c}")

print("==============")
list_a=[10,20,30]
print(f"list_a : {list_a})")
list_a.append(40)
print(f"list_a : {list_a}")
list_a.insert(0, 5)
print(f"list_a : {list_a}")
list_a.extend([50,60,70])
print(f"list_a : {list_a}")

del list_a[0]   #index 위치 제거
print(f"list_a : {list_a}")
list_a.pop(1)   #index 위치 제거
print(f"list_a : {list_a}")

list_a.remove(70)   #값을 찾아 제거
print(f"list_a : {list_a}")

del list_a[0:2]
print(f"list_a : {list_a}")


 

 

#list02.py

list_a=[10,80,30,100,50]
print(f"list_a : {list_a}")

b1=20 in list_a
b2=50 in list_a
print(f"{b1}, {b2}")

print(f"max : {max(list_a)}")
print(f"min : {min(list_a)}")
print(f"sum : {sum(list_a)}")

list_a.sort()
print(f"list_a : {list_a}")
list_a.reverse()
print(f"list_a : {list_a}")

list_b=list((1,2,3,4,))
print(f"list_b : {list_b}")

list_c=list("python")
print(f"list_c : {list_c}")


 

 

#list_반복.py

list_a=[10,20,30,40,50]
print(f"list_a : {list_a}")

for item in list_a:
    print(f"item : {item}")
print()

for index in range(len(list_a)):
    print(index, ": ", list_a[index])
print()

print("리스트 내포")
list_a= [ i*i for i in range(0,20,2)]
print(f"list_a : {list_a}")

sal_list=[4000, 7500, 3400, 8900, 2500, 5000]
list_a = [ sal for sal in sal_list if sal >= 5000 ]
print(f"list_a : {list_a}")

list1 = [3, 12, 9, 10, 100, 49, 399, 20, 329, 450, 4]
list_a = [ i for i in list1 if i%2==0 and i<=100 ]
print(f"list_a : {list_a}")
print()

numbers = [1, 2, 3, 4, 5]
result = []
for n in numbers:
    if n % 2 == 1:
        result.append(n*2)
print(result) #2,6,10

#리스트 내포로 변경
numbers = [1, 2, 3, 4, 5]
result = []
result=[ n*2 for n in numbers if n%2 == 1]
print(f"result : {result}")

 

#list_반복02.py

list_of_list = [
[1, 2, 3],
[4, 5, 6, 7],
[8, 9],
]

print(f"type(list_of_list) : {type(list_of_list)}")
print(f"list_of_list : {list_of_list}")

print(f"list_of_list[0]: {list_of_list[0]}")
print(f"list_of_list[1]: {list_of_list[1]}")
print(f"list_of_list[2]: {list_of_list[2]}")
print(f"list_of_list[2][0]: {list_of_list[2][0]}")
print()

for line in list_of_list:
    #print(line)
    for item in line:
        print(item, ", ", end="")    
    print()
print("=========\n")

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
output = [[], [], []]

for i in range(len(numbers)):
    if(i%3 == 0):
        output[0].append(numbers[i])
    elif(i%3==1):
        output[1].append(numbers[i])
    elif(i%3==2):
        output[2].append(numbers[i])

print(f"output : {output}")

 

 

#tuple01.py

t1=(100, "python", True, 5.7)
print(f"type(t1) : { type(t1) }")
print(f"t1: {t1}")

print(f"t1[0] : { t1[0] }")
print(f"t1[0:1] : { t1[0:1] }")
print(f"len(t1): {len(t1)}")

for item in t1:
    print(item)
print()

#t1[0]=150
#t1.append(200)
#del t1[0]

a1=(100)
a2=(100,)
a3=(100,200,"python")
print(f"type(a1): {type(a1)}")
print(f"type(a2): {type(a2)}")
print(f"type(a3): {type(a3)}")
print(f"a3 : { a3 }")

x1, x2, x3 = a3
print(f"{x1}, {x2}, {x3}")
print(f"type(x1): { type(x1)}")
print(f"type(x3): { type(x3)}")

list_a=list(a3)
print(f"type(list_a) : { type(list_a) }")
print(f"list_a: {list_a}")


 

 

728x90

댓글