파이썬2021. 4. 14. 14:13
728x90

* 16진수 입력받기, 16진수 구구단

- 16진수 입력int(n,16) 이렇게 int의 두 번째 인자에 원하는 진수를 적으면 된다.
- 16진수 출력print('%X' %n) 으로 할 수 있다. 이는 n의 값을 X로 16진수로 변환해서 출력한다는 의미이다.

[ 코드 ]

n=input() n=int(n,16) for i in range(1,16): # '%X'는 16진수로 출력한다는 의미 # sep=''을 추가하면 공백 없이 출력됨(B*4=2C) print('%X' %n, '*%X' %i, '=%X' %(n * i), sep='')



[ 결과 ]
B를 입력하면 다음과 같이 B의 15단이 나온다 :)

(참고) codeup.kr/problem.php?id=6081



* 한 번에 정수로 받기
'2 4 5'이렇게 input()으로 받으면 문자로 받아집니다.
일일이 int()형으로 변경해줘야 하는데 변수가 많아지면 귀찮습니다.
한 번에 변환하기 위해서는 map을 이용하면 됩니다 :)

[ 코드 ]
input().split()으로 공백있는 문자열을 입력받습니다.
그리고 그 각각을 int로 맵핑시켜서 a, b, c에 각각 넣어줍니다.

a,b,c=map(int,input().split())


[ 결과 ]

a,b,c=map(int,input().split()) print(a,b,c) print(a+b)


2와 4가 int형이기 때문에 a+b를 했을 때 6이 나옵니다. (문자라면 24가 나옴)




* 파이썬 자리수 조정(소수점 조절)
소수 둘째자리까지 표현할 때

round(숫자,2)


[ 이용 코드 ]

h,b,c,s=map(int,input().split()) val=h*b*c*s byte=val/8 mb=byte/1024/1024 print(mb,"MB") print(round(mb,1),"MB")


[ 결과 ]
round를 이용하면 원하는 소수 점 까지 표현이 가능한 것을 알 수 있다.


* 수열문제
처음에는 range(1,n+1)해서 n번 계산을 했다.
하지만 수열은 n-1번째 계산한 값이 n번째 값임을 기억하자!

그리고 만약 n==1이라면 초기값인 a가 나와야 하므로 마지막에 print(a)를 해줬다.
또한 이전 값을 이용해야 하므로 a=answer을 넣어서 돌렸다.

[ 코드 ]

a,m,d,n = map(int,input().split()) #수열은 n-1번 계산해야 n번째 값이 나옴 range(1,n) for i in range(1,n): answer=a*m+d a=answer print(a)


[ 결과 ]


(참고 ) codeup.kr/problem.php?id=6090


※ 제 글이 도움이 되었다면 공감 부탁드려요 :)

반응형
Posted by mminky