-6
이 내가 마지막에 명시됩니다 오류가 보채 유지 :이 프로그래밍에있어 잘못된 점은 무엇입니까?
import math
# Target:
# Enter an input and it will convert into GB, MB and KB with the leftover bytes in it
def start():
print ''
print ''
# 10 = 1 billion
byte = input("Bytes: ")
tw = int(math.log10(byte))+1
tw = tw - 7
gb = byte // 10**9
byte = str(byte)
a = len(byte) - 6
b = len(byte) - 3
if b > 0:
if a > 0:
kb = int(str(byte)[a:b])
else:
kd = int(str(byte)[0:b])
else:
kb = 0
c = len(byte) - 6
if c > 1:
mb = int(str(byte)[0:c])
if int(mb) > 999:
if int(mb) < 10000:
mb = mb // 10**3
byte = str(byte)
if len(byte) <= 3:
mb = 0
kb = 0
else:
mb = 0
d = len(byte) - 6
byte = int(byte)
lob = int(str(byte)[d:])
byte = str(byte)
if int(kb) > 1000:
dmb = mb // 10**3
mb = mb + dmb
kb = kb // 10**3
print ''
print ''
print ''
print(' GB: %s MB: %s KB: %s') % (gb, mb, kb)
print(' Bytes: %s') % lob
print ''
print ''
print ''
start()
이 어떤 문제가 있습니까? 는 말을 계속 :
잘못 무엇Traceback (most recent call last):
File "bytes.py", line 53, in <module>
start()
File "bytes.py", line 39, in start
if int(kb) > 1000:
UnboundLocalError: local variable 'kb' referenced before assignment
! I 39 번 라인을 다른 장소로 계속 변경하지만 어떻게 수정해야하는지 모르겠습니다. UnboundLocalError를 사용하면 할당 전에 참조 된 로컬 변수 'kb'를 이해할 수 없습니다. 도움!
'kd'에만 할당하고 'kb'에는 할당하지 않는 코드 경로가 있습니다. 아마도 이것은 오타입니다. 좋은 변수 이름을 사용하면 훨씬 쉽게 찾을 수 있습니다. – geoffspear