Python에서 문자열 오른쪽 정렬

Aditya Raj 2023년10월10일
  1. 형식 지정자를 사용하여 Python에서 문자열 오른쪽 정렬
  2. f-strings를 사용하여 Python에서 문자열 오른쪽 정렬
  3. format() 메서드를 사용하여 Python에서 문자열 오른쪽 정렬
  4. rjust() 메서드를 사용하여 Python에서 문자열 오른쪽 정렬
  5. 결론
Python에서 문자열 오른쪽 정렬

때로는 파이썬에서 테이블을 인쇄하는 동안 보기 좋게 값을 정당화해야 합니다. 이 기사에서는 파이썬에서 문자열을 정당화하는 다양한 방법에 대해 논의할 것입니다.

형식 지정자를 사용하여 Python에서 문자열 오른쪽 정렬

형식 지정자는 이름에서 알 수 있듯이 문자열의 값을 형식화하는 데 사용됩니다. 다음은 파이썬에서 형식 지정자를 사용하는 구문입니다.

myStr = "%s" % (string_variable)
  • string_variable은 문자열로 출력해야 하는 변수의 이름입니다.
  • %s는 문자열 변수에 대한 형식 지정자 및 자리 표시자로 사용됩니다. 정수 및 부동 소수점 숫자의 경우 %d%f를 형식 지정자로 사용할 수 있습니다.

위의 문장이 실행되면 string_variable의 값은 문자열의 형식 지정자 자리에 할당됩니다. 마지막으로 출력 문자열은 myStr에 할당됩니다.

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

출력:

Delftstack Aditya Jinku

위의 예에서는 세 개의 문자열 변수를 정의했습니다. 그런 다음 형식 지정자를 사용하여 입력을 단일 문자열로 변환했습니다.

다음 예에서는 문자열의 형식 지정자 수보다 적은 변수가 있다고 가정합니다. 이 경우 프로그램은 형식 문자열에 주어진 인수가 충분하지 않다는 TypeError 예외가 발생합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2)
print(myStr)

출력:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s %s" % (string_variable1, string_variable2)
TypeError: not enough arguments for format string

위의 코드에는 세 가지 형식 지정자가 있습니다. 그러나 % 연산자에 대한 입력 인수로 두 개의 문자열 변수만 제공했습니다.

이 때문에 프로그램은 TypeError 예외가 발생합니다. 마찬가지로 형식 지정자의 수보다 형식 문자열에 더 많은 변수가 있는 경우 프로그램은 형식 문자열에 대한 모든 인수가 문자열 형식화 중에 변환되지 않았다는 TypeError 예외가 발생합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

출력:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
TypeError: not all arguments converted during string formatting

위의 예에서는 형식 지정자가 두 개뿐이지만 % 연산자에 대한 입력 인수로 세 개의 문자열 변수를 제공했습니다. 이로 인해 프로그램이 실행되는 동안 TypeError 예외가 발생합니다.

출력 문자열을 오른쪽 정렬하기 위해 다음 스니펫과 같이 형식 지정자와 함께 출력 문자열의 길이를 사용합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%10s" % (string_variable1)
myStr2 = "%10s" % (string_variable2)
myStr3 = "%10s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

위의 예에서 출력 문자열 길이를 10으로 지정했습니다. 실행 후 출력 문자열의 길이는 10이 됩니다.

출력:

Delftstack
    Aditya
     Jinku

출력에서 문자열이 오른쪽으로 정렬되었는지 확인합니다. string_variable의 길이가 형식 지정자에 지정된 출력 문자열의 길이보다 작은 경우 공백 문자가 문자열에 채워져 입력 문자열을 오른쪽 정렬합니다.

string_variable의 길이가 형식 지정자에 지정된 출력 문자열의 길이보다 크면 입력 문자열에 변경 사항이 발생하지 않고 변경되지 않은 상태로 인쇄됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%5s" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

출력 문자열 길이를 5로 지정했습니다. 그러나 입력으로 전달한 모든 문자열의 길이는 5보다 크거나 같습니다.

따라서 출력 문자열의 지정된 길이는 입력 문자열의 길이보다 작거나 같습니다. 따라서 서식이 발생하지 않습니다.

f-strings를 사용하여 Python에서 문자열 오른쪽 정렬

형식 지정자를 사용하려면 변수를 인쇄할 수 있으려면 변수의 데이터 유형을 알아야 합니다. 형식 지정자에 지정된 올바른 데이터 유형으로 변수를 전달하지 않으면 프로그램에서 TypeError 예외가 실행됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%d" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr1 = "%d" % (string_variable1)
TypeError: %d format: a number is required, not str

형식 지정자로 %d를 사용했음을 알 수 있습니다. 그러나 % 연산자에 대한 입력으로 문자열을 전달했습니다.

이로 인해 프로그램은 문자열이 아닌 정수 입력을 예상한다는 TypeError 예외가 발생합니다. 이 오류를 피하기 위해 f-문자열을 사용하여 문자열을 오른쪽 정렬할 수 있습니다.

f-strings 사용 구문:

myStr = f"{string_variable}"
  • string_variable은 값을 인쇄해야 하는 변수입니다.
  • {}string_variable의 자리 표시자로 사용됩니다.
  • 문자열 앞의 리터럴 "f"는 문자열이 f-문자열임을 나타냅니다.

실행 후 출력 문자열은 myStr에 할당됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1}"
myStr2 = f"{string_variable2}"
myStr3 = f"{string_variable3}"
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

위의 예에서 세 개의 변수를 만들었습니다. 그 후, 각 변수에 해당하는 세 개의 f-strings를 만들었습니다.

f-문자열을 실행한 후 출력은 myStr1, myStr2myStr3 변수에 할당됩니다. 위 코드에서 출력 문자열을 오른쪽 정렬하기 위해 다음 예제와 같이 자리 표시자에서 출력 문자열의 길이를 사용합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>10}"
myStr2 = f"{string_variable2:>10}"
myStr3 = f"{string_variable3:>10}"
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
    Aditya
     Jinku

출력에서 문자열을 오른쪽으로 정렬하기 위해 자리 표시자에 variable_name:> output_length 구문을 사용했습니다. output_length10으로 지정했습니다.

string_variable의 길이가 자리 표시자에 지정된 출력 문자열의 길이보다 작으면 공백 문자가 문자열에 채워져 입력 문자열을 오른쪽으로 정렬합니다. 다음 스니펫과 같이 string_variable의 길이가 자리 표시자에 지정된 출력 문자열의 길이보다 크면 입력 문자열에 변경 사항이 발생하지 않고 변경되지 않은 상태로 인쇄됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>5}"
myStr2 = f"{string_variable2:>5}"
myStr3 = f"{string_variable3:>5}"
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

출력 문자열의 길이를 모든 입력 문자열의 길이보다 작거나 같은 5로 지정했습니다. 따라서 서식이 발생하지 않습니다.

format() 메서드를 사용하여 Python에서 문자열 오른쪽 정렬

f-strings 대신 format() 메서드를 사용하여 파이썬에서 문자열을 오른쪽 정렬할 수도 있습니다.

format() 메서드 사용 구문:

myStr = "{}".format(string_variable)
  • string_variable은 문자열로 출력해야 하는 변수의 이름입니다.
  • {}는 문자열 변수의 자리 표시자로 사용됩니다.

format() 메서드가 실행되면 string_variable의 값은 문자열의 자리 표시자 위치에 할당됩니다. 마지막으로 출력 문자열은 myStr에 할당됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{}".format(string_variable1)
myStr2 = "{}".format(string_variable2)
myStr3 = "{}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

위의 예에서는 세 개의 변수를 만들었습니다. 그 후, 각 변수에 대해 한 번씩 format() 메서드를 세 번 사용했습니다.

출력은 format() 메소드를 실행한 후 myStr1, myStr2myStr3 변수에 할당됩니다.

format() 메소드에 대한 입력 인수와 동일한 수의 변수를 가진 임의의 수의 자리 표시자를 가질 수 있는 예를 들어 보겠습니다.

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

출력:

Delftstack Aditya Jinku

세 가지 변수를 모두 format() 메서드에 대한 입력 인수로 전달했습니다. 출력은 단일 문자열로 반환됩니다.

문자열의 자리 표시자 수보다 더 적은 수의 변수가 format() 메서드에 전달되면 다음 예제와 같이 프로그램에서 IndexError 예외가 실행됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2)
print(myStr)

출력:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "{} {} {}".format(string_variable1,string_variable2)
IndexError: Replacement index 2 out of range for positional args tuple

세 개의 자리 표시자가 있지만 format() 메서드에 대한 입력 인수로 두 개의 문자열만 전달했습니다. 이로 인해 프로그램은 IndexError 예외가 발생합니다.

format() 메서드에 전달된 변수의 수가 format() 메서드가 호출된 문자열의 자리 표시자보다 많은 경우 자리 표시자 수와 동일한 변수가 문자열에 포함됩니다. 나머지 변수는 삭제됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

출력:

Delftstack Aditya

두 개의 자리 표시자가 있고 format() 메서드에 대한 입력으로 세 개의 문자열을 전달했지만 프로그램은 이번에 IndexError로 실행되지 않습니다. 마지막 입력 인수만 삭제되었습니다.

format() 메서드를 사용하여 출력 문자열을 오른쪽 정렬하려면 다음 예제와 같이 자리 표시자에서 출력 문자열의 길이를 사용합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>10}".format(string_variable1)
myStr2 = "{:>10}".format(string_variable2)
myStr3 = "{:>10}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
    Aditya
     Jinku

여기서 string_variable의 길이가 자리 표시자에 지정된 출력 문자열의 길이보다 작으면 공백 문자가 문자열에 채워져 입력 문자열을 오른쪽으로 정렬합니다.

string_variable의 길이가 자리 표시자에 지정된 출력 문자열의 길이보다 크면 입력 문자열에 변경 사항이 발생하지 않고 변경되지 않은 상태로 인쇄됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>5}".format(string_variable1)
myStr2 = "{:>5}".format(string_variable2)
myStr3 = "{:>5}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

위에서 논의한 모든 접근 방식은 모든 데이터 유형으로 변수의 형식을 지정하는 데 사용됩니다. Python은 또한 문자열에 특정한 메서드를 제공합니다.

rjust() 메서드를 사용하여 파이썬에서 문자열을 오른쪽 정렬할 수 있습니다.

rjust() 메서드를 사용하여 Python에서 문자열 오른쪽 정렬

rjust() 메서드 구문:

myStr = string_variable.rjust(output_length)
  • string_variable은 값을 오른쪽 정렬해야 하는 변수입니다.
  • ouput_length는 출력 문자열의 길이입니다.

rjust() 메소드가 string_variable에 대해 호출되면 output_length를 입력 인수로 사용하고 myStr에 할당된 오른쪽 정렬 문자열을 반환합니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(10)
myStr2 = string_variable2.rjust(10)
myStr3 = string_variable3.rjust(10)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
    Aditya
     Jinku

string_variable 길이가 output_length보다 작은 경우 공백 문자가 문자열에 채워져 입력 문자열을 오른쪽으로 정렬합니다.

이 다음 예에서 string_variable의 길이가 output_length보다 크면 입력 문자열에 변경 사항이 발생하지 않고 변경되지 않은 상태로 인쇄됩니다.

예제 코드:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(5)
myStr2 = string_variable2.rjust(5)
myStr3 = string_variable3.rjust(5)
print(myStr1)
print(myStr2)
print(myStr3)

출력:

Delftstack
Aditya
Jinku

결론

이 기사에서 우리는 파이썬에서 문자열을 정당화하는 네 가지 방법에 대해 논의했습니다. 이 중 format() 방법이 더 편리하므로 사용하는 방법을 사용하는 것이 좋습니다.

또한 이 경우 입력 변수에 다른 데이터 유형의 값이 포함되어 있으면 프로그램에서 오류가 발생하지 않습니다.

작가: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

관련 문장 - Python String