ホームページ  >  記事  >  バックエンド開発  >  Python学習における文字エンコーディングと文字列についての簡単な説明

Python学習における文字エンコーディングと文字列についての簡単な説明

青灯夜游
青灯夜游転載
2018-10-29 17:54:151689ブラウズ

この記事では、Python 学習における文字エンコーディングと文字列について簡単に説明します。一定の参考値があるので、困っている友人は参考にしていただければ幸いです。

文字エンコーディングとは何ですか?

#たとえば、漢字 "" は、次の ## で表すことができます。

# 10 進数:

20013

2 進数:

01001110 00101101(unicode)/11100100 10111000 10101101(utf-8)

16 進数:

u4e2d

ascii エンコード

    ASCII
  • エンコードは

    1 バイト

  • #純粋な英語のみをエンコード可能
  • ##スペースを節約
  • #unicode エンコード

Unicode エンコードは通常、

    2
  • バイトです。 (たとえば、ASCII でエンコードされた文字 A は、10 進数 65、2 進数 01000001 です。AUnicode エンコードは 00000000 01000001 です。) ##uicodeエンコードを統一してエンコードの競合を解決すると、コード化けの問題は解消されます。

  • には ascii

    の 2 倍のストレージ容量があり、ストレージと送信のコスト効率が高くありません (
  • UTF-8#) ##解決策
  • )utf-8 エンコード (可変長 Unicode エンコード)

    UTF- 8
  • encoding は、
##Unicode

文字をさまざまな数値サイズと一般的に使用される英語に従って

1-6

バイトにエンコードします。文字は 1 バイトにエンコードされます。中国語の文字は通常 3 バイトです。非常にまれな文字のみが # にエンコードされます。 ##4 -6 バイト。 #文字ASCIIUnicode

UTF-8
A 01000001 00000000 01000001 01000001
xx #01001110 00101101 11100100 10111000 10101101

1) 送信するテキストに多数の英語の文字が含まれている場合は、UTF-8 でエンコードするとスペースを節約できます。 2) ASCII エンコーディングは、実際には

UTF-8

エンコーディングの一部と見なすことができるため、多くのエンコーディングは ASCII のみをサポートしています。 エンコード: 従来のソフトウェアは UTF-8 エンコードでも引き続き動作します。 コンピュータ システムの一般的な文字エンコード作業方法:

メモリ: 統一されたunicode

Encoding

ハードディスク、送信: utf-8

に変換 Web を閲覧すると、サーバーは動的に生成された Unicode

コンテンツを # に変換します。

##UTF-8 そしてブラウザに送信します。 #Python 文字列

関連関数

#ord()Function

    文字 (単一文字) の整数表現を取得します。パラメータは、操作対象の単一文字と整数です。が返されます。
  • #chr()Function

    エンコーディングを対応する文字 (単一文字) に変換します
  • encode() 関数

  • str

    文字列を指定されたエンコードに変換します。メソッド(パラメータ)は bytes'str'.encode (ascii/utf-8##) になります。 #) 戻り値

  • bytes

Stringascii を使用した中国語エンコードではエラーが報告されます

decode()Functionネットワークまたはディスクから読み取った

bytes
    を指定されたエンコード方式でエンコードします(パラメータ) は
  • str

    'bytes' になります。decode(ascii/utf-8) は str 文字列を返します。bytes はデコードできず、エラーが発生します。 bytes に無効なバイトが少数しかない場合は、

    errors='ignore'
  • を渡すことができます。

間違ったバイトを無視します。 ##> >> b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore') '中'

# #len( )Function, 文字列に含まれる文字数を計算

    ##>>> len(b 'ABC') 3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 6 >>> len('中国語'.encode('utf-8') ) 6
  • 最新の Python 3 バージョンでは、文字列は Unicode

    、つまり
  • ## でエンコードされます。 #Python

の文字列は複数の言語をサポートします

Python の文字列型は str,です。ネットワークに保存するか、ディスク上に保存する必要があります。strbytes に変更する必要があります。 >>文字化けを避けるために、

str## には常に UTF-8 エンコーディングを使用するようにしてください。 bytes変換

<<

str と bytes の違い

  • 1) str 1 文字は数バイト に対応しますが、bytes の各文字は 1 バイトしか占有しません。 (マルチバイト文字をシングルバイトのマルチ文字に分解します)

##>>> 'ABC'.encode('ascii') b'ABC '> >> '中国語'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'

bytes, バイトASCII として表示できない文字は \x## で表示されます。

  • 2) バイト

    の文字は接頭辞と引用符で囲まれます

.py ファイルには中国語の文字が含まれています。 8 エンコード

!/usr/bin/env python3 # -*-coding: utf-8 -*-

#コメントの最初の行は、

Linux に伝えるものです/OS X システム、これは Python 実行可能プログラムです。Windows システムはこのコメントを無視します; コメントの 2 行目は、

Python

インタプリタに UTF-8 エンコードに従ってソース コードを読み取るように指示し、それ以外の場合は、中国語です。ソースコードに記述した出力が文字化けする可能性があります。 #>>エディタは BOM なしの

UTF-8 を使用します<< #文字列の書式設定

問題##>>> 'Hello, %s' % 'world' 'Hello, world' >> ;> ; 'やあ、%s、あなたは $%d を持っています。' % ('Michael', 1000000) 'こんにちは、マイケル、あなたは $1000000 を持っています。'%

Operator

# は文字列のフォーマットに使用されます。文字列内には複数の

%?
    プレースホルダーがあり、その後にいくつかの変数または値が続き、順序は一貫している必要があります。
  • %?

    が 1 つだけの場合は、括弧を省略できます。 エスケープします。

    %%%
  • を使用して
  • %

    > を表します。 >> '成長率: %d %%' % 7 '成長率: 7 %'

#プレースホルダー

置換コンテンツ%d整数%f浮動小数点数% sString%x16 進整数##format()

文字列をフォーマットするもう 1 つの方法は、文字列の format() メソッドを使用することです。このメソッドは、渡されたパラメータを使用してプレースホルダーを置き換えます

{0 }

, {1}... を文字列に順番に記述しますが、この書き方は % よりも簡単です: >>> 'こんにちは、{0}、スコアは {1:.1f}% 向上しました'.format('Xiao Ming', 17.125) ' こんにちは、Xiao Ming、あなたのスコアは 17.1% 向上しました'

以上がPython学習における文字エンコーディングと文字列についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。