Kufunga, kufupisha na kupanga mifuatano kwenye Python kwa maandishi

Biashara

Ili kuunda kamba kwenye Python kwa kuifunga (kuvunja mstari) na kuikata (kufupisha) kwa idadi ya herufi kiholela, tumia moduli ya maandishi ya maktaba ya kawaida.

Habari ifuatayo imetolewa hapa.

  • Kufunga kamba (mlisho wa mstari):wrap(),fill()
  • Kata kamba (imeachwa):shorten()
  • Kitu cha kuandika maandishi

Ikiwa ungependa kuandika mifuatano mirefu kwenye mistari mingi kwenye msimbo badala ya katika matokeo, angalia makala ifuatayo.

Kufunga kamba (mlisho wa mstari):wrap(),fill()

Ukiwa na utepe wa kukokotoa() wa moduli ya maandishi, unaweza kupata orodha iliyogawanywa na vipashio vya maneno ili kutoshea katika idadi ya herufi kiholela.

Bainisha idadi ya vibambo kwa upana wa hoja ya pili. Chaguo msingi ni upana=70.

import textwrap

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

s_wrap_list = textwrap.wrap(s, 40)
print(s_wrap_list)
# ['Python can be easy to pick up whether', "you're a first time programmer or you're", 'experienced with other languages']

Kutumia orodha iliyopatikana, unaweza kupata kamba ambayo imevunjwa na msimbo wa mstari mpya kwa kufanya zifuatazo
\n'.join(list)

print('\n'.join(s_wrap_list))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

Kazi fill() inarudisha kamba mpya badala ya orodha. Ni sawa na kutekeleza nambari ifuatayo baada ya wrap() kama ilivyo kwenye mfano hapo juu.
\n'.join(list)

Hii ni rahisi zaidi wakati hauitaji orodha lakini unataka kutoa kamba ya upana usiobadilika kwa terminal, nk.

print(textwrap.fill(s, 40))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

Ikiwa hoja max_line imebainishwa, idadi ya mistari baada yake itaachwa.

print(textwrap.wrap(s, 40, max_lines=2))
# ['Python can be easy to pick up whether', "you're a first time programmer or [...]"]

print(textwrap.fill(s, 40, max_lines=2))
# Python can be easy to pick up whether
# you're a first time programmer or [...]

Ikiwa imeachwa, mfuatano ufuatao utatolewa mwishoni kwa chaguo-msingi.
[...]'

Inaweza kubadilishwa na mfuatano wowote na kishika nafasi cha hoja.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~'))
# Python can be easy to pick up whether
# you're a first time programmer or ~

Unaweza pia kubainisha mfuatano wa kuongezwa mwanzoni mwa mstari wa kwanza kwa kujongea_kwa hoja. Hii inaweza kutumika unapotaka kujongeza mwanzo wa aya.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~', initial_indent='  '))
#   Python can be easy to pick up whether
# you're a first time programmer or ~

Kuwa mwangalifu na herufi za saizi kamili na nusu.

Katika maandishi, idadi ya wahusika inadhibitiwa na idadi ya wahusika, sio kwa upana wa herufi, na herufi zote mbili-byte na mbili-byte huzingatiwa kama mhusika mmoja.

s = '文字文字文字文字文字文字12345,67890, 文字文字文字abcde'

print(textwrap.fill(s, 12))
# 文字文字文字文字文字文字
# 12345,67890,
# 文字文字文字abcde

Iwapo ungependa kukunja maandishi yenye vibambo mchanganyiko vya kanji na upana usiobadilika, tafadhali rejelea zifuatazo.

Kata kamba (imeachwa):shorten()

Ikiwa unataka kupunguza na kuacha mifuatano, tumia chaguo la kukokotoa kufupisha() kwenye moduli ya maandishi.

Imefupishwa katika vitengo vya maneno ili kutoshea idadi isiyo ya kawaida ya vibambo. Idadi ya wahusika, ikiwa ni pamoja na mfuatano unaoonyesha kuachwa, ni ya kiholela. Mfuatano unaoonyesha upungufu unaweza kuwekwa na kishikilia nafasi cha hoja, ambacho kinabadilika kuwa kifuatacho.
[...]'

s = 'Python is powerful'

print(textwrap.shorten(s, 12))
# Python [...]

print(textwrap.shorten(s, 12, placeholder=' ~'))
# Python is ~

Hata hivyo, kamba za Kijapani, kwa mfano, haziwezi kufupishwa vizuri kwa sababu haziwezi kugawanywa katika maneno.

s = 'Pythonについて。Pythonは汎用のプログラミング言語である。'

print(textwrap.shorten(s, 20))
# [...]

Ikiwa unataka kufupisha kwa kuzingatia tu idadi ya wahusika badala ya vitengo vya maneno, inaweza kupatikana kwa urahisi kama ifuatavyo.

s_short = s[:12] + '...'
print(s_short)
# Pythonについて。P...

Kitu cha kuandika maandishi

Ikiwa utafunga () au kujaza () mara nyingi na usanidi uliowekwa, ni bora kuunda kitu cha TextWrapper.

wrapper = textwrap.TextWrapper(width=30, max_lines=3, placeholder=' ~', initial_indent='  ')

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

print(wrapper.wrap(s))
# ['  Python can be easy to pick', "up whether you're a first time", "programmer or you're ~"]

print(wrapper.fill(s))
#   Python can be easy to pick
# up whether you're a first time
# programmer or you're ~

Mipangilio sawa inaweza kutumika tena.

Copied title and URL