만약, 로마숫자를 일반 숫자로 찍어내야 하고
test_string1 = 'XII' 이라고 하면
for 문으로 어떻게 표현할 수 있을까?
우선 먼저 if문으로 해보면 이렇다.
test_string1 = 'XII'
result_num1 = 0
if 'X' in test_string1:
print(10)
result_num1 += 10
if 'I' in test_string1:
print(1)
result_num1 += 1
if 'I' in test_string1:
print(1)
result_num1 += 1
print("result_num1=")
print(result_num1)
결과는 ,
10
1
1
result_num1=
12
이렇게 나올 것이다.
그렇다면 이걸 for 문으로 옮기게 되면,
test_string1 = 'XII'
result_num1 = 0
for elements in test_string1:
if 'X' == elements:
result_num1 += 10
elif 'I' == elements:
result_num1 += 1
print("result_num1=")
print(result_num1)
결과는
result_num1=
12
깔끔하게 나온다.
while문으로 할 경우에는,
test_string1 = 'XII'
result_num1 = 0
index = 0
while index < len(test_string1):
if 'X' == test_string1[index]:
result_num1 += 10
elif 'I' == test_string1[index]:
result_num1 += 1
index += 1
print("result_num1=")
print(result_num1)
같은 결과가 나온다.
for문과 관련해서 주의해야할 점은
elements 와 index 헷갈리지 말아야될것.
예를 들어,
test_string1 = 'XII'
for things in test_string1:
print(things)
이라고 하면 결과는
X
I
I
라고 나올 것이다.
하지만,
for i in range(0,3):
print(i)
이 경우에는
0
1
2
라는 결과가 나올 것이다.
변수를 어떻게 지정하고 쓰는지에 따라 결과가 달라짐을 알 수 있다.