저는 파이썬을 처음 접했고 친구는 간단한 질문을 던졌습니다. ROUND와 같은 수학 연산을 사용하지 않고 숫자를 반올림하는 간단한 프로그램을 만드십시오. 저는 소수점 이하 자리 하나에 2.1이나 5.8과 같은 소수점 이하 자리 하나를 알아 내고 싶습니다. 나는 if/then 문과 같은 것임을 믿는다. - < 5면 do ..... do? 미리 감사드립니다 !!둥근 함수를 사용하지 않고 파이썬
-1
A
답변
2
(x
이 번호) 이것에 대해 어떻게 :
정수로 반올림 :
int(x-0.5)+1
가장 가까운 열 번째에 라운딩이 :
(int(10*x-0.5)+1)/10.0
1
수학없이 그것을 그냥 사용 문자열 (여전히 수학을 사용함)
"%0.1f" % my_num_to_round
0
다음은 매우 작은 수학을 사용하는 함수입니다 (더 크거나 같음 비교를 사용하는 것 외에는 프로그래머가 nxt_int()
함수를 작성하는 것만 가능합니다). 유일한 제한은 소수만 쓸 수 있다는 것입니다. (길이는 제한이 없지만).
input = 2.899995
def nxt_int(n): # Get the next consecutive integer from the given one
if n == '0':
n_out = '1'
elif n == '1':
n_out = '2'
elif n == '2':
n_out = '3'
elif n == '3':
n_out = '4'
elif n == '4':
n_out = '5'
elif n == '5':
n_out = '6'
elif n == '6':
n_out = '7'
elif n == '7':
n_out = '8'
elif n == '8':
n_out = '9'
elif n == '9':
n_out = '0'
return n_out
def round(in_num):
# Convert the number to a string
in_num_str = str(in_num)
# Determine if the last digit is closer to 0 or 10
if int(in_num_str[-1]) >= 5:
# Eliminate the decimal point
in_num_str_split = ''.join(in_num_str.split('.'))
# Get the length of the integer portion of the number
int_len = len(in_num_str.split('.')[0])
# Initialize the variables used in the loop
out_num_str = ''
done = False
# Loop over all the digits except the last digit in reverse order
for num in in_num_str_split[::-1][1:]:
# Get the next consecutive integer
num_nxt_int = nxt_int(num)
# Determine if the current digit needs to be increased by one
if (num_nxt_int == '0' or num == in_num_str_split[-2] or out_num_str[-1] == '0') and not done:
out_num_str = out_num_str + num_nxt_int
else:
out_num_str = out_num_str + num
done = True
# Build the rounded decimal
out_num_str = (out_num_str[::-1][:int_len] + '.' + out_num_str[::-1][int_len:]).rstrip('0').rstrip('.')
else:
# Return all except the last digit
out_num_str = in_num_str[:-1]
return out_num_str
print round(input)
관련 문제
- 1. imagse를 사용하지 않고 둥근 모서리
- 2. Join을 사용하지 않고 파이썬 연결
- 3. 파이썬 셸을 사용하지 않고 파이썬 프로그램 테스트하기
- 4. 둥근 괄호를 사용하거나 사용하지 않고 여러 변수를 지정 하시겠습니까?
- 5. 내장 함수를 사용하지 않고 문자열의 길이를 읽으십니까?
- 6. Pop 함수를 사용하지 않고 Python 스택
- 7. Sort 함수를 사용하지 않고 VB에서 배열 정렬
- 8. 함수를 사용하지 않고 열에서 HTML 스트립하기?
- 9. 집계 함수를 사용하지 않고 피벗을 수행하려면 어떻게해야합니까?
- 10. PHP는 정적 함수를 사용하지 않고 클래스를 포함합니다
- 11. 스레드를 사용하지 않고 동시에 함수를 실행하는 방법
- 12. split() 함수를 사용하지 않고 BGR 행렬을 나눕니다.
- 13. c에서 라이브러리 함수를 사용하지 않고 문자열 연결.
- 14. if-else를 사용하지 않고 ceil 함수를 구현하십시오.
- 15. 표준 함수를 사용하지 않고 문자열 반전
- 16. "scatter"함수를 사용하지 않고 Matplotlib의 컬러 맵
- 17. 창을 사용하지 않고 클로저 전역에서 함수를 선언하십시오.
- 18. Inbuilt 함수를 사용하지 않고 .NET에서 난수 생성
- 19. 외부 함수를 사용하지 않고 임의의 숫자를 생성하십시오.
- 20. std lib 함수를 사용하지 않고 인쇄하려면 어떻게해야합니까?
- 21. 함수를 사용하지 않고 변수를 하나씩 늘림
- 22. 함수를 사용하지 않고 문자열의 끝을 감지
- 23. 정렬 함수를 사용하지 않고 중간 값 찾기
- 24. stl 함수를 사용하지 않고 무작위 함수 작성
- 25. 해결 함수를 사용하지 않고 역행렬을 얻고 싶습니다.
- 26. 함수를 사용하지 않고 C로 된 하위 문자열
- 27. 'mysql_connect()'을 사용하지 않고 성능을 사용하지 않고
- 28. 왜 jQuery를 사용하지 않고 javascript 자체 실행 함수를 사용하지 않습니까?
- 29. 어떤 전주곡 함수를 사용하지 않고 하스켈에서 concat와 같은 함수를 구현하십시오.
- 30. jpython을 사용하지 않고 java 코드에서 python 함수를 호출하는 방법
* some * math를 허용해야합니다. 심지어 문자열을 사용하고, 문자열 연산을 사용하고 그것을 다시 변환하려면 수학이 필요합니다. – user2357112
'int ((my_num * 10) +0.5)/10.0' 또는''% 0.1f '% my_num_to_round' –