Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- baeldung
- 자료구조와함께배우는알고리즘입문
- iterator
- 티스토리 쿠키 삭제
- 선형대수
- 목록처리
- 이터레이터
- 구멍가게코딩단
- 코드로배우는스프링부트웹프로젝트
- 서버설정
- 페이징
- ㅒ
- d
- 친절한SQL튜닝
- 자바편
- /etc/network/interfaces
- 알파회계
- network configuration
- 스프링 시큐리티
- 코드로배우는스프링웹프로젝트
- resttemplate
- Kernighan의 C언어 프로그래밍
- 자료구조와 함께 배우는 알고리즘 입문
- 처음 만나는 AI수학 with Python
- GIT
- 스프링부트핵심가이드
- 데비안
- 처음 만나는 AI 수학 with Python
- 리눅스
- 네트워크 설정
Archives
- Today
- Total
bright jazz music
220319 파이썬 연산자 본문
n = -10
print('+n = ', +n)
#+n = -10
print('+n = ', -n)
#+n = 10
print('n = ',n)
#n = -10
print(10/3)
#3.3333333333333335
print(10/2) #정수가 아니라 실수로 표현한다.
#5.0
print(10/3)
3.3333333333333335 #실수값은 오차가 발생한다. 5는 절대로 나올 수가 없는데
print(10//3) #나눗셈의 몫을 구한다. '/' 연산을 한 뒤에 소수부분을 전부 버린다.
#3
print(10%3) #나머지를 구한다. 짝수 홀수를 판별하는 경우 등에 사용한다. 배수 여부 시에도 사용. if(a/5==0)
#1
print(10*3)
#30
print(10**3) #거듭제곱 표현은 **을 사용한다. ***한다고 하여 세제곱을 하지는 않는다.
#1000
print(10**10)
#10000000000
print(10***10)
#SyntaxError: invalid syntax
#같은 자료형을 연산하는 경우 피연산자항과 같은 자료형의 결과값을 가짐.
#1 + 2 ==> 3 vs. 1.2 + 3.4 ==> 4.6
#나눗셈 연산의 결과는 항상 실수이다.
#예) 10/2 ==> 5.0
#다른 자료형을 연산하는 경우 더 넓은 범위를 갖는 피연산자 자료형의 결과값을 가짐
#예) 1 + 2.3 ==> 3.3
#실제로는 정수를 실수로 변환해서, 1을 1.0으로 변환하여 계산한다.
#내장함수 input()은 입력된 값을 항상 문자열로 반환한다.
#따라서 숫자 문자로 구성된 문자열을 숫자 데이터로 변환 필요
# 내장함수 int(), float()을 사용하여 각각 정수와 실수로 변환
n = input('n을 입력하세요.')
#n을 입력하세요.123
n+1
#Traceback (most recent call last):
# File "<pyshell#48>", line 1, in <module>
# n+1
#TypeError: can only concatenate str (not "int") to str
#계산을 하려면 실수나 정수여야함. 그런데 인풋값은 스트링값임. 따라서 변환 필요
#방법1
n = input('정수를 입력하세요')
n = int(n) #이부분에서 int()를 사용해서 변환해줌.
#방법2
n = int(input('정수를 입력하세요')) #input의 반환값을 그대로 정수로 변환해줌
같은 자료형을 연산하는 경우 피연산자항과 같은 자료형의 결과값을 가짐.
1 + 2 ==> 3 vs. 1.2 + 3.4 ==> 4.6
나눗셈 연산의 결과는 항상 실수이다.
예) 10/2 ==> 5.0
다른 자료형을 연산하는 경우 더 넓은 범위를 갖는 피연산자 자료형의 결과값을 가짐
예) 1 + 2.3 ==> 3.3
실제로는 정수를 실수로 변환해서, 1을 1.0으로 변환하여 계산한다.
#사용자 함수 선언부
def show_division(dividend, divisor):
quotient = dividend // divisor
remainder = dividend % divisor
print('몫(quotient)==>', quotient)
print('나머지(remainder)==>', remainder)
#주프로그램부
dividend = int(input('피젯수를 정수로 입력하세요 '))
divisor = int(input('젯수를 정수로 입력하세요 '))
show_division(dividend, divisor)
#함수를 두 개 만들어서 호출하는 것이 번거롭다고 생각하여
#호출되는 함수에서 출력까지 하기로 하였다.
#이 프로그램의 문제는 실수와 0을 입력하는 경우 오류가 발생한다는 것이다.
# 피젯수가 0이면 몫과 나머지가 모두 0이 나오고, 젯수에 0이 들어가는 경우 오류난다.
#-----------------------결과---------------------------
=============== RESTART: D:/personal/grd/python/220319_python.py ===============
피젯수를 정수로 입력하세요 0
젯수를 정수로 입력하세요 1
몫(quotient)==> 0
나머지(remainder)==> 0
=============== RESTART: D:/personal/grd/python/220319_python.py ===============
피젯수를 정수로 입력하세요 1
젯수를 정수로 입력하세요 0
Traceback (most recent call last):
File "D:/personal/grd/python/220319_python.py", line 19, in <module>
show_division(dividend, divisor)
File "D:/personal/grd/python/220319_python.py", line 6, in show_division
quotient = dividend // divisor
ZeroDivisionError: integer division or modulo by zero
=============== RESTART: D:/personal/grd/python/220319_python.py ===============
피젯수를 정수로 입력하세요 123
젯수를 정수로 입력하세요 123
몫(quotient)==> 1
나머지(remainder)==> 0
=============== RESTART: D:/personal/grd/python/220319_python.py ===============
피젯수를 정수로 입력하세요 2.5
Traceback (most recent call last):
File "D:/personal/grd/python/220319_python.py", line 16, in <module>
dividend = int(input('피젯수를 정수로 입력하세요 '))
ValueError: invalid literal for int() with base 10: '2.5'
대입연산자
다중 대입문
x = y = z = 1; #z = 1; y=z; x = y;
x = (y = (z=1))
좌변의 변수들에 순서대로 우변의 표현식 값들을 순차적으로 대입
x, y = 1, 2 #x=1; y=2;
x, y = y, x #tmp = x; x = y; y = tmp;
축약 대입 연산자
자기 할당문을 좀 더 간략하게 표현하기 위해 사용
- 산술 + 대입연산자, 비트 +대입연산자
- 의미는 결합되었으나 그 자체로 독립된 연산자이다
- 모든 기호를 반드시 붙여 기술
- 기호가 항상 마지막에 기술
- 축약 대입연산자의 읜쪽항은 L-값이어야 한다. 변수여야 함.
거스름돈 실습
#거스름돈 계산
#물건을 구매한 고객에게 물건 값을 받고 잔돈이 발생하는 경우
#최소한의 지폐를 이용해 거슬러주려 한다.
#문제를 간단히 하기 위해 다음을 가정
# 고객으로부터 지불받은 금액은 항상 구매금액 이상임
# 물건값과 잔돈은 모두 1,000원권과 5,000원권 지폐만 사용
#함수선언부
def show_change(amount):
print('잔돈:', amount, '원')
n5000 = amount // 5000 #잔돈 중 5000원권 지불
amount %= 5000 # 5000원권을 지불하고 남은 잔돈. 축약대입연산자 사용
n1000 = amount // 1000 #잔돈 중 1000원권 지불
coinChange = amount % 1000
print('> 5000원권 :', n5000)
print('> 1000원권 :', n1000)
print('> 동전 :', coinChange)
#주프로그램부
total_cost = int(input('구매한 물건의 총 구매 금액은? '))
print('total_cost', total_cost)
payment = int(input('고객으로부터 지불받은 금액은? '))
print('payment', payment)
change = payment - total_cost
print(change)
show_change(change) #함수호출
#구매한 물건의 총 구매 금액은? 7900
#total_cost 7900
#고객으로부터 지불받은 금액은? 10000
#payment 10000
#2100
#잔돈: 2100 원
#> 5000원권 : 0
#> 1000원권 : 2
#> 동전 : 100
'Language > python' 카테고리의 다른 글
문자열 (0) | 2022.04.04 |
---|---|
220326 전역변수와 지역변수 & 모듈 구성 및 사용(주사위) (0) | 2022.03.26 |
220319 파이썬 과제(연산자 사용, int(), float()사용 ) (0) | 2022.03.20 |
파이썬 프로그래밍 220312 (0) | 2022.03.12 |
파이썬 프로그래밍 220301 (0) | 2022.03.01 |
Comments