티스토리 뷰
8.3 사례 연구: 회문 검사하기(Case Study: Checking Palindromes)
- 이번 섹션에서는 회문(Palindromes)을 검사하는 프로그램을 작성할 예정이다.
- 회문이란, 앞에서 부터 읽을 때나 뒤에서 부터 읽을 때나 둘 다 문장(단어)이 똑같은 문을 회문이라고 한다.
- 예를 들어, mom, dad, noon 과 같은 단어들이 있다.
* 회문 검사 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
def main():
s = input("Enter a string: ").strip()
if isPalindrome(s):
print(s," is a palindrome")
else :
print(s," is not a palindrome")
def isPalindrome(s):
low = 0
high = len(s) - 1
while low < high :
if s[low] != s[high]:
return False
low += 1
high -= 1
return True
main() |
cs |
- 첫번째 인덱스(low)와 마지막 인덱스(high)를 비교하여 차례대로 인덱스를 늘리고 줄이며 서로 비교한다.
- 두 문자가 서로 다를 시 False 반환, low >= hight가 될 때까지 두 문자가 같다면 True 반환.
- strip() 메소드를 이용하여 첫글자의 공백이나 뒷글자의 공백을 제거한다.
8.4 사례 연구: 16진수를 10진수로 변환하기(Case Study: Converting Hexadecimals to Decimals)
- 제곧내.
- 16진수는 수가 10이 넘어가면 문자인 알파벳으로 표기한다.
- 16진수를 10진수로 바꾸는 방법은 아래와 같다.
* 진수 변환(16진수 → 10진수) 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
def main():
hex = input("Enter a hex number: ").strip()
result = hexToDecimal(hex.upper())
if result == None:
print("Incorrect hex number")
else:
print(result)
def hexToDecimal(hex):
decimalValue = 0
for i in range(0,len(hex)):# 범위 주의. len(hex)-1이 아
ch = hex[i]
if 'A' <= ch <= 'F' or '0' < ch < '9':
decimalValue += hexCharToDecimal(ch) * (16**(len(hex)-1-i))
else:
return None
return decimalValue
def hexCharToDecimal(ch):
if 'A' <= ch <= 'F':
return 10 + ord(ch) - ord('A')
else :
return ord(ch) - ord('0')
main() |
cs |
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]리스트 기초(1) (0) | 2017.11.22 |
---|---|
[파이썬]연산자 오버로딩과 특수메소드, Rational 클래스(유리수) (2) | 2017.08.24 |
[파이썬]문자열 변환, 공백 문자 제거, 문자열 포매팅 (0) | 2017.08.20 |
[파이썬]문자열 반복하기, 문자열 메소드, 문자열 검색 (0) | 2017.08.19 |
[파이썬]연결 연산자와 반복 연산자, in과 not in 연산자, 문자열 크기 비교 (1) | 2017.08.19 |
- Total
- Today
- Yesterday
- 백준
- 백준 11501
- 자바 에센셜 실습문제
- 파이썬 단계적 개선
- 자료구조
- 웹
- css 박스
- 파이썬 연산자
- 자바스크립트 그래프
- 버츄어박스
- css 그리드
- 백준 10451
- 파이썬 while
- 파이썬 함수
- 자바스크립트 자료구조
- 백준 1874
- 파이썬
- 파이썬 터틀
- 파이썬 객체
- 파이썬 선택문
- 파이썬 클래스
- 파이썬 if문
- 파이썬 리스트
- 파이썬 문자열
- 파이썬 예제
- css
- 파이썬 진수 변환
- 파이썬 for
- 명품 c++ 실습
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |