1.양식문자를 이용한 표현 %d %s %g(정수혹은 실수) %f =>print()를 깔끔하게 표현가능
x=10
y=3
print(" %d와 %d를 나눈 값은 %f 이다" %(x,y,x/y))
>>> 10와 3를 나눈 값은 3.333333이다.
뒷부분 %변수 앞뒤로 , 없음
1_1) 적정키와 몸무게를 구하라 %.1f (소수점 둘째자리에서 반올림하여 소수점 첫째자리까지 출력)
print("=====몸무게 제안 프로그램=====")
h= float(input("키입력: "))
w=(h-100)*0.9
print("키 %.2fcm에 대한 적정 몸무게는 %.2fkg입니다." %(h,w))
1_2) 16진수 표현하기, %3d %3o %3x (숫자만큼의 자릿수로 정수표시. 숫자들 정렬가능)
x=1234
y=2021
print("%5x+%5x=%5x" %(x,y,x+y))
>>> 4d2+ 7e5= cb7 #16진법으로 표현한것
print("%-5x+%-5x=%-5x" %(x,y,x+y)) #-10d (-)는 왼쪽정렬 (%-.1f)
>>>4d2 +7e5 =cb7
2,format() 함수: 양식문자사용. 주로 shell에서
n=123456.123456
format(n,'>15,.2f') #우측정렬, 15칸, 3자리마다 콤마, 소수점2자리
2_1)문자열 format() #%d 표기법이랑 .format() 표기법
x=10
y=5
"x is {} and y is {}".format(x,y) #콘솔,쉘에서 가능 코드편집기에서는 안됨
2_2)파라미터 순서정하기
>>>"first is {2}, second is {1}, last is {0}".format(1000,2000,3000) #{}안에 0부터 n-1까지 index.
first is 300, second is 200, last is 100
2_2.1) {인덱스: 형식문자}
>>>"수출액 {0:,d}달러".format(100000000) #콤마 삽입한 형태
수출액 100,000,000달러
>>>"지표는 {0:10,.2f}".format(1234.56789)
지표는 1,234.57
예제) 저축액을 입력받아 1년후의 이자와 원리금(원금+이자)을 출력해주는 프로그램을 작성하시오. 이자율을 3.75%, 이자에 대한 세금은 15%로 계산하라. format함수를 이용해서 천단위 쉼표출력과 열맞춤이 이뤄지도록 하라.
===원리금 계산프로그램===
저축금액 입력: 5000000
원금: 5,000,000원
이자: 187,500원
세금: 28,125원
최종: 5,159,375원
#이자, 세금, 최종의 인덱스 0,1,2,를 안 넣고 {:13.0f}라고 설정해도 똑같이 출력 되지만 배운거 복습하려고 index 삽입해봄. 나는 깔끔한게 좋아서 다음에는 인덱스 안넣을 것 같다.
#처음에 {:13,d}라고 설정해서 계속 에러남. .0f로 적으니까 에러가 사라졌다. 이자율을 곱했기 때문에 결과값이 float가 되는데 실수를 정수로 표현하려면 .0f로 설정할것
3.조건문 제어문: if elif else #c나 java에는 switch문이 있는데 파이썬에는 없다.
비교(관계)연산자: == >= !=
논리연산자: and(&) or(|) not(~) true:1 false:0 참,거짓은 첫글자가 대문자다(True, False)
==연산자는 값(value)가 같은지 비교
is 키워드는 메모리 주소를 비교. 100이나 200같이 자주 사용하는 몇개의 값들을 메모리에 기본적으로 생성하고
주소와 연결시키는 경우가 있다. 그래서 False가 기본값이다
ex) a=100 ; b=100
a is b
True
a= 300 #a=300; b=300이면 True라고 나옴ㅋㅋㅋ 뭐지..
b=300
a is b
False
예제)한국과 베트남의 시차를 계산하는 프로그램을 만들라. 시간은 24시간 단위로 입력받고 한국은 베트남보다 시차가 2시간 빠르다. 한국시간을 받아서 베트남시간으로 변환
3_1) 짝수 홀수 판변 프로그램 (while 1: 이용 (while True:)
while 1: 을 입력하면 반복하여 작동한다. (while True:와 같은 뜻이다.)
n=int(input())을 while 1:보다 먼저 쓰면 print가 무한반복 된다. while 다음에 input 적기
if n%2==0을 먼저 적으면 음수값이 제대로 print되지 않음 #??이유는 모르겠다.
if n<=0을 먼저 적고 n%2==0을 elif값으로 줄것.
예제) 결석이 3회미만, 성적이 70점이상이면 pass. 결석 3회이고 성적이 50점이상 70미만이면 재시험가능. 결석이 한번도 없다면 재시험가능.
#c나 java에서는 50<=a<70을 지원하지 않는다. a>=50 a>70이라고 적어야함
예제) 주차료 계산.
15분이하 무료
15초과 30분이하 3천원
30분초과 15분초과마다 1000원추가.
예제) 양의정수를 입력받아 2의배수 3의배수 5의배수여부를 판단하는 프로그램을 작성하시오. 만약 10을 입력하면 10은 2의배수, 3의배수는 아님. 5의배수.라고 3문장이 출력되도록 한다.
if elif else를 사용할 수 없다.
if, elif~는나열된 조건중에 해당하는 하나만 출력. 그래서 2의배수, 3의배수 등 순서대로 내려오다가 걸리는것 하나 출력
'python' 카테고리의 다른 글
python_6 with 컴퓨팅사고(김완섭 ch14~) (0) | 2021.05.01 |
---|---|
python_5 with 컴퓨팅사고 (김완섭 ch12~) (0) | 2021.04.24 |
python_4 with 컴퓨팅사고(김완섭 ch10~) (0) | 2021.04.24 |
python_2 with 컴퓨팅사고(김완섭) ch5~ (0) | 2021.04.17 |
python_1 with 컴퓨팅사고(김완섭) ch1~ch4 (0) | 2021.04.17 |