for i in range(11):
    n=2**i
    print(f"2^{i} = {n}")
for i in range(10):
    for j in range(1,10):
        n = i*j
        print(f"{i} * {j} = {n}")
for i in range(1,134):
    for j in range(i+1,200):
        k=400-i-j
        if i*i + j*j == k*k:
            print(i*j*k)
numbers = [2, 3, 5, 7, 11, 13, 17, 19]

# 리스트 뒤집기
for left in range(len(numbers) // 2):
    # 인덱스 left와 대칭인 인덱스 right 계산
    right = len(numbers) - left - 1

    # 위치 바꾸기
    temp = numbers[left]
    numbers[left] = numbers[right]
    numbers[right] = temp

print("뒤집어진 리스트: " + str(numbers))
numbers = [2, 3, 5, 7, 11, 13, 17, 19]

# 리스트 뒤집기
for left in range(len(numbers) // 2):
    # 인덱스 left와 대칭인 인덱스 right 계산    
    right = len(numbers) - left - 1

    # 위치 바꾸기
    numbers[right], numbers[left] = numbers[left], numbers[right]

print("뒤집어진 리스트: " + str(numbers))

리스트에서 값의 존재 확인하기

어떤 값이 리스트에 있는지 확인하는 함수를 써보겠습니다.

# value가 some_list의 요소인지 확인
def in_list(some_list, value):
    i = 0
    while i < len(some_list):
        # some_list에서 value를 찾으면 True를 리턴
        if some_list[i] == value:
            return True
        i = i + 1

    # 만약 some_list에서 value를 발견하지 못했으면 False를 리턴
    return False

# 테스트
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(in_list(primes, 7))
print(in_list(primes, 12))
True
False

쓰는데 아주 어렵지는 않습니다. 하지만 리스트에 값의 존재를 확인하는 것은 너무 자주 있는 일이라서 파이썬에 이미 이 기능이 내장되어 있습니다. in이라는 키워드를 쓰면 됩니다.

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
True
False

거꾸로 값이 없는지 확인하려면 in 앞에 not을 붙이면 됩니다.

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
False
True

리스트 안의 리스트 (Nested List)

리스트 안에는 또 다른 리스트가 있을 수 있습니다. 이를 영어로 nested list라고 부릅니다.

# 세 번의 시험을 보는 수업
grades = [[62, 75, 77], [78, 81, 86], [85, 91, 89]]

# 첫 번째 학생의 성적
print(grades[0])

# 세 번째 학생의 성적
print(grades[2])

# 첫 번째 학생의 첫 번째 시험 성적
print(grades[0][0])

# 세 번째 학생의 두 번째 시험 성적
print(grades[2][1])

# 첫 번째 시험의 평균
print((grades[0][0] + grades[1][0] + grades[2][0]) / 3)
[62, 75, 77]
[85, 91, 89]
62
91
75.0

sort 메소드

저번에 정렬된 새로운 리스트를 리턴시켜주는 sorted 함수를 보여드렸습니다. some_list.sort()는 새로운 리스트를 생성하지 않고 some_list를 정렬된 상태로 바꿔줍니다.

numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
[1, 3, 5, 7]

reverse 메소드

some_list.reverse()는 some_list의 원소들을 뒤집어진 순서로 배치합니다.

numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
[1, 7, 3, 5]

index 메소드

some_list.index(x)는some_list에서 x의 값을 갖고 있는 원소의 인덱스를 리턴해줍니다.

members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수"))
print(members.index("태호"))
1
2

remove 메소드

some_list.remove(x)는some_list에서 첫 번째로 x의 값을 갖고 있는 원소를 삭제해줍니다.

fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)
['딸기', '당근', '수박', '참외', '메론']
# 빈 리스트 만들기
numbers = []
print(numbers)
tmp = [1,7,3,6,5,2,13,14]
# numbers에 값들 추가
i = 0
count = len(tmp)
while i < count:
    numbers.append(tmp[i])
    i+=1
# 코드를 입력하세요
print(numbers)

# numbers에서 홀수 제거
# 코드를 입력하세요
numbers = [1,7,3,6,5,2,13,14]
# numbers에 값들 추가
i = 0
while i < count:
    if numbers[i]%2!=0:
        del numbers[i]
        count = count - 1
    else:
        i+=1
print(numbers)
# numbers의 인덱스 0 자리에 20이라는 값 삽입
# 코드를 입력하세요
numbers.insert(0, 20)
print(numbers)

# numbers를 정렬해서 출력
# 코드를 입력하세요
numbers.sort()
print(numbers)
# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    # 여기에 코드를 작성하세요
    celsius = (fahrenheit-32)*5/9
    return celsius

temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

# 리스트의 값들을 화씨에서 섭씨로 변환하는 코드를 입력하세요
i = 0
count = len(temperature_list)
while i < count:
    temperature_list[i] = round(fahrenheit_to_celsius(temperature_list[i]),1)
    i+=1
print("섭씨 온도 리스트: {}".format(temperature_list))  # 섭씨 온도 출력

 

greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]

# 여기에 코드를 작성하세요
i=0
count = len(greetings) # 고정값으로 미리 지정해놓음으로써 while문 실행 소요시간 단축
while i<count:
    print(greetings[i])
    i+=1

 

'자동제어 > Python for robotics' 카테고리의 다른 글

리스트 append, sort, del, 홀수제거  (0) 2023.02.18
화씨 to 섭씨  (0) 2023.02.18
break문, continue문  (0) 2023.02.18
피보나치 수열  (0) 2023.02.18
복리계산  (0) 2023.02.18

break문

만약 while문의 조건 부분과 상관 없이 반복문에서 나오고 싶으면, break문을 사용하면 됩니다.

i = 100

while True:
    # i가 23의 배수면 반복문을 끝냄
    if i % 23 == 0:
        break
    i = i + 1

print(i)
115

continue문

현재 진행되고 있는 수행 부분을 중단하고 바로 조건 부분을 확인하고 싶으면 continue문을 쓰면 됩니다.

i = 0

while i < 15:
    i = i + 1

    # i가 홀수면 print(i) 안 하고 바로 조건 부분으로 돌아감
    if i % 2 == 1:
        continue
    print(i)
2
4
6
8
10
12
14

+ Recent posts