最新のpythonエントリベースの第8章:文字列

ストリング

1.文字列(str)

コンテナ: "、" "、" ""、 "" "" ""コンテナの表現として、各独立したテキスト情報はその要素です(引用符内の各記号は文字列の要素です)

要素:引用符で囲まれた各記号は要素であり、文字列の要素は文字とも呼ばれます

文字列は不変です;順序付けられています(添え字操作をサポート)

2.キャラクター

Pythonには文字の概念しかなく、対応するデータタイプはありません。文字が必要な場合は、長さ1の文字列を使用して表現します

a。通常の文字-エスケープ文字を除くすべての文字は通常の文字です。通常の文字は文字列内のシンボル自体を表します

b。エスケープ文字-\と他の文字の形式で存在し、文字列内で特別な機能または特別な意味を持ちます

といった

\ n-ラインフィード(Enterキーを押すのと同じ)

\ t-水平タブ文字(タブキーを押すのと同じ)

'-一重引用符を意味します

"-二重引用符を意味します

\-バックスラッシュを意味します

\ u 4桁の16進数-4桁の16進数に対応する文字(コード化された文字)をコード値として表します

3.文字エンコード

1)計算に直接保存できるデータは数字のみであり、保存されるのは数字の補数です。

2)テキストデータを直接計算に保存する方法はありません。計算でテキストデータを保存する場合、実際には各テキストシンボルに対応する番号になります。

(コンピューターの場合、各テキスト記号は固定番号に対応します)、各テキスト記号に対応する番号はこの記号のコード値です

3)文字コード表:ASCIIコード表、Unicodeコード表

4.コード化された値の使用

1)コード文字:\ uコード値

2)chr(エンコーディング値)-指定されたエンコーディング値に対応する文字を取得します

3)ord(文字)-指定された文字のコード値を取得します

文字を取得する

文字列を取得するための構文は、リスト内の要素を取得するための構文と同じです。

1)文字列[添え字]-単一の文字列を取得します

  • スペースはキャラクターです
  • エスケープ文字は1文字です(エスケープ文字の長さは1文字です)

2)スライス

変数[文字列] [前の値:次の値:ステップ長]

3)文字列内のfor変数をトラバースします

関連する操作

計算:

  • +(2つの文字列がマージされて新しい文字列が生成されます)

  • * N(文字列がN回繰り返され、新しい文字列が生成されます

  • ==または!=

print('abc' == 'abc')   # age
print('abc' == 'acb')   # False
  • '>'、<、> =、<=(2つの文字列のサイズが比較されます。これは、等しくない文字の最初のペアのエンコード値のサイズです)
练习1:分别统计字符串中中文字符的个数和字母的个数
str3 = 'hsjj数据是2823竭尽所能SJJ==-2...数kkl'
count1 = 0
count2 = 0
for x in str3:
    if '\u4e00' <= x <= '\u9fa5':
        count1 += 1
    elif 'A' <= x <= 'Z' or 'a' <= x <= 'z':
        count2 += 1
print('中文:', count1, '字母:', count2)

练习2:判断一个字符串中是否有数字字符,有打印True, 没有打印False
'bans江苏省'  -> False   '三角函数sss223=='  -> True
str4 = 'bans江苏省'
for x in str4:
    if '0' <= x <= '9':
        print(True)
        break
else:
    print(False)

でないで:

文字列内の文字-指定された文字が文字列内に存在するかどうかを判別します

文字列2の文字列1文字列1が文字列2のサブ文字列であるかどうかを判断します

関連する使用法

String 1.count(string 2)-文字列1での文字列2の出現回数をカウントします

文字列1.index(文字列2)-文字列1の文字列2の位置を初めてカウントします

String.join(シーケンス)-シーケンス内の要素を文字列で結合して、新しい文字列を生成します(シーケンス内の要素は文字列である必要があります)

list1 = ['abc', 120, True, 12.5]
print('+',join([str(x) for x in list1]))

String.split(string 2)-カットポイントとしてストリング2を使用してストリング1をカットします

String.split(string2、N)-文字列1の最初のN個の文字列2をカッティングポイントとして使用します

print('000abc123abc456abc789'.split('abc'))   # ['000', '123', '456', '789']

注:ストリングの両端の切断点または切断点が連続して発生すると、空の文字列が生成される場合があります

String 1.replace(string 2、string 3)-文字列1のすべての文字列2を文字列3に置き換えます

String 1.replace(string 2、string 3、N)-文字列1の文字列2の最初のNを文字列3に置き換えます

max(エンコード値の最大文字)、mix(エンコード値の最小文字)、sorted(エンコード値のサイズでソート)

str(data)-データを文字列に変換します(すべてのタイプのデータを文字列に変換できます。データを文字列に変換すると、引用符がデータの出力値の最外層に直接追加されます)

eval(string)-リスト形式の文字列をリストに変換し、辞書形式の文字列を辞書に変換します

str5 = "['abc', 10, 20] "
list2 = eval(str5)
print(list2, type(list2))  # ['abc', 10, 20] <class 'list'>
print(list2[0])

dict1 = eval("{'name': '张三', 'age': 18}")
print(dict1, type(dict1))   # {'name': '张三', 'age': 18} <class 'dict'>

tuple1 = eval('(10, 20, 30)')
print(tuple1, type(tuple1))   # (10, 20, 30) <class 'tuple'>

result = eval('[10, "abc", 123]')
print(result, type(result))

おすすめ

転載: blog.csdn.net/SaharaLater/article/details/111325992