2014-11-12 3 views
0

이렇게 생각하면 꽤 간단하지만 제대로 작동하지 않는 것 같습니다.특정 열에 쓰는 방법

목적은 단순히 문자열을 인쇄하는 함수를 정의하는 것이며 그 문자열의 마지막 문자는 열 70에 있어야합니다.

나는 이것을했다.

def fun(s): 

    print(70*' ' -len(s) , s) 

70 공백을 만들고 문자열의 길이로 뺍니다.

는 그래도 난이 오류 :

TypeError: unsupported operand type(s) for -: 'str' and 'int' 

나는 그것이 나에게 말하고 있지만 주위를 켤 수없는 것을 알고있다.

답변

2
def fun(s): 
    print(' '*(70 - len(s)) + s) 

(len(s) > 70 경우가있을 것이다 문제)

+0

덕분에 많이 도움 : – atrish

0

당신은 일을해야한다 : 약간의 간격,

' '*(70-len(s)) 

또는 :

' ' * (70 - len(s)) 

이 생성됩니다 길이가 70 - 문자열 길이를 뺀 공백 문자열 s. 따라서 s20 자이면 코드는 70-20 또는 50 공백의 문자열을 만듭니다. 더 나은 솔루션이 str.rjust 사용하는 것입니다 말했다

:

>>> s = 'abcde' 
>>> s.rjust(70) 
'                 abcde' 
>>> len(s.rjust(70)) 
70 
>>> 

str.rjust, str.ljuststr.center 방법 (모든 위의 링크에서 설명 : 아래

s.rjust(70) 

는 데모입니다)는 이와 같은 작업을 위해 특별히 설계되었습니다.

+0

에 대한 감사! 나는 s.rjust에 대해 아직 알지 못했다 : b – atrish

0

당신은

print ("%70s" % s) 

그것은 더 명확 할 것이다 할 수 있었다.

1

당신은 rjust 사용할 수 있습니다

print('{0:>70}'.format(s)) 
1

포맷 기능을 사용입니다

print((70-len(a))*' ',a) 
0

뭔가 아마도이 같은 : 여기 데모

>>> 'hello'.rjust(10,' ') 
'  hello' 
관련 문제