1/4 Python 7일차

빨강·2024년 1월 4일
0

기록 - Python

목록 보기
9/14
post-thumbnail

1/4

  • 어제 숙제

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)
  • 09:00
    • while문은 반복을 중단하는 것이 중요
    • for문은 반복가능한 조건을 제공하면 파이썬 해석기가 원소를 순차적으로 반복하여 더 이상 동작할 원소가 없으면 해당 수행을 완료 함
    • while문은 조건이 참이라면 해당 내용을 수행하고 초기값으로 갱신하여 반복하는 형식

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('땡!'

# 항상 리스트에 담을 필요는 없다.

# 스트링에 담고 필요할 때 스플릿으로 분리하자

  • 10:30

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("프로그램 종료")
  • 13:00 ex_while_03.py 이어서 계속

# 코드값 0은 48, A는 65, a는 97 정도는 기억하자

  • 14:40

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("그냥")
  • 15: 50

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

    • 코딩테스트 때처럼 문제 주고 제한 시간 있는 형태
profile
갈림길인 줄 알았는데 알고보니 직진

0개의 댓글