一、説明

Pythonの変数は宣言を必要としません。各変数は使用前に代入する必要があり、変数に代入して初めてその変数が作成されます。

Pythonでは、変数は変数であり、型はありません。ここでいう「型」とは、変数が指すメモリ内のオブジェクトの型のことです。

等号(=)は変数に値を代入するために使われます。

等号(=)演算子の左側は変数名で、等号(=)演算子の右側は変数に格納される値です。

例:

#!/usr/bin/python3
 
counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "サンプル"     # 字符串
a = b = c = 1          # 同时为多个变量赋值
a,b,c=1,2,'hello'      # 为多个对象指定多个变量

二、標準データ型

Python3には6つの標準データ型があります:

Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)

2.1 Number(数値)

Python3はint、float、bool、complex(複素数)をサポートしています。

整数型はintの1種類だけで、長整数型として表され、Python2のLongはありません。

組み込みのtype()関数は、変数が指すオブジェクトの型を調べるために使えます。

>>> a,b,c,d=5,6.7,true,2+3j
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> a,b,c,d=5,6.7,True,2+3j
>>> print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

注意:

  • 1、Pythonは複数の変数に同時に代入できます。例:a, b = 1, 2。
  • 2、1つの変数は代入によって異なる型のオブジェクトを指すことができます。
  • 3、数値の除算(/)は常に浮動小数点数を返します(print(2/4)は0.5を出力します)。整数を取得するには//演算子を使います。
  • 4、混合計算では、Pythonは整数型を浮動小数点数に変換します。 5、ブール型:TrueとFalse、1と0
  • 6、del文は定義したオブジェクトを削除できます。例:del a,b

2.2 String(文字列)

Pythonの文字列はシングルクォート(')またはダブルクォート(")で囲み、バックスラッシュを使って特殊文字をエスケープします。

文字列のスライス構文は次のとおりです:

変数[先頭インデックス:末尾インデックス]

インデックス値は0から始まり、-1は末尾からの開始位置です。

プラス記号(+)は文字列の連結演算子で、アスタリスク(*)は現在の文字列を複製し、続く数字は複製回数です。

例:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-

str='hello,world!'

print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次
print(str + '你好')        # 连接字符串

print('------------------------------')

print('hello\nworld')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nworld')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

実行結果:

hello,world!                  
hello,world                  
h                  
llo
llo,world!
hello,world!hello,world!
hello,world!你好

------------------------------

hello
world
hello\nworld

注意:

  • 1、バックスラッシュはエスケープに使えます。rを使うとバックスラッシュをエスケープしません。
  • 2、文字列は+演算子で連結でき、*演算子で繰り返せます。
  • 3、Pythonの文字列には2つのインデックス方法があります。左から右へは0から始まり、右から左へは-1から始まります。
  • 4、Pythonの文字列は変更できません。
  • 5、Pythonには単独の文字型はなく、1文字は長さ1の文字列です。

2.3 List(リスト)

List(リスト)はPythonで最も頻繁に使われるデータ型です。

リストはほとんどの集合系データ構造の実装を実現できます。

リストの要素の型は異なっていてもかまいません。数値、文字列をサポートし、リストを含むこと(いわゆるネスト)もできます。

リストは角括弧[]の中に、カンマで区切られた要素のリストとして記述します。

文字列と同様に、リストもインデックスとスライスができます。リストをスライスすると、必要な要素を含む新しいリストが返ります。

リストのスライス構文は次のとおりです:

変数[先頭インデックス:末尾インデックス]

インデックス値は0から始まり、-1は末尾からの開始位置です。

プラス記号(+)はリストの連結演算子で、アスタリスク(*)は繰り返し操作です。

例:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-

list=['hello',357,6.6,'world']
ttlist=[123,'new']

print(list)                # 输出完整列表
print(list[0])             # 输出列表第一个元素
print(list[1:3])           # 输出从第2个开始到第3个元素
print(list[2:])            # 输出从第三个开始的后的所有元素
print(ttlist * 2)          # 输出两次列表
print(str + ttlist)        # 连接列表

実行結果:

['hello', 357, 6.6, 'world']
hello
[357, 6.6]
[6.6, 'world']
[123, 'new', 123, 'new']
['hello', 357, 6.6, 'world', 123, 'new']

Pythonの文字列とは異なり、リストの要素は変更できます:

>>> new=[1,2,3,4,5,'hi']       
>>> new
[1, 2, 3, 4, 5, 'hi']
>>> new[1]='hehe'           #改变列表new中的第2个元素为hehe
>>> new
[1, 'hehe', 3, 4, 5, 'hi']
>>> new[2:4]=[8,10]         #改变列表new中的第3/4个元素为8,9
>>> new
[1, 'hehe', 8, 10, 5, 'hi'
>>> new[2:4]=[]            #删除列表new中的第3、4个元素
>>> new
[1, 'hehe', 5, 'hi']
>>> new[2:3]=[]

注意:

  • 1、Listは角括弧の中に書き、要素はカンマで区切ります。
  • 2、文字列と同様に、listはインデックスとスライスができます。
  • 3、Listは+演算子で連結できます。
  • 4、Listの要素は変更できます。

2.4 Tuple(タプル)

タプル(tuple)はリストに似ていますが、タプルの要素は変更できない点が異なります。

タプルは小括弧()の中に書き、要素はカンマで区切ります。

タプルの要素の型も異なっていてもかまいません。

タプルは文字列と似ており、インデックス可能で、添え字は0から始まり、-1は末尾からの位置です。スライスもできます。

実際には、文字列を特別なタプルと見なすことができます。

0個または1個の要素を含むタプルを構築するのは特別なので、いくつか追加の構文規則があります:

tup1 = ()     # 空元组
tup2 = (20,)  # 一个元素,需要在元素后添加逗号

string、list、tupleはすべてsequence(シーケンス)に属します。

注意:

  • 1、文字列と同様に、タプルの要素は変更できません。
  • 2、タプルもインデックスとスライスができ、方法は同じです。
  • 3、0個または1個の要素を含むタプルを構築する特別な構文規則に注意してください。
  • 4、タプルも+演算子で連結できます。

2.5 Sets(セット)

セット(set)は、順序がなく重複しない要素のシーケンスです。

基本的な機能は、メンバーシップテストと重複要素の削除です。

波括弧 { } または set() 関数を使ってセットを作成できます。注意:空のセットを作成するには set() を使い、{ } は使わないでください。{ } は空の辞書を作成するために使われるからです。

例:

#!/usr/bin/python3

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student)  # 输出集合,重复的元素被自动去掉

# 成员测试
if ('Rose' in student):
    print('Rose 在集合中')
else:
    print('Rose 不在集合中')

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)
print(b)
print(a - b)  # a和b的差集
print(b - a)  # b和a的差集
print(a | b)  # a和b的并集
print(a & b)  # a和b的交集
print(a ^ b)  # a和b中不同时存在的元素

出力結果:

{'Jim', 'Mary', 'Rose', 'Tom', 'Jack'}
Rose 在集合中
{'d', 'c', 'r', 'a', 'b'}
{'l', 'c', 'm', 'a', 'z'}
{'d', 'b', 'r'}
{'l', 'm', 'z'}
{'l', 'd', 'c', 'r', 'm', 'a', 'b', 'z'}
{'c', 'a'}
{'l', 'd', 'r', 'm', 'b', 'z'}

2.6 Dictionary(辞書)

辞書(dictionary)はPythonで非常に便利なもう1つの組み込みデータ型です。

リストは順序付けられたオブジェクトの集合であり、辞書は順序のないオブジェクトの集合です。

両者の違いは、辞書の要素はキーによってアクセスされ、オフセットではアクセスされないことです。

辞書はマッピング型であり、"{ }"で表されます。これは順序のないキー(key) : 値(value)のペアの集合です。

キー(key)は不変型を使用する必要があります。

同じ辞書内では、キー(key)は一意でなければなりません。

例:

#!/usr/bin/python3

dict = {}
dict['one'] = "1 - hello,world"
dict[2] = "2 - 嘿嘿"

tinydict = {'name': 'lucy', 'code': 100, 'class': '5年级6班'}

print(dict['one'])  # 输出键为 'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值

出力結果:

1 - hello,world
2 - 嘿嘿
{'name': 'lucy', 'code': 100, 'class': '5年级6班'}
dict_keys(['name', 'code', 'class'])
dict_values(['lucy', 100, '5年级6班'])

組み込み関数:

getはkey値に対応するvalueを取得し、値が取得できない場合はNoneを返し、エラーになりません。

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.get('k1')
>>> print(v)
v1

clear 空にする

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.clear()
>>> print(dic)
{}
>>> print(v)
None

copy コピー(浅いコピー)

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.copy()
>>> print(v)
{'k1':'v1','k2':'v2'}

pop 対応するvalue値を削除して取得する

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.pop('k1')
>>> print(dic)
{'k2':'v2'}
>>> print(v)
v1

popitem ランダムにキーと値のペアを削除し、削除したキーと値を取得する

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.popitem()
>>> print(dic)
{'k1':'v1'}
>>> print(v)
{'k2':'v2'}

setdefault 追加する。key値が存在する場合は何もしない

>>> dic = {'k1':'v1','k2':'v2'}
>>> dic.setdefault('k3','v3')
>>> print(dic)
{'k1':'v1','k2':'v2','k3':'v3'}

update 一括で追加または修正する

dic = {'k1':'v1','k2':'v2'}
dic.update({'k3':'v3','k4':'v4'})
print(dic)
{'k1':'v1','k2':'v2','k3':'v3','k4':'v4'}

注意:

  • 1、辞書はマッピング型であり、その要素はキーと値のペアです。
  • 2、辞書のキーは不変型でなければならず、重複できません。
  • 3、空の辞書を作成するには { } を使います。

三、データ型変換

データ型の変換は、データ型を関数名として使うだけです。

次のいくつかの組み込み関数はデータ型間の変換を実行できます。これらの関数は変換された値を表す新しいオブジェクトを返します。

関数 説明
int(x [,base]) xを整数に変換します
float(x) xを浮動小数点数に変換します
complex(real [,imag]) 複素数を作成します
str(x) オブジェクトxを文字列に変換します
repr(x) オブジェクトxを式の文字列に変換します
eval(str) 文字列内の有効なPython式を評価して、オブジェクトを返します
tuple(s) シーケンスsをタプルに変換します
list(s) シーケンスsをリストに変換します
set(s) 可変セットに変換します
dict(d) 辞書を作成します。dは(key,value)タプルのシーケンスである必要があります。
frozenset(s) 不変セットに変換します
chr(x) 整数を文字に変換します
unichr(x) 整数をUnicode文字に変換します
ord(x) 文字をその整数値に変換します
hex(x) 整数を16進数文字列に変換します
oct(x) 整数を8進数文字列に変換します

原文アドレス:https://segmentfault.com/a/1190000009722187