1. 튜플(Tuple)
- 리스트와 비슷하지만 리스트는 대괄호로 자료를 감싸고, 튜플은 소괄호로 감쌈
- 요소의 수정, 삭제 불가능
tu1 =()
print(tu1)
tu1[0] = 100 #TypeError: 'tuple' object does not support item assignment
- ()
tu2 = (1,3,5,7)
print(tu2)
-(1, 3, 5, 7)
tu3 = 1,3,5,7
print(tu3)
print(type(tu3))
- (1, 3, 5, 7)
<class 'tuple'>
tu4 = ('apple','banana',('🍓','🍉'))
print(tu4)
tu5 = ('apple','banana',['🍓','🍉'])
print(tu5)
print(type(tu5))
- tu4⸱=⸱('apple','banana',('🍓','🍉'))
print(tu4)
tu5⸱=⸱('apple','banana',['🍓','🍉'])
print(tu5)
print(type(tu5))
- ('apple', 'banana', ('🍓', '🍉'))
('apple', 'banana', ['🍓', '🍉'])
<class 'tuple'>
tu6 = (1,2,'apple','banana')
print(tu6)
print(tu6[2])
tu6[2] = 'orange' #TypeError: 'tuple' object does not support item assignment
del tu6[2]#TypeError: 'tuple' object doesn't support item deletion
tu7 = ('apple', 'banana', ['🍓', '🍉'])
tu7[2][1] = '🍌' # 리스트의 요소이므로 변경이 가능
print(tu7)
tu7[2] = '🥩' #TypeError: 'tuple' object does not support item assignment
tu8 = ('apple','banana',['🍓', '🍉'])
print(tu8)
tu8 = '🍗'
print(tu8)
- ('apple', 'banana', ['🍓', '🍉'])
🍗
3. 튜플의 인덱싱과 슬라이싱 연장
tu9 = (1,2,'apple','banana')
# 인덱싱
print(tu9[0])
print(tu9[-1])
# 슬라이싱
print(tu9[1:])
print(tu9[1:3])
# 덧셈(연결)
tu10 = (30,40)
print(tu9 + tu10)
tu11 = (tu9 + tu10)
#곱셈(반복)
print(tu9*3)
#요소의 갯수
print(len(tu9))
- 1
banana
(2, 'apple', 'banana')
(2, 'apple')
(1, 2, 'apple', 'banana', 30, 40)
(1, 2, 'apple', 'banana', 1, 2, 'apple', 'banana', 1, 2, 'apple', 'banana')
4
4. 튜플의 정렬
tu11 = (1, 3, 2, 0)
tu11.sort() # AttributeError: 'tuple' object has no attribute 'sort'
tu12 = sorted(tu11)
print(tu12)
- [0, 1, 2, 3]
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 제어문
2. 조건문
2-1. 비교 연산자
- <,>,<=,>=,==,!=
- 항상 결과는 bool형으로 반환
print(10>5)
print(10<5)
print(10>=5)
print(10<=5)
print(10==5)
print(10!=5)
True
False
True
False
False
True
2-2. if문
if 조건식(결과가 True 또는 False가 나오는 문장):
조건식이 True인 경우 실행할 문자
...
bool1 = True
if bool1:
print('결과는 참입니다.')
print('프로그램을 종료합니다.')
- 결과는 참입니다.
프로그램을 종료합니다.
bool2 = False
if bool2:
print('결과는 참입니다.')
print('프로그램을 종료합니다.')
- 프로그램을 종료합니다.
age = int(input('나이를 입력하세요:'))
if age >19:
print('성인입니다')
print('입력한 나이 : ',age)
- 나이를 입력하세요:30
성인입니다
입력한 나이 : 30
age = int(input('나이를 입력하세요:'))
if age >19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
print('입력한 나이 : ',age)
- 나이를 입력하세요:15
입력한 나이 : 15
2-3. if ~ else문
if 조건식(결과가 True 또는 False가 나오는 문장):
조건식이 True인경우 실행한 문장
else
조건식이 False인경우 실행할 문장
ge = int(input('나이를 입력하세요 :'))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다.')
else:
print('미성년입니다.')
print('디즈니를 보세요.')
print('입력한 나이:',age)
- 나이를 입력하세요 :40
성인입니다
넷플릭스 성인영화를 감상할 수 있습니다.
입력한 나이: 40
2-4. if~ elif ~ else문
if 조건식1(결과가 True 또는 False가 나오는 문장):
조건식1이 True인 경우 실행할 문장
elif 조건식2:
조건식2가 True인 경우 실행할 문장
# elif 조건식3:
조건식3이 True인경우 실행할 문장
else
모든 조건식이 False인 경우 실행할 문장
#필수문장이 아니다.
age = int(input('나이를 입력하세요 :'))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다.')
elif age > 6:
print('어린이 입니다.')
elif age > 0:
print('유아입니다.')
else:
print('입력을 확인하세요')
print('입력한 나이:',age)
- 나이를 입력하세요 :6
유아입니다.
입력한 나이: 6
2-5. 산술 연산자
+,=,,/,%,//,**
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 % 3)
print(10 // 3)
print(10 ** 3)
- 13
7
30
3.3333333333333335
1
3
1000
2-6. 삼항 연산자
결과가 True일 때 실행할 문장 if 조건식 else 결과가 False일 때 실행할 문장
num = int(input('숫자를 입력하세요:'))
if num % 2 == 0:
print('짝수')
else:
print('홀수')
- 숫자를 입력하세요:5
홀수
num = int(input('숫자를 입력하세요:'))
print('짝수') if num %2 == 0 else print('홀수')
- 숫자를 입력하세요:4
짝수
문제.
- 국어점수, 영어점수, 수학점수를 입력받아 총점, 평균,학점을 구하는 프로그램을 작성해보자
- 단, 학점은 평균 준이며 90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 60점 이상은 D 나머지는 F로함
kor, eng, math = input('국어점수 ,영어점수, 수학점수를 나란히 입력하세요').split(' ')
print('총점:',int(kor)+int(eng)+int(math))
print('평균:', (int(kor)+int(eng)+int(math))/3)
avg = ((int(kor)+int(eng)+int(math))/3)
if avg >= 90:
print('학점 : A ')
elif avg >= 80:
print('학점 : B ')
elif avg >= 70:
print('학점 : C ')
elif avg >= 60:
print('학점 : D ')
else:
print('학점 : F ')
- 국어점수 ,영어점수, 수학점수를 나란히 입력하세요90 90 90
총점: 270
평균: 90.0
학점 : A
문제 2번
- 숫자를 입력받아 2의 배수인지 3의 배수인지 아니면 2,3의 배수가 모두 아닌지를 판별하는 프로그램을 작성해보자
1)
num = int(input('숫자를 입력하세요.'))
if num %2 == 0:
print('2의 배수')
elif num %3 == 0:
print('3의 배수')
else:
print('2,3의 배수가 모두 아닙니다. ')
- 숫자를 입력하세요.5
2,3의 배수가 모두 아닙니다.
2)
num = int(input('숫자를 입력하세요:'))
print (f'{num}은 2의 배수')if num %2 == 0 else print(f'{num}은 3의 배수 ')if num%3 == 0 else print(f'{num}은 2,3의 배수가 아니다' )
- 숫자를 입력하세요:3
3은 3의 배수
2-7.논리 연산자 (AND)
- 양쪽 두식의 값이 모두 True인 경우 결과가 True가 되는 연산자
AB결과
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
*예) 정보처리 기사 자격을 취득하기 위해서는 모든과목을 40점 이상, 평균이 60점 이상 되어야함
#로그인 프로그램 만들기
#아이디 : admin, 비밀번호: 1234
userid = input(' 아이디를 입력하세요')
userpw = input(' 비밀번호를 입력하세요')
if userid == 'admin' and userpw =='1234':
print('로그인 되었습니다')
else:
print('아이디 또는 비밀번호를 확인하세요')
- 아이디를 입력하세요1234
비밀번호를 입력하세요2345
아이디 또는 비밀번호를 확인하세요
2-8. 논리 연산자(OR)
- 양쪽 두 식의 값이 하나라도 True인 경우 결과가 True가 되는 연산자
AB결과
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
#주민등록번호에 의한 성별을 판별하는 프로그램 만들기
#0010113068518
juminNo = input('주민등록번호 13자리를 -없이 입력하세요.')
if juminNo[6] == '1' or juminNo[6] =='3' or juminNo[6] =='5' or juminNo[6]=='7' or juminNo[6] =='9' :
print('남자')
else:
print('여자')
- 주민등록번호 13자리를 -없이 입력하세요.0010113068518
남자
bool1 = True
if bool1:
print('결과는 참입니다.')
else:
print('결과는 거짓입니다. ')
- 결과는 참입니다.
bool1 = True
if not bool1:
print('결과는 참입니다.')
else:
print('결과는 거짓입니다. ')
- 결과는 거짓입니다.
print(10/3) #3.3333333333333335 ????
1.반복문
1-1. 자료형 참/ 거짓 판단하기
- 파이썬에서 사용되는 모든 자료형은 참 또는 거짓으로 표현이 가능
bool1 = True
print(bool1)
print(type(bool1))
- True
<class 'bool'>
num1 = 10
print(num1)
print(type(num1))
num2 = 0
print(num2)
print(type(num2))
print(bool(num2))
- 10
<class 'int'>
0
<class 'int'>
False
str1 = "안녕"
print(str1)
print(type(str1))
print(bool(str1))
str1 = " "
print(str1)
print(type(str1))
print(bool(str1))
- 안녕
<class 'str'>
True
<class 'str'>
True
list1 = [1,2,3]
print(list1)
print(type(list1))
print(bool(list1))
list2=[]
print(list2)
print(type(list2))
print(bool(list2))
- [1, 2, 3]
<class 'list'>
True
[ ]
<class 'list'>
False
list = [1,3,5]
if list:
print('요소있습니다.')
else:
print('요소 없습니다.')
- 요소있습니다.
1-2. 대입연산자
- =,+=,-=,*=,/=,%=
- 왼쪽에 저장된 값과 오른쪽에 값을 연산한 뒤 다시 왼쪽에 대입(inplace연산)
num = 10
num +=1 #num= num+1
print(num)
- 11
num -=10
print(num)
- 1
num *=10
print(num)
- 10
num /=10
print(num)
- 1.0
num %=2
print(num)
- 1.0
1-3. while 문
while 조건식:
조건식의 결과가 True 인 동안 반복할 문장
#무한 루프
while True:
print('끝나지 않는 반복')
i = 1
while i <=5:
print('Hello Python')
i +=1
- Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
print(f'현재 I의 값:{i}')
- 현재 I의 값:6
#1~10까지의 총합
#1+2+3+4+5+6+7+8+9+10
'''
sum = 0 , 1, 3, 6, 10 , 15, 21, 28, 36, 45, 55
i = 1 , 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
'''
i = 1
sum = 0
while i <= 10:
sum += i
i+= 1
print(f'1부터 10까지의 합: {sum}')
- 1부터 10까지의 합: 55
문제
- 1~100까지 짝수의 종합을 구하는 프로그램을 작성해보자
i= 1
sum = 0
while i <= 100:
if i%2 ==0:
sum +=i
i += 1
print(f'1부터 100까지 짝수의 종합: {sum}')
- 1부터 100까지 짝수의 종합: 2550
문제 2
- 원하는 단을 입력받아 해당 단의 구구단을 출력하는 프로그램을 작성해보자
num = int(input('원하는 단을 입력하시오:'))
print(f'{num}단')
i = 1
while i <= 10:
result = num * i
result
print(f'{num} * {i} = {result}')
i += 1
원하는 단을 입력하시오:4
4단
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
4 * 10 = 40
1-4. for in 문
for 변수 in 이터러블 객체
이터러블 객체의 요소 갯수만큼 반복할 문장
list1 = [10, 20, 30, 40]
for li in list1:
print(li)
- 10
20
30
40
import collections
# isinstance(인터러블한 객체인지 확인하고자 하는객체, collections, lterable)
isinstance(list1,collections.Iterable)
-True
#range(): 범위를 생성해주는 함수
#range(시작인텍스, 종료인덱스, 증가값)
num = range(0,10,1)
print(num)
- range(0, 10)
for i in num:
print(i, end=' ')
- 0 1 2 3 4 5 6 7 8 9
isinstance(num, collections.Iterable)
- True
for i in range(0, 10, 1):
print(i, end=' ')
- 0 1 2 3 4 5 6 7 8 9
#증가값을 생략하면 기본값은 1
for i in range(0, 10):
print(i, end=' ')
- 0 1 2 3 4 5 6 7 8 9
#시작값을 생략하면 기본값은 0
for i in range(1,10,2):
print(i,end=' ')
-1 3 5 7 9
문제
for in 문을 이용하여 1~100까지의 짝수의 총합을 구하는 프로그램을 작성해보자
sum = 0
for i in range(0,101,2):
sum += i
print(f'1부터 100까지의 총합{sum}')
- 1부터 100까지의 총합2550
1-5. enumerate
- 반복문 사용 시 몇번째 반복인지 인덱스 번호로 확인
- 인덱스 번호와 요소를 튜플 형태로 변환
li1 = [10, 20, 30, 40, 50]
for e in enumerate(li1):
print(e)
- (0, 10)
(1, 20)
(2, 30)
(3, 40)
(4, 50)
for i, v in enumerate(li1):
print(f'index:{i}, value:{v}')
- index:0, value:10
index:1, value:20
index:2, value:30
index:3, value:40
index:4, value:50
---------------------------------------------------------------------------------------------------------------------------------------------------------------
오늘 문제를 풀었는데 반은 성공하고 반은 실패했다 아무래도 집중력이 떨어졌던것같다.
그와동시에 뭔가 다음에는 실패 없을거라는 다짐을 했다 내가 하고만다.
과제가 있다 과제를 알아보는 과정에서 영어만 나온다 영어를 제일 못하는데 독해를 해봐야겠다.
머리가 깨질거같다. 영어공부 다시 해야겠다