2015-01-30 4 views
2

안녕하세요 저는 프로그래밍에 익숙하지 않고 작은 문제도 있습니다.목록에서 부동 소수점 숫자를 인쇄하는 파이썬

결과를 인쇄하려고하는 코드가 약간 있습니다. 인쇄 할 때 소수 자릿수가있는 숫자와 단 하나만있는 숫자를 제공합니다. 자리 표시자를 's'에서 'd'또는 'f'로 변경하려고하면 번호가 아닌 목록이어야합니다.

어쨌든 소수 자릿수 2 자리 숫자를 인쇄 할 수 있습니까?

ftp = 230 
zones = [] 

def zone(n): 
    return ftp * n 

multipliers = (.55,.56,.75,.76,.85,.86,.95,.96, 1.05, 1.06, 1.20, 1.21, 1.50,1.51) 

for i in (multipliers): 
    zones.append(zone(i)) 

format = ('%-*s%*s') 
header_format = '%-*s%*s' 
print '=' * 65 
print header_format % (45, 'Zone', 10, 'Range') 
print '-' * 65 

print format % (45,'Active Recovery    Below ==>> ',10, zones[:1]) 
print format % (45,'Endurance',10, zones[1:3]) 
print format % (45,'Tempo',10, zones[3:5]) 
print format % (45,'Sweet Spot',10, zones[5:7]) 
print format % (45,'Threshhold',10, zones[7:9]) 
print format % (45,'VO2',10, zones[9:11]) 
print format % (45,'Anaerobic',10, zones[11:13]) 
print format % (45,'Neuromuscular     Above ==>>',5, zones[12]) 
print '=' * 65 

답변

2

예, 당신은 단지 그에 따라 format 문자열을 조정해야합니다 : 여기

는 코드입니다. 지금

, 당신은 (당신은 또한 다른 곳이 중복 괄호로, BTW)이 있습니다

format = ('%-*s%*s') 

이 형식 주어진 폭과 정렬을 가진 두 문자열 - 그래서 당신이있어 수레의 목록 zones의 조각을 얻는 것은 서식 지정 세부 사항을 제어하지 않고 "그냥 문자열로"됩니다.

때로는 단일 플로트를 방출하는 경우도 있고, 때로는 두 개를 방출하는 경우도 있습니다. 별도의 두 가지 용도로 두 개의 별도 형식 문자열을 사용하는 것이 좋습니다.

그래서 하나의 플로트

format1 = '%-*s%*.2f' 

format2 = '%-*s%*.2f%*.2f' 

이제 그들 중 두, 마지막 하나가 될 것입니다 예를 들어, 그에 따라 다양한 print 문을 편집

print format1 % (45,'Neuromuscular     Above ==>>',5, zones[12]) 

그 직전의 것

print format2 % (45,'Anaerobic',5,zones[11],5,zones[12]) 

% 연산자의 오른쪽에 튜플이 필요하므로 여기에서 괄호는 이 아니고이 아닙니다.

BTW, 문자열의 새로운 format 방법은 훨씬 더 읽기 이전 % 형식 연산자보다 수 있고, 나는

+0

완벽 함, 감사합니다. 현재 새로운 형식의 메서드를 사용하려고합니다. 다시 한 번 감사드립니다! –

+0

@OscarDulzaides, 아무쪼 락! –

1

당신은 문자열의 나머지 별도로 번호를 포맷 할 수 있습니다 ... 그것은 전환 추천 : 다음

two_numbers_format = '(%.2f - %.2f)' 

하고 있습니다

print format % (45,'Endurance',10, two_numbers_format % zones[1:3]) 

를 그리고 하나 개의 번호를 들면 :

one_number_format = '%.2f' 
print format % (45,'Active Recovery    Below ==>> ',10, one_number_format % zones[:1]) 
관련 문제