-
파이썬 용어 정리국비 교육 내용 정리 2023. 8. 24. 15:37
(1) 용어정리1
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 24 09:40:40 2023
@author: wlstn
"""
"""
# F9 키로 한줄또는 선택영역 실행
# 한줄 주석
"""
# 여러줄 주석
'''
여려줄 주석
여러줄 주석은 나중에 문자열 표현에서도 사용됨.
'''
print('hello')
print('hello')
# 여러개의 데이터 화면에 출력
print(10,20,30,40,50)
# 문자열을 여러번 출력
print("abc"*3)
print("abc"*3)
# 문자열+숫자 안됨.
print("학번:"+100) #오류발생
print("학번",100)
print("학번"+"100") # 문자열간의 +연산은 가능함
print("학번:" + str(100)) #str() : 문자열로 변환
print("'안녕하세요' 라고 말했습니다.")
print('"안녕하세요" 라고 말했습니다.')
# \"
print("\"안녕하세요\" 라고 말했습니다.")
print('\'안녕하세요\' 라고 말했습니다.')
# \n : new line
print("동해물과 백두산이 마르고 닳도록 \n 하느님이 보우하사")
#\ 라인 연결. 다음라인도 연결된 문장.
print("동해물과 백두산이 마르고 닳도록 \
하느님이 보우하사")
'''
여러줄 주석
문자열의 """ 표시는 여러줄 문자열 표시에 사용 가능함
'''
print(""" 동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 """)
# 10 20 30 출력
print(10,end="\t")
print(20,end="\t")
print(30,end="\n") # end 속성값의 기본값: \n
#10,20,30 출력
print(10,end=",")
print(20,end=",")
print(30)
# print("문장의 처음에 공백이 있으면 오류") # 들여쓰기 오류남
# 문자열: 문자들의 모임. 문자여러개. 문자의 배열로 인식
print("안녕하세요"[0]) #안
print("안녕하세요"[2]) #하
#문자열의 범위를 지정하여 출력하기
#문자열[첫번째인덱스: 마지막인덱스+1:증감값]
print("안녕하세요"[0:2]) #안녕. 0번인덱스부터 1번인덱스까지
print("안녕하세요"[:2]) #안녕. 처음부터 1번인덱스까지
# 처음부터 4번인덱스까지 2칸씩
print("안녕하세요"[:5:2]) #안하요
print("안녕하세요"[2:]) #하세요. 2번인덱스 이후
print("안녕하세요"[::2])#안하요
print("안녕하세요"[::-1])#뒤부터 요세하녕만
len=9
#len() :문자열의 길이
print(len("안녕하세요"))
len("안녕하세요")
#### 자료형: 변수선언하지 않고 사용
# 변수의 자료형은 값으로 설정됨.
n = 10
type(n)
n = 10.5
type(n)
n='안녕'
type(n)
#### 연산자
# 산술연산자 : +,-,*,/,%,//,**
5+7
5*7
5/7
7%5
5%7
5//7 #정수형 몫의 값
5**2 # 5*5, 제곱
5^2 # 비트연산자 (XOR)
# 문제: 3741초가 몇시간 몇분 몇초인지 출력하기( 1시간 2분 21 초)
# 계산방법1
total_seconds = 3741 # 변수에는 변환하고자 하는 총 초수인 3741이 들어갑니다.
hours = total_seconds // 3600 # 1 시간은 3600 초입니다. 정수형 몫의값
remaining_seconds = total_seconds % 3600 # 변수에는 총 초수를 3600으로 나눈 나머지가 저장됩니다. 이렇게 하면 시간을 제외한 나머지 초수가 계산됩니다
minutes = remaining_seconds // 60 # 나머지 몫이 분
seconds = remaining_seconds % 60 # 나누면 초
print(f"{hours}시간 {minutes}분 {seconds}초")
# 계산방법2
print(3741//3600,"시간",(3741%6000)//60,"분",(3741%60),"초")
# 계산방법3
second = int(input("초를 입력하세요:"))
print(second//3600,"시간",(second%3600)//60,"분",\
(second%60),"초")
# 대입연산자 : =,+=,-=,*=, ....
a=10
a += 10
a
a -=5
a
a *=2
a
# 문자열에서 사용가능한 대입연산자: =,+=,*=
s= "abc"
s += "d"
s *= 3
s
# 자연수를 입력받아 +100을한 값을 출력하기
num = int(input("자연수를 입력하세요: "))
num += 100
print("입력한 수에 100을 더한 값:", num)
# 형변환 함수
# int() : 정수형으로 변환
# float() : 실수형으로 변환
# str() : 문자열형으로 변환
print("num+100="+str(num))
print("num+100",num)
# 2,8,16 진수를 10진수로 변환
print(int("11",2))
print(int("11",8))
print(int("11",16))
# 10진수를 2,8,16진수로 변환
print(10,"의 2진수:",bin(10))
print(10,"의 8진수:",oct(10))
print(10,"의 16진수:",hex(10))
#형식문자를 이용하여 출력하기 :
# %d(10진수정수)
# %f(실수)
# %s(문자열)
print("%d * %d = %d" % (2.0,3,6))
print("%f * %f = %f" % (2,3,6))
print("%.2f * %.2f = %.2f" % (2,3,6))
# %x,%X : 16진수 표현
print("%X" % (255))
print("%x" % (255))
print("안녕 %s!, 나도 %s" % ("홍길동","김삿갓"))
#format 함수를 이용한 출력
#{0.5d} : 첫번째값을 정수형 5자리로 출력
#{1.5d} : 두번째값을 정수형 5자리로 출력
#{2:5d} : 세번째값을 정수형 5자리로 출력
print("{0:5d}{1:5d}{2:5d}".format(100,200,300))
print("{1:5d}{2:5d}{0:5d}".format(100,200,300))
# 직접 변수이름으로 출력
a=100
b=200
print(f"{a},{b}")
print(a,b)
### 조건문 : if문
# 들여쓰기 해야함
score = 65
if score >= 90:
print("A학점")
print("합격입니다.")
else:
if score >= 80:
print("B학점")
print("합격입니다.")
else:
if score >= 70:
print("C학점")
print("합격입니다.")
else:
if score >= 60:
print("D학점")
else:
print("F학점")
# if elif 구문 = (if else의 파이선 표현)
if score >= 90:
print("A학점")
print("합격입니다.")
elif score >= 80:
print("B학점")
print("합격입니다.")
elif score >= 70:
print("C학점")
print("합격입니다.")
elif score >= 60:
print("D학점")
print("합격입니다.")
else:
print("F학점")
print("불합격입니다.")
score = 70
if(score >= 60) :
print("합격입니다,")
print("자격증을 받으러 오세요")
# 점수가 60이상이면 PASS 60미만이면 FAIL을 출력하기
score = 65
if score >= 60:
print("PASS")
else :
print("FAIL")
if score >= 60 :
print("PASS")
elif score < 60 :
print("FAIL")
# 간단한 조건식
# TRUE if 조건식 else FALSE
score = 65
print(score,"점수는",'PASS' if score>=60 else 'FAIL')
# 반복문
# 1부터 100까지의 합 구하기
num = 100
hap = 0
# range(1, num+1, 증감값) : 1부터 num까지의 숫자들
for i in range(1, num + 1):
hap += i
print("1부터 %d까지의 합: %d" % (num, hap))
# 1~100 까지 짝수의 합 구하기
hap=0
for i in range(1,num+1) :
if i % 2 == 0:
hap += i
print("1부터 %d까지의 짝수합: %d" % (num, hap))
hap=0
for i in range(2,num+1,2) : # for 루프를 사용하여 range(2, num+1, 2) 구간을 순회합니다.
#range(start, stop, step) 함수는 start부터 시작해서 stop 바로 앞까지 step만큼 증가하는 숫자들을 생성합니다.
#여기서는 2부터 시작해서 2씩 증가하는 숫자들을 생성하게 됩니다. 이는 짝수만을 대상으로 합니다.
hap += i
print("1부터 %d까지의 짝수합: %d" % (num, hap))
#12345 반복문을이용하여 출력하기
print(12345)
for i in range(1,6) :
print(i,end="")
# while 조건문: 조건문의 결과가 참인 동안 반복함
num = 1
while num <=5 :
print(num,end="")
num +=1
#break: 반복문 종료
#continue: 반복문의 처음으로 제어 이동
hap = 0
for i in range(1,11) : #1 ~ 10
if i == 5 :
break;
hap += i
print('hap=',hap) #10
hap = 0
for i in range(1,11) :
if i == 5 :
continue
hap += i
print('hap=',hap) # 50
# 1 ~ 45사이의 숫자 6개 출력하기
# 난수 생성하기
import random #모듈
rnum = random.randrange(1,46) #1~45까지의 임의의 수
print(rnum)
for i in range(1,7) :
print(random.randrange(1,46),end=",")
"""
컴퓨터가 1부터 99사이의 임의의 수를 저장하고,
숫자를 입력받아서 컴퓨터가 저장한 수를 맞추기.
컴퓨터는 입력한 숫자가 정답과 비교하여 큰수,작은수 인지 출력.
정답 입력시 입력한 횟수를 출력하기.
1. 난수생성
2. 정답을 맞추는 동안 계속 입력 받기. => while True :
정답이 입력되는 break
"""
rnum = random.randrange(1,100) #1~99까지의 임의의 수
cnt = 0
while True :
a = int(input("숫자를 입력하세요"))
cnt += 1
if a > rnum :
print(a,"보다 작은수입니다.")
elif a < rnum :
print(a,"보다 큰수입니다.")
else :
print("정답입니다.")
print("%d번만에 정답을 맞췄습니다." %(cnt))
break
# 중첩반복문
i,j=0,0 #초기화 방식
for i in range(2,10) : # 2 ~ 9
print("%5d단" % i)
for j in range(2,10): # 2 ~ 9
print("%2d X %2d = %3d" %(i,j,(i*j)))
print()
'''
1. 직각 삼각형 출력하기
'''
h=5
### 1 ###
for i in range(1,h+1):
for j in range(1,i+1):
print("*",end="")
print()
### 2 ###
for i in range(1,h+1) :
print("*"*i)
"""
2. 역 직각 삼격형 출력하기
*****
****
***
**
*
"""
for i in range(5,0,-1):
print("*"*i)
"""
3. 역 직각 삼각형 출력하기
*****
/****
//***
///**
////*
"""
for i in range(h, 0, -1):
print("/" * (h - i) + "*" * i)
for i in range(h,0,-1) :
print("/" * (h-i),end="/")
print("*"*i)
"""
4. 직각 삼각형 출력하기
////*
///**
//***
/****
*****
"""
for i in range(1, 6):
print("/ " * (5 - i) + "*" * i)
for i in range(1,h+1,1) :
print("/" * (h-i), end="/")
print("*"*i)
##### 문자열 함수
'''
len(문자열): 문자열의 길이
문자열.count(문자) : 문자열에서 문자의 위치 리턴
문자열.find(문자) : 문자열에서 문자의 위치 리턴
문자가 없는 경우 -1 리턴
문자열.index(문자): 문자열에서 문자의 위치 리턴
문자가 없는 경우 오류 발생
'''
a = "hello"
# a 문자열에서 'l' 문자의 개수 출력하기
cnt = 0
# len(a): a 문자열의 길이 5
for i in range(len(a)):
if a[i] == 'l': # 'l' 문자의 개수를 세기 위해 수정
cnt += 1
print(a, "에서 'l' 문자의 개수:", cnt)
print(a,"에서 l 문자의 갯수:", a.count('l'))
print(a,"에서 a 문자의 갯수:", a.count('a')) #0
#a 문자열에서 1문자의 위치(인덱스) 출력하기
print(a,"에서 l문자의 위치:",a.find('l')) #2
print(a,"에서 l문자의 위치:",a.index('l')) #2
#a 문자열에서 3문자의 위치 부터 l문자의 위치(인덱스) 출력하기
print(a,"에서 l문자의 위치:",a.find('l',3)) #3
print(a,"에서 l문자의 위치:",a.index('l',3)) #3
#a 문자열에서 1문자의 위치(인덱스) 출력하기
print(a,"에서 o문자의 위치:",a.find('o',3)) #4
print(a,"에서 o문자의 위치:",a.index('o',3)) #4
#a 문자열에서 4번인덱스 부터 l문자의 위치(인덱스) 출력하기
print(a,"에서 l 문자의 위치",a.find('l',4)) #-1
print(a,"에서 l 문자의 위치:",a.index('l',4)) #오류
# a문자열에서 a문자의 위치(인덱스) 출력하기
print(a,"에서 a문자의 위치:",a.find('a')) #-1
print(a,"에서 a 문자의 위치:",a.index('a')) #오류. 예외처리필요
#문자열의 종류 알려주는 함수
ss = '123'
ss = 'Aa123'
ss = 'Aa'
ss = 'AA'
ss = 'aa'
ss = ' '
ss = ' aa '
ss = ' Aa '
if ss.isdigit() :
print(ss,": 숫자")
if ss.isalpha() :
print(ss, ": 문자")
if ss.isalnum() :
print(ss, ": 문자 또는 숫자")
if ss.isupper() :
print(ss,": 대문자")
if ss.islower() :
print(ss, ": 소문자")
if ss.isspace() :
print(ss,": 공백")
(2) 용어정리2
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 24 15:30:19 2023
@author: wlstn
"""
############
# Collection : 여러개의 데이터 저장할 수 있는 객체
# list(리스트): 배열의 형태. 인덱스 사용가능. []로 표시함.
# tuple(튜플): 상수화된 리스트.변경불가리스트. ()로 표시함.
# set(셋): 중복불가. 집합 {}로 표시함
# dictionary(딕셔너리) : 자바의 Map. (key,value)쌓인 객체들 {}로 표시함
#############
#리스트
a=[0,0,0,0] #[10,20,30,40]
b=[]
print(a,len(a)) #len(a) : 리스트 요소의 갯수
print(b,len(b))
#a 리스트의 길이 만큼 숫자를 입력받아, a에 저장하고, 입력받은 수의
# 전체 합계를 출력하기
hap=0
for i in range(len(a)) : #i: 0~3
a[i] = int(input(str(i+1)+'번째 숫자 입력:' ))
hap += a[i]
print(a,"요소의 합:",hap)
print(a,"요소의 합",sum(a)) #sum(리스트) : 리스트요소의합
# a리스트의 길이 만큼 숫자를 입력받아,
# b에 저장하고, 입력받은 수의 합계 출력하기
for i in range(len(a)) : #i: 0 ~ 3
#b리스트 요소는 없으므로 0번 인덱스에 해당하는 b[0]은 없다
# b[i] = int(input(str(i+1)+'번째 숫자 입력: )) #오류 발생
#b.append : b리스트에 요소를 추가.
b.append(int(input(str(i+1)+'번째 숫자 입력: ')))
print(b,"요소의 합:",sum(b)) #sum(b) : b요소의 합
#%s : 문자열표현의 형식 문자. list값도 %s로 사용 가능
print("b=%s" % b)
'국비 교육 내용 정리' 카테고리의 다른 글
ERD 참조 (0) 2023.08.31 스프링: 의존성 지향 DI 기억하라 (0) 2023.07.26 table 만들때 중요한 사항(2023-07-25) (0) 2023.07.25 2023년 06월 22일 국비내용정리(JSP) (0) 2023.06.22 2023년 6월 21일 (tomcat,jsp) (0) 2023.06.21