work_for_for.py
# 19
for i in range(5):
for j in range(5):
print('j:', j, sep='', end=' ')
print('i:', i, '\\n', sep='')
for i in range(5):
for j in range(5):
print('*', end='')
print()
for i in range(3):
for j in range(7):
print('*', end='')
print()
for i in range(5):
for j in range(5):
if j <= i:
print('*', end='')
print()
for i in range(5):
for j in range(5):
if j == i:
print('*', end='')
print()
for i in range(5):
for j in range(5):
if j ==i:
print('*', end='')
else:
print(' ', end='')
print()
print("end")
#
# inp = int(input())
# inp2 = inp*2+1
# for i in range(inp2):
# if i%2 == 0:
# inp2 = inp2 -1
# i = i -1
# else:
# print(' '*(inp2//2), end='')
# print('*'*i, end='')
# print(' '*(inp2//2), end='')
# print()
# inp2 = inp2 - 1
# i = i +1
workd_for.py
# 16
for i in range(100):
print('Hello, world!')
print(range(10))
print(list(range(10)))
for i in range(5,12):
print('Hello, world!', i)
for i in range(0, 10, 2):
print('Hello, world!', i)
for i in range(10, 0): #는 작동하지 않음 - 10에서 0개만 사용하기 때문
print('Hello, world', i)
for i in range(10,0,-1):
print('Hello, world!', i)
for i in reversed(range(10)):
print('Hello, world!', i)
for i in range(10):
print(i, end=' ')
i = 10
print("")
# count = int(input('반복할 횟수를 입력하세요: '))
# for i in range(count):
# print('Hello, world!', i)
a = [10, 20, 30, 40, 50]
for i in a:
print(i)
fruits = ('apple', 'orange', 'grape')
for fruit in fruits:
print(fruit)
for letter in 'Python':
print(letter, end= ' ')
print("")
for letter in reversed('Python'):
print(letter, end=' ')
print("")
#
# a = int(input())
# for num in range(1,10):
# print(f'{a} * {num} = {a*num}')
work_list_tuple.py
a = [10, 20, 30]
a.append(500)
print(a)
print(len(a))
a = []
a.append(10)
print(a)
a = [10, 20, 30]
a.append([500, 600])
print(a)
print(len(a))
a = [10, 20, 30]
a.extend([500, 600])
print(a)
print(len(a))
a = [10, 20, 30]
a.insert(2,500)
print(a)
print(len(a))
a = [10, 20, 30]
a.insert(0, 500)
print(a)
a = [10, 20, 30]
a.insert(1,[500, 600])
print(a)
a = [10, 20, 30]
print(a.pop())
print(a)
a = [10, 20, 30]
del a[1]
print(a)
a = [10, 20, 30]
a.remove(20)
print(a)
a = [10, 20, 30, 20]
a.remove(20)
print(a)
a = [10, 20, 30, 15, 20, 40]
print(a.index(20))
print(a.count(20))
a.reverse()
print(a) #print(a.reverse())는 None 나옴
a = [10, 20, 30]
a.clear()
print(a)
a= [10, 20, 30]
del a[:]
print(a)
a = [10, 20, 30]
a[len(a):] = [500]
print(a)
a = [10, 20, 30]
a[len(a):] = [500, 600]
print(a)
seq = [10, 20, 30]
print(seq[-1])
seq = []
if seq:
print(seq[-1])
a = [0,0,0,0,0]
b = a
print(a is b)
b[2] = 99
print(a)
print(b)
a = [0,0,0,0,0]
b = a.copy()
print(a is b)
print(a == b)
b[2] = 99
print(a)
print(b)
a = [38, 21, 53, 62, 19]
for i in a:
print(i)
for i in [38,21,53,62,19]:
print(i)
for index, value in enumerate(a):
print(index+1, value)
for index, value in enumerate(a, start=1):
print(index, value)
a= [38, 21, 53, 62, 19]
smallest = a[0]
for i in a:
if i < smallest:
smallest = i
print(smallest)
a= [38, 21, 53, 62, 19]
largest = a[0]
for i in a:
if i > largest:
largest = i
print(largest)
a= [38, 21, 53, 62, 19]
a.sort()
print(a[0])
a.sort(reverse=True)
print(a[0])
a = [10, 10, 10, 10, 10]
print(sum(a))
a = [i for i in range(10)]
print(a)
b = list(i for i in range(10))
print(b)
c = [i + 5 for i in range(10)]
print(c)
d = [i*2 for i in range(10)]
print(d)
a = [i for i in range(10) if i % 2 ==0]
print(a)
b = [i + 5 for i in range(10) if i % 2 == 1]
print(b)
a = [i*j for j in range(2,10) for i in range(1,10) ]
print(a)
a = [i * j for j in range(2,10)
for i in range(1,10)]
print(a)
a = [1.2, 2.5, 3.7, 4.6]
for i in range(len(a)):
a[i] = int(a[i])
print(a)
a = list(map(str, range(10)))
print(a)
# a = input().split()
# print(a)
a,b =[10, 20]
print(a)
print(b)
#
# a,b = map(int, input().split()) 를 풀어서 쓰면
#
# x = input().split()
# m = map(int, x)
# a,b = m
a = (38, 21, 53, 62, 19, 53)
print(a.index(53))
a = (10, 20, 30, 15, 20, 40)
print(a.count(20))
a = (38, 21, 53, 62, 19)
for i in a:
print(i, end=' ')
print()
a = tuple(i for i in range(10) if i % 2 == 0)
print(a)
print(i for i in range(10) if i % 2 == 0)
a = (1.2, 2.5, 3.7, 4.6)
a = tuple(map(int, a))
print(a)
a = (38, 21, 53, 62, 19)
print(min(a))
print(max(a))
print(sum(a))
a,b = input().split(' ')
jegob3 = []
for jegob in range(int(a),int(b)+1):
if jegob == int(b):
jegob3.append(2**jegob)
else:
jegob3.append(2**jegob)
jegob3.pop(-2)
jegob3.pop(2)
print(jegob3)
ex_while_01.py
# while문은 반복을 중단하는 것이 중요
# for문은 반복가능한 조건을 제공하면 파이썬 해석기가 원소를 순차적으로 반복하여 더 이상 동작할 원소가 없으면 해당 수행을 완료 함
# while문은 조건이 참이라면 해당 내용을 수행하고 초기값으로 갱신하여 반복하는 형식
# -----------------------------------------------------------------
# 반복문 - 2 while 반복문
# - 주로 반복의 횟수가 정해지지 않은 경우에 사용
# - 반복의 횟수가 정해진 경우에도 사용 가능함 (for문이 편해서 주로 for문 사용)
# -----------------------------------------------------------------
# [요청] 사용자로부터 좋아하는 음식명을 입력 받아주세요.
# => input()
# 단, 사용자가 '종료'라는 음식명 입력 전까지 입력 받으세요
# => 몇 번 입력받아야 입력이 끝날 지 알 수 없음
# -----------------------------------------------------------------
# [요청2] 사용자로부터 좋아하는 음식명을 입력 받아주세요.
# => input()
# 단, TOP 5로 가장 좋아하는 음식 5개만 입력 받으세요.
# => 5번 입력받아야 함
# -----------------------------------------------------------------
Test = False # 실습용 코드 제어 변수
if Test :
foods = []
for f in range(5):
food = input("좋아하는 음식명을 적어주세요: ")
foods.append(food)
print(f'좋아하는 음식 {foods[0]}, {foods[1]}, {foods[2]}, {foods[3]}, {foods[4]}입니다.')
# 항상 리스트에 담을 필요는 없다.
print("당신은 ", end='')
for food in foods:
print(food, end="" if foods[-1] == food else ', ')
print('을 좋아하는 군요!')
strFoods= ""
for cnt in range(5):
food = input(f'{cnt+1}번째 좋아하는 음식명 입력: ')
strFoods = strFoods + food + (', ' if cnt != 4 else '')
print(f'좋아하는 음식 => {strFoods}')
print(f'당신은 {strFoods}를 좋아하시는군요!')
# 스트링에 담고 필요할 때 스플릿으로 분리하자
# -----------------------------------------------------------------
# 기본 while 문법
# while 조건식 :
# <--> 실행코드
# <--> 실행코드
# -----------------------------------------------------------------
# 타이머 프로그램 만들기 => 다운카운팅 : 10 9 8 7 ... 1
downCnt = 10
while downCnt>0: #downCnt>=1 : 로도 가능
print(f'다운 카운팅 : {downCnt}초')
downCnt -= 1
# -----------------------------------------------------------------
# [요청] 사용자로부터 좋아하는 음식명을 입력 받아주세요.
# => input()
# 단, 사용자가 '종료'라는 음식명 입력 전까지 입력 받으세요
# => 몇 번 입력받아야 입력이 끝날 지 알 수 없음
# -----------------------------------------------------------------
# strFoods = ""
# while
# food = input
# 타이머 프로그램 만들기 => 업카운팅 : 1 2 3 4 ...10
upCnt = 1
while upCnt<=10:
print(f'업 카운팅 : {upCnt}초')
upCnt += 1
# -----------------------------------------------------------------
# 동일한 문제를 for ~ in 반복문으로 구현
# -----------------------------------------------------------------
for downCnt in range(10,0,-1):
print(f'다운 카운팅 : {downCnt}초')
print('땡!')
for upCnt in range(1,11):
print(f'업 카운팅 : {upCnt}초')
∑print('땡!'
# 항상 리스트에 담을 필요는 없다.
# 스트링에 담고 필요할 때 스플릿으로 분리하자
ex_while_02.py
# -----------------------------------------------------------------
# 반복문 - 2 while 반복문
# - 반복의 횟수가 정해진 경우 사용 가능함
# -----------------------------------------------------------------
# [요청] 사용자가 알고 싶어하는 단을 입력 받아서 해당 단의 구구단을 입력
# 단, while 반복문 사용하기
# [예시] 알고 싶은 단 입력 : 3
# --3단--
# 3 * 1 = 3
# 3 * 2 = 6
# 3 * 3 = 9
# 3 * 4 = 12
# 3 * 5 = 15
# 3 * 6 = 18
# 3 * 7 = 21
# 3 * 8 = 24
# 3 * 9 = 27
# -----------------------------------------------------------------
TEST = False
if TEST:
Cnt = 1
dan = int(input("원하는 구구단 단 수를 입력해주세요: "))
print(f'{dan:-^11}')
while Cnt<=9 :
print(f' {dan} * {Cnt} = {dan*Cnt:>2}')
Cnt += 1
cnt = 1
dan = 2
while dan <=9:
print(f"{dan:-^11}", end='\t' if dan != 9 else '\n')
dan += 1
dan = 2
while not dan==9:
cnt = 1
print(f"{dan} * {cnt} = {dan*cnt:>2}", end='\t' if dan != 9 else '\n')
cnt += 1
dan += 1
cnt = 1
dan, unit =2, '단'
num = 1
while dan < 10:
print(f'{dan:->5}{unit:-<5}')
num = 1
while num<10:
print(f'{dan}*{num}={dan*num:2}')
num += 1
dan += 1
ex_while_03.py
# -----------------------------------------------------------------
# 반복문 - 2 while 반복문
# - 반복의 횟수 정해 지지 않은 경우
# -----------------------------------------------------------------
# [요청] 사용자가 'x' 입력 전까지 입력 받은 데이터 저장해 주세요.
saves = ""
while not saves in ("x", "X") :
saves = input("저장하고 싶은 내용을 작성해주세요(종료버튼은 x입니다): ")
print("프로그램을 종료합니다.")
while True:
data=input("저장하고 싶은 데이터 입력(종료 x): ")
# 종료 검사
if data in ('x', 'X'): break
print("OK")
print("프로그램 종료")
# 코드값 0은 48, A는 65, a는 97 정도는 기억하자
ex_while_04.py
# -----------------------------------------------------------------
# continue => 계속해서~
# - 키워드 아래 코드 실행 안됨
# - 반복 상단으로 이동
# -----------------------------------------------------------------
# 1 ~ 30으로 구성된 리스트를 생성하세요
numList = list(range(1,31))
# 리스트의 요소 중에서 짝수인 경우만 화면에 출력해 주세요~
# print(numList[0])
# print(numList[1])
# ...
# print(numList[28])
# print(numList[29])
for data in numList:
if not data % 2:
print(data)
for data in numList:
if data%2: # 1은 True, 0은 False 잊지 말자
continue # for문, while문 모두 사용
print(data)
print("for문 방법")
idx = -1
while idx<30:
idx +=1
if numList[idx]%2:
continue
print(f'{idx}번째 요소 값 : {numList[idx]}')
print("while문 방법\n")
# 설명을 들으면 이해는 되는데 혼자서 디버깅은 힘들 것 같다... 공부하자 공부
ex_while_05.py
# -----------------------------------------------------------------
# pass => 그냥 지나감
# - 키워드는 아무 일도 하지 않고 아무 일도 일어 나지 않음
# - 파이썬 문법 때문에 사용
# - if 조건문, for ~ in 반복문, while 반복문에서
# 실행 코드부분이 없는 경우에 사용함
# - 아직 문제 해결 방법 정해지지 않음을 나타냄!
# -----------------------------------------------------------------
num = 100
if num>10: # 조건문, 제어문은 무조건 들여쓰기 해야함. 무시하고 싶을 때 pass 사용
pass # 시간 잡아먹는 것을 확인하기 위해서도 작동
age = 30
for n in range(10):
pass
print("그냥")
ex_random.py
# -----------------------------------------------------------------
# 모듈(Module) : 특정 목적의 변수, 함수, 클래스를 하나의 파일에 담은 것
# - 예 : 수학 관련 변수, 함수, 클래스 ==> math.py
# 파이썬 기본 제공 변수, 함수, 클래스 ==> builtin.py
# - 사용법 : import 모듈명
# - 모듈의 기능 사용법 : 모듈명.변수명
# 모듈명.함수명()
# -----------------------------------------------------------------
# 사용하고 싶은 변수, 함수, 클래스가 있는 모듈 포함
import random # 임의의 수를 추출해주는 변수, 함수, 클래스 있는 모듈
import math # 수학 관련 변수, 함수, 클래스 있는 모듈
# 모듈 안에 있는 변수, 함수, 클래스 사용
print(math.pi)
print(math.factorial(5))
# 팩토리얼 만들어보기
num = int(input("몇 팩토리얼을 구할까요?"))
data1 = 1
for data in range(1,num+1):
data1 = data1*data
print(data1)
# 임의의 0.0 <= ~ < 1.0 사이의 임의의 실수 추출 => random() 함수
# for cnt in range(10):
# print(random.random())
# 임의의 0 <= ~ < 10 사이의 임의의 정수 추출 => random() 함수
# for cnt in range(10):
# print(int(random.random() * 10))
# 임의의 1 <= ~ <= 10 사이의 임의의 정수 추출 => random() 함수
# for cnt in range(10):
# print(int(random.random() * 10)+1)
# a <= ~ <= b 사이의 임의의 정수 추출 => randint() 함수
for cnt in range(10):
print(random.randint(1,10), end=' ')
print()
myLotto = []
END_POINT = 6
while True:
if len(myLotto) == END_POINT: break
num = random.randint(1,45)
if num not in myLotto:
myLotto.append(num)
print(sorted(myLotto))
myLotto = set()
END_POINT = 6
while True:
if len(myLotto) == END_POINT: break
num = random.randint(1,45)
myLotto.add(num)
print(sorted(myLotto))
foods = []
for f in range(5):
food = input("좋아하는 음식명을 적어주세요: ")
foods.append(food)
print(f'좋아하는 음식 {foods[0]}, {foods[1]}, {foods[2]}, {foods[3]}, {foods[4]}입니다.')
print 부분을 리스트 표현 없이 보여주되, 쉽게 하는 방법?
다음 주 화요일에 파이썬 최종 TEST