史上最も完全なpython文字列操作ガイド!

6343 ワード

文字列の定義
日常の符号化では、配列、リスト、辞書にかかわらず、最終的には文字列の処理から逃れられないデータを処理する必要があることがわかります.だから今日は皆さんと発散するトーク文字列に来ます!文字列を見て味気ないと思う人も多いと思いますが、大人たちはもっと下を見てみてはいかがでしょうか.python定義文字、文字列はjavaほど厳密ではありません.単一引用符、二重引用符、さらには3つの単一引用符、二重引用符でも文字(列)を定義するために使用できます.ペアで表示される限りです.例:
#     
a='a'
#           
name='Uranus'
#           
code = "Hello World ..."
#      string,           ?
class str(object):
    """
    str(object='') -> str
    str(bytes_or_buffer[, encoding[, errors]]) -> str
    Create a new string object from the given object. If encoding or
    errors is specified, then the object must expose a data buffer
    that will be decoded using the given encoding and error handler.
    Otherwise, returns the result of object.__str__() (if defined)
    or repr(object).
    encoding defaults to sys.getdefaultencoding().
    errors defaults to 'strict'.
    """

これらは主に言っているわけではありませんが、簡単に言えば、3つの単一引用符または二重引用符は、主にドキュメントの注釈として使用されます.文字列を定義しないでください(構文エラーは発生しませんが).今日は主にセグメントの文字列をどのように定義すべきかについてお話しします.PEP 8には、1行のコードの長さが120文字を超えないように規定されています.では、もしこのような状況に遭遇したら、どうすればいいですか?
#         :
line = """
Create a new string object from the given object.
If encoding or errors is specified,
then the object must expose a data buffer that will be
decoded using the given encoding and error handler.
"""
#     
line = "Create a new string object from the given object. " \
       "If encoding or errors is specified," \
       "then the object must expose a data buffer that will be" \
       " decoded using the given encoding and error handler."
#        :
line = ("Create a new string object from the given object."
        "If encoding or errors is specified,"
        "then the object must expose a data buffer that will be "
        "decoded using the given encoding and error handler."
        )

文字列の中で簡単です.is()と.()の使い方
.is()*、isである以上、返される結果は2つしかありません.True or Falseはまず数字を比較します.
isdigit()True:Unicode数字、byte数字(シングルバイト)、全角数字(ダブルバイト)、ローマ数字False:漢字数字Error:なし
isdecimal()True:Unicode数字、全角数字(ダブルバイト)False:ローマ数字、漢字数字Error:byte数字(シングルバイト)
isnumeric()True:Unicode数字、全角数字(ダブルバイト)、ローマ数字、漢字数字False:無Error:byte数字(シングルバイト)
いくつかの専門知識点をまとめます.
a='①②③④⑤'
isdigit()、isnumeric()  True isdecimal() False
b='  '
isnumeric()    True  !

もう1つの式を見てみましょう.
isalnum()=isdigit()+isalpha()+isspace()isdigit()は文字列内がすべて数字isalpha()は文字列内がすべて文字isspace()は文字列に1つ以上のスペースがあるisalnum()は文字列内がすべて数文字と文字であることを示します
a='12345'
b='①②③④⑤'
c='abc123'

print(a.isdigit()) # True
print(b.isalpha()) # True
print(c.isalnum()) # True

文字列の大文字と小文字の方法:
.isupper()文字列はすべて大文字で構成されている.islower()文字列はすべて小文字で構成されている.istitle()文字列形式はアルパカの名前で、eg:“Hello World”
これらの用法はisを除くと,対応する文字列転送方法となる.勉强して2セットできて、买って1つ送って1...
最後に一つは持たないと言った.のis*---isinstance(obj,type)
オブジェクトのタイプを判断する...typeオプションタイプは、int、float、bool、complex、str、bytes、unicode、list、dict、set、tupleであり、typeは、isinstance(obj、(str、int))の元のグループであってもよい.
文字列の内容を判断する
.*with()starts endsは、先頭と末尾のマッチングだけでなく、startとendの2つのパラメータをサポートして文字列のindex位置を動的に定義します.
long_string = "To live is to learn,to learn is to better live"
long_string.startswith('To')
long_string.startswith('li', 3, 5)
long_string.endswith('live')
long_string.endswith('live', 0, 7)

同様にstart,endをサポートして文字列を判断するものもある.find()、.rfind()和.index()、.rindex()の2つの文字列アドレス方法は、findが見つからない場合は-1を返し、indexが見つからない場合はValueErrorの異常を放出するのとは異なり、左から右、右から左の2つのアドレス方法をサポートしています.
long_string.index('live') # 3
long_string.rindex('live') # 42

文字列の内容変更
狭義には、文字列の置換が用いる.replace()でいいのに、どうして単独で言うのですか.オプションのパラメータcountがあるから
long_string = "To live is to learn,to learn is to better live"
long_string.count('live') # 2
long_string.replace('live','Live',1)
output:
'To Live is to learn,to learn is to better live'
#     ,   live      

さっき狭義と言いましたが、広義は?
(l/r)strip()文字列の左、右、両端の特定の文字をフィルタリングし、デフォルトはスペース...strip()注意すべき点は、strip('TolLive')の文字が完全に一致するのではなく、各文字に対して一致することです.
long_string = "To live is to learn,to learn is to better live"
long_string.strip('TolLive')
's to learn,to learn is to better'

文字列スライス文字列のスライスはlong_に分けられますstring[start:end;step]start,end区間は左閉右開...このネット上で言うことが多すぎて、また引き出して詳しく言うと殴られます...
(l/r)just(width,[fillchar])、center(width,[fillchar])、zfill(width)これらはいずれも固定長を埋める文字で、デフォルトではスペース(zfillは左補0、zはzeroの意味...)を使用します.意味を見ればわかるから、余計なことは言わないで....
文字列フォーマット出力
本来fillやcenterなどはここに置くことができますが、彼らの使用頻度や重量級が足りず、上に捨てられました.Pythonフォーマット出力はpyton 2の時代、すなわち%とformatの2種類に分けられる.この2つのネット上の資料は多すぎて、言うことが多すぎて無理に見えません...ただし、特殊な場所%フォーマット出力について簡単に説明します.
  • はどのようにして%のフォーマット出力の中で、マークされた%記号として出力しますか?2つのパーセント(%)
  • を使用
  • %(-)(width)widthは長さを設定し、デフォルトでは左にスペースを入力し、追加-番号は右に
  • を入力します.
  • .widthは文字列の切断を表し、どのくらいの長さの文字列を保持するか
  • type%s文字列%d 10進数整数%f小数...
  • の複数のパラメータは、後のパラメータが括弧で囲む必要がある
  • である.
    '  :%-5s   :%4d   : %.8s' % ('   ',30,'python、Java')
    output:
    '  :        :  30   : python、J'
    

    formatフォーマット出力:formatはpython 3から公式に置換%と表示されていますが、なぜ%が残っているのか、主に互換性のためです...
  • 対比%formatは変数
  • をカッコ{}で表す
  • <>^はformatの整列方式
  • を表す
    '{:-^40s}'.format('      ')
    output:
    '-----------------      -----------------'
    

    f-string Python3.6のバージョンが更新されると、f-stringが追加され、英語が上手な人はPEP 498--Literal String Interpolationの公式解釈を見ることができます.f-stringは、文字列引用符の前にf/Fで始まり、{}を使用して置換位置を表記する使用形式である.f-stringが公式に発売されたのは、主により高い性能、より強い機能のためだ.例:
    name = 'Uranus'
    f'Hello,{name}'
    f'Hello,{name.lower()}'
    f'Hello,{name:^10s}'
    f'Hello,{(lambda x: x*2) (name)}'
    
    output:
    'Hello,Uranus'
    'Hello,uranus'
    'Hello,  Uranus  '
    'Hello,UranusUranus'
    

    なんか、ハイエンドですが、私という人は少し古いですね...
    The End
    文字列操作には何がありますか?つけられるものはまだ多すぎますが、これ以上書くと夜が明けます.明日はどうやって出勤しますか.屋台を片付けました.今日の内容はここまでです.もし役に立つと思ったら、文章や私の微信の公衆番号【 Python】をpythonが好きな人に共有してください.ありがとうございます.