p.131
str_input = input("숫자 입력> ")
num_input = int(str_input)
print()
print(num_input, "inch")
print((num_input * 2.54), "cm")
num_input = int(input("숫자 입력> ")
python은 입력을 받으면 문자열로 입력받기 때문에 정수로 바꾸는 과정이 필요하다.
int(input("숫자 입력> ")처럼 입력과 정수화를 한꺼번에 실행하는 것도 가능하다.
str_input = input("원의 반지름 입력> ")
num_input = int(str_input)
print()
print("반지름: ", num_input)
print("둘레: ", 2 * 3.14 * num_input)
print("넓이: ", 3.14 * num_input ** 2)
문자열 입력> 안녕하세요
문자열 입력> 아침입니다
안녕하세요 아침입니다
아침입니다 안녕하세요
a = input("문자열 입력> ")
b = input("문자열 입력> ")
print(a,b)
a, b = b, a
print(a,b)
변수 교체를 스왑이라고 하는데, 파이썬에서는 a, b = b, a와 같이 변수를 교체할 수 있다. 하지만 이 방법보다는 임의의 변수를 하나 더 만들어서 교체하는 방법을 더 추천한다.
a = input("문자열 입력> ")
b = input("문자열 입력> ")
print(a,b)
temp = a
a = b
b = temp
print(a,b)
p.152 도전문제
r = int(input("구의 반지름을 입력해주세요: "))
v = 4/3 * 3.141592 * r**3
a = 4 * 3.141592 * r**2
print(f"= 구의 부피는 {v}입니다.")
print("= 구의 겉넓이는 {}입니다.".format(a))
출력 문자열 안에 변수값을 넣을 때는 print(f"{value}")이나 print("{}".format(value)) 문법을 사용한다.
a = int(input("밑변의 길이를 입력해주세요: "))
b = int(input("높이의 길이를 입력해주세요: "))
c = (a**2 + b**2)**(0.5)
print(f"= 빗변의 길이는 {c}입니다.")
p.175
a = int(input("> 1번째 숫자: "))
b = int(input("> 2번째 숫자: "))
print()
if a>b:
print("처음 입력했던 {}가 {}보다 더 큽니다".format(a,b))
if b>a:
print("두 번째로 입력했던 {}가 {}보다 더 큽니다".format(b,a))
p.187
if x > 10: if x < 20: print("조건에 맞습니다.")
if x > 10 and x < 20:
print("조건에 맞습니다.")
파이썬에서는 다음과 같이 조건문을 표현하는 것도 가능하다.
if 10 < x < 20:
print("조건에 맞습니다.")
str_input = input("태어난 해를 입력해 주세요> ")
birth_year = int(str_input)
if birth_year % 12 == 0:
print("원숭이 띠입니다.")
elif birth_year % 12 == 1:
print("닭 띠입니다.")
elif birth_year % 12 == 2:
print("개 띠입니다.")
elif birth_year % 12 == 3:
print("돼지 띠입니다.")
elif birth_year % 12 == 4:
print("쥐 띠입니다.")
elif birth_year % 12 == 5:
print("소 띠입니다.")
elif birth_year % 12 == 6:
print("범 띠입니다.")
elif birth_year % 12 == 7:
print("토끼 띠입니다.")
elif birth_year % 12 == 8:
print("용 띠입니다.")
elif birth_year % 12 == 9:
print("뱀 띠입니다.")
elif birth_year % 12 == 10:
print("말 띠입니다.")
elif birth_year % 12 == 11:
print("양 띠입니다.")
p.188 도전문제
import datetime
hour = datetime.datetime.now().hour
input_str = input("입력: ")
if ("안녕" in input_str):
print("> 안녕하세요.")
elif ("몇 시" in input_str):
print(f"> 지금은 {hour}시입니다.")
else:
print(f"> {input_str}")
input_num = int(input("정수를 입력해주세요: "))
if input_num % 2 == 0:
print(f"{input_num}은 2로 나누어 떨어지는 숫자입니다.")
else: print(f"{input_num}은 2로 나누어 떨어지는 숫자가 아닙니다.")
if input_num % 3 == 0:
print(f"{input_num}은 3로 나누어 떨어지는 숫자입니다.")
else: print(f"{input_num}은 3로 나누어 떨어지는 숫자가 아닙니다.")
if input_num % 4 == 0:
print(f"{input_num}은 4로 나누어 떨어지는 숫자입니다.")
else: print(f"{input_num}은 4로 나누어 떨어지는 숫자가 아닙니다.")
if input_num % 5 == 0:
print(f"{input_num}은 5로 나누어 떨어지는 숫자입니다.")
else: print(f"{input_num}은 5로 나누어 떨어지는 숫자가 아닙니다.")
input_num = int(input("정수를 입력해주세요: "))
for i in range(2,6):
if input_num % i == 0:
print(f"{input_num}은 {i}로 나누어 떨어지는 숫자입니다.")
else:
print(f"{input_num}은 {i}로 나누어 떨어지는 숫자가 아닙니다.")
p.214
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
for number in numbers:
if number > 100:
print("- 100 이상의 수: ", number)
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]
for number in numbers:
if number % 2 == 0:
print(f"{number}는 짝수입니다.")
else:
print(f"{number}는 홀수입니다.")
print()
for number in numbers:
print(f"{number}는 {len(str(number))}자릿수입니다.")
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
output = [[], [], []]
for number in numbers:
output[numbers.index(number) % 3].append(number)
print(output)
index는 리스트에서 요소값이 들어있는 인덱스 번호를 반환하는 함수이다.
위의 코드에서 사용한 numbers.index(number)는 numbers 리스트에서 number 요소값이 들어있는 인덱스 번호를 반환한다.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(0, len(numbers) // 2):
j = 2*i + 1
print(f"i = {i}, j = {j}")
numbers[j] = numbers[j] ** 2
print(numbers)
p.227
pets = [
{"name": "구름", "age": 5},
{"name": "초코", "age": 3},
{"name": "아지", "age": 1},
{"name": "호랑이", "age": 1},
]
print("# 우리 동네 애완 동물들")
for pet in pets:
print("{} {}살".format(pet["name"], pet["age"]))
numbers = [1,2,6,8,4,3,2,1,9,5,4,9,7,2,1,3,5,4,8,9,7,2,3]
counter = {}
for number in numbers:
if not number in counter:
counter[number] = 1
else:
counter[number] += 1
print(counter)
character = {
"name": "기사",
"level": 12,
"items":{
"sword": "불꽃의 검",
"armor": "풀플레이트"
},
"skill": ["베기", "세게 베기", "아주 세게 베기"]
}
for key in character:
if type(character[key]) is str :
print(f"{key} : {character[key]}")
elif type(character[key]) is int:
print(f"{key} : {character[key]}")
elif type(character[key]) is dict:
for key1 in character[key]:
print(f"{key1} : {character[key][key1]}")
elif type(character[key]) is list:
for item in character[key]:
print(f"{key} : {item}")
p.248
key_list = ["name", "hp", "mp", "level"]
value_list = ["기사", 200, 30, 5]
character = {}
for i in range(len(key_list)):
character[key_list[i]] = value_list[i]
print(character)
limit = 10000
i = 1
# sum은 파이썬 내부에서 사용하는 식별자이므로, sum_val라는 변수 사용
sum_val = 0
while True:
sum_val += i
i += 1
if sum_val > limit:
break
print(f"{i-1}를 더할 때 {limit}을 넘으며 그때의 값은 {sum_val}입니다.")
1 * 99, 2 * 98, 3 * 97, ..., 98 * 2, 99 * 1
max_value = 0
a = 0
b = 0
for i in range(1,100):
j = 100 - i
if i * j > max_value:
a = i
b = j
max_value = i * j
print(f"최대가 되는 경우: {a} * {b} = {max_value}")
글로벌소프트웨어캠퍼스와 교보DTS가 함께 진행하는 챌린지입니다.
비밀댓글입니다.