언어/PYTHON

조건, 반복

빨대도둑 2022. 10. 12. 10:33

많은 컴퓨터 언어는 코드의 시작과 끝을 표시하기 위해 키워드나 중괄호 ({ })와 같은 문자를 사용한다. 그리고 코드 작성자와 다른 사람이 코드를 좀 더 읽기 쉽도록 일관된 들여 쓰기를 하는 것도 좋은 습관이다. 

 

「#」

> 파이썬은 (#)을 사용해서 주석을 표시한다. (#)가 시작된 곳부터 그 라인의 마지막 까지가 주석이다.

> (#)은 hash, sharp, pound, octothorpe 라는 이름이 있다. 어떤 이름으로 불러도 그 라인의 끝까지 주석의 효력을 발휘한다. 하지만 (#)가 문자열 안에 있다면, 주석이 아닌 평범한 문자로 처리한다. 

 

「\」

> 코드는 한 줄에서 권장하는 최대 문자 수가 80자다. 만일 모든 코드를 이 안에 입력 할 수 없다면, 백슬래시(\) 문자를 입력하고 다음줄에 계속 입력하면 된다. 

> ( \ ) = 라인 유지, 파이썬의 경우 줄 끝에 ( \ )를 입력하면 다음 줄을 여전히 같은 줄로 인식한다. 

 


「비교문」

> if, elif, else 는 조건이 True 인지 False 인지 확인한느 선문문이다. 

 > 파이썬에서는 if 조건문에 괄호가 필요 없다. 대신 : (콜론)을 사용한다. 만일 : (콜론)을 입력하지 않으면 오류가 발생한다. 

※ 파이썬에서 들여쓰기는 4칸의 스페이스를 사용하는데, 탭 혹은 택과 스페이스를 혼합해서 들였으면 공백의 수가 흐트러지기 때문에 혼합해서 사용하면 안 된다. 

> if, elif, else의 예제문

color="brown"
if color == "red"
	print("it's tomato")
elif color == "green"
	print("avocado")
else color == "purple"
	print("dont' know what it is")
else
	print("i've never saw it before")

 

「비교 연산자

비교 연산자 의미
A == B A와 B는 같다
A != B A와 B는다르다
A < B A는 B 보다 작다
A <= B A는 B보다 작거나 같다
A > B A는 B보다 크다
A >= B A는 B 보다 크거나 같다

> 동시에 여러개의 식을 비교해야 한다면 불리언 값을 판단하기 위해 and, or, not과 같은 논리 연산자를 사용할 수 있다. 하지만 논리 연산자는 비교 연산자 보다 우선순위가 낮다. 

x=7
(5<x) and ( x<10)

> 위 코드를 예로 들 수 있다. x에 7을 할당하고, 5<x를 계산하고, x <10을 계산한 다음 나온 True와 True 값을 계산해서 최종 결과물은 True가 나온다. 

> 파이썬은 하나의 변수를 여러 번 비교하는 것을 할당 한다. 

※우선순위의 혼란을 피하는 가장 좋은 방법은 괄호( )를 추가 하는 것이다. 

 

「True, False」: True와 False를 구분하는 방법

> False값은 명시적으로 False라 할 필요가 없다. 다음 표에 있는 것을 제외하고는 모두 True로 간주한다. 파이썬 프로그램에서 데이터 자료구조가 False 조건인지 확인하기 위해서 진실 혹은 거짓의 정의를 사용한다. 

boolean false
null none
정수 0 0
부동소수점 0 0.0
빈 문자열 ' '
빈 리스트 [ ]
빈 튜플 ( )
빈 딕셔너리 { }
빈 셋 Set( )

 

※여러 조건 한번에 비교하기

letter = 'a'

if letter == 'a' or letter =='e' or letter == 'i' or letter =='o' or letter =='u':
	print(letter, 'is a vowel')

else: 
	print(letter, 'it's not vowel')

> 위와 같은 변수에  여러 값을 비교할 때 멤버십 연산자인 in을 사용할 수 있다

vowels = 'aeiou'
letter = 'a'


if letter in vowels:
	print(letter, 'it is vowel')
else:
	print(letter, 'it is not vowel')

> 이처럼 간결하게 표현 할 수 있다. 

 

※신기술: 바다코끼리 연산자( := )

tweet_limit=280
tweet_string="blash"*50
diff=tweet_limit-len(tweet_string)
if diff>=0:
	print("a fitting tweet")
else:
	print("went over by", abs(diff))

위의 코드를 다음과 같이 바꿀 수 있다. 

tweet_limit=280
tweet_string="blash"*50
if diff=tweet_limit-len(tweet_string)>=0:
	print("a fitting tweet")
else:
	print("went over by", abs(diff))

 


「반복문」

while: 간단한 looping 매커니즘

count=1
while count<=5:
	print(count)
    	count+=1
  1. count 변수에 1을 할당했다.
  2. while 문은 count 값이 5보다 작거나 같은지 계속 비교한다.
  3. 반복문 안에서 count 변수 값을 출력하고 count+=1 문장에 의해 count 변수 값이 1씩 증가한다. 반복문에 의해 맨 위로 돌아가서 다시 비교를 시작한다. 
  4. 반복문은 count변수가 5에서 6으로 증가할 때까지 계속 실행한다. count <=5가는 False 이므로 While문이 종료된다. 

 

break: 어떤 일이 일어날 때까지 반복하고 싶지만, 언제 일어날지 모르면 "무한 반복문"break문을 사용한다. 

while True:
	stuff=input("string to capitalize [type q to quit]:")
	if stuff='q':
    	break
    print(stuff.capitialize())

 

continue: 반복문을 중단하지 않고 건너뛰고 싶을 때

while True:
	value=input("integer, please [q to quit]:")
    if value==q=:
    	break
    number=int(value)
    if number%2==0:
    	continue
    print(number, "squared is", number*number)

 

 

「for, in」: 자료구조가 얼마나 큰지, 어떻게 구현되는지에 관계없이 자료구조를 순회할 수 있게 해주는 것이 "이터레이터"이다. 데이터가 메모리에 맞지 않더라고 "데이터 스트림"을 처리할 수 있게 허용해 준다.

for문 규칙

for 반복자 in 반복할 수 있는것:
	코드

> 반복할 수 있는 것에는 문자열, 리스트, 딕셔너기, 범위 등이 있다. 

word='thud'
offset=0
while offset<len(word):
	print(word[offset])
    	offset+=1

위 코드를 for와 in을 사용하면 다음과 같이 표현할 수 있다. 

for letter in word:
	print(letter)

 

> for 문에서 break문은 while문에서처럼 똑같이 작동한다.

>for 문에서 continue문은 while문에서 처럼 똑같이 작동한다

※ while문과 마찬가지로 for 문의 else문도 비직관적으로 보일 수 있지만 for문은 무언가를 찾는 것으로 생각하고 찾지 못했다면 else 문이 호출된다고 생각하면 이해하기 쉽다. else문 없이 같은 효과를 얻으려면 원하는 값을 찾았는지 여부를 나타내는 변수를 사용하면 된다. 

 

「range」: 범위

range(A): 0부터 A-1까지의 정수로 범위를 만듦

range(A, B): A부터 B-1까지의 정수로 범위를 만듦

rannge(A, B, C): A부터 B-1까지, 앞 뒤 C만큼 위차 이를 가짐

for문에서 활용

for 숫자변수 in 범위:
	코드

 

 

'언어 > PYTHON' 카테고리의 다른 글

함수, 예외  (0) 2022.10.17
딕셔너리와 셋  (0) 2022.10.14
튜플, 리스트  (1) 2022.10.13
텍스트 문자열  (0) 2022.10.12
데이터 타입  (0) 2022.10.10