소수점
round(수, n)
반올림을 하여서 소수 n번째까지 출력되도록 하는 함수이다.
%0.nf
소수 n번째까지 출력된다. (앞에 0생략 가능)
뒤에 식이 아니라 숫자가 와야 한다고 한다.
%
%s : 문자열(String)
%c : 문자 1개(character)
%d : 정수(Integer)
%f : 부동소수(floating-point)
%o : 8진수
%x : 16진수
%% : % (문자 % 자체)(Literal) ▶이거를 몰랐음 ㅋㅋㅋㅋ
_(언더바, 언더스코어)
: 마지막으로 실행된 값을 의미하기도 하고, 특정 값을 무시하는 경우, 자릿수 구분 등에 사용된다.
1. 평균
www.acmicpc.net/problem/1546
#평균
n = int(input())
score = list(map(int, input().split()))
M = max(score) #따로 선언을 해주어야 이후 for문 때 값이 변하는 현상이 생기지 않음.
sum = 0
for i in range(len(score)):
score[i] = score[i]/M*100
sum += score[i]
print(sum/len(score))
2. 평균은 넘겠지
www.acmicpc.net/problem/4344
#평균은 넘겠지
c = int(input())
for i in range(c):
stu = list(map(int, input().split(' ')))
sum = 0
count = 0
for j in range(len(stu)-1):
sum += stu[j+1]
avg = sum/(stu[0])
for k in range(len(stu)-1):
if avg < stu[k+1]:
count +=1
result = count/stu[0]*100
print("%.3f%%" %result)
for문을 일단 3개를 돌린다라는 게 마음에 안들었다. 근데 손이 그렇게 감 ㅋㅋㅋㅋㅋㅋ
마지막에 %를 표시해주는 부분에서 %%가 아닌 % 하나만 이용해주어서 ValueError: incomplete format라는 오류를 보기도 했었다.
#평균은 넘겠지
n = int(input())
for _ in range(n): # 언더스코어 첫 사용..!
stu = list(map(int, input().split(' ')))
avg = sum(stu[1:])/stu[0] # sum함수를 이용해서 리스트 1부터 끝까지 모두 합쳐준다.
count = 0
for i in stu[1:]:
if i > avg:
count += 1
result = count/stu[0]*100
print("%.3f%%" % result)
이 코드는 다른 분들꺼를 참조한 코드인데, 저 _를 다른 곳에서 보기도 했지만 사용해보긴 처음!
앞으로 활용할 일이 있으면 잊지말고 활용해봐야겠다.
리스트를 이용할 때 [1 : ]처럼 쓸 수 있다라는 것을 자꾸 까먹어서 아쉽다.
다음에 리스트를 이용하는 문제에서는 위 코드처럼 사용해주어 좀 더 간단하게 만들어 봐야지....
반응형