ホームページ > バックエンド開発 > Python チュートリアル > Python のデータ型と演算子の詳細な概要 (コード例)

Python のデータ型と演算子の詳細な概要 (コード例)

不言
リリース: 2019-01-25 10:22:09
転載
2620 人が閲覧しました

この記事では、Python のデータ型と演算子の詳細な概要 (コード例) を紹介します。一定の参考値があります。必要な友人は参照できます。お役に立てれば幸いです。

前回の記事では Python の入力、出力、変数について説明しましたが、このセクションでは Python のデータ型とデータ間の計算方法について説明します。

1. Python データ型

前のセクションでは変数について説明しました。実際、変数が指す値には独自のデータ型があります。これらのデータ型は異なるデータを表す場合があります。 Python には主に次のデータ型があります:

Integer (int)

コンピュータでは、整数の桁数には実際には範囲があり、私たちが想像しているように無限ではありません。 、整数の桁数はマシンによって異なる場合があります。例:

32 ビット システム: 整数の桁数は 32 ビットで、アドレス範囲は -2## です。 #31 ~ 231-1、つまり -2147483648 ~ 2147483647

64 ビット システム: 整数の桁数は 64 ビットで、アドレス範囲は: -2

63 ~ 263-1、つまり -9223372036854775808 ~ 9223372036854775807

長整数 (long)

Python では長整数は桁数を指定しません。つまり、長整数は無限に大きくすることができますが、マシン自体の制限により、多くの場合、無限に大きくすることができず、特定の範囲内では機能しません。

浮動小数点型 (float)

上記 2 つのデータ型はすべて整数ですが、実際にはすべてが整数になるわけではなく、小数点も存在するため、浮動小数点型が生まれました。単刀直入に言うと、浮動小数点型は10進数なので科学表記法が使えますコンピュータでは科学表記法の10の倍数はeに置き換えられます例えば5.21x10

5は5.21e9と書きます。 、または 521e7

Complex (複素数)

上記 3 つのデータ型を組み合わせたものは実数です。実際、複素数は科学計算でよく使用されます。Python には、複素数データ型があります。一般的な形式は次のとおりです: x yj、式では、x と y は両方とも実数です。例: 5 6j

ブール値 (True、False)

ブール値は 2 つだけです。 : true と false. Python では、True と False で表されます。最初の文字を大文字にすることに注意してください。Python では大文字と小文字が区別されますので、注意してください。

In [77]: 5==6
Out[77]: False
In [78]: 3>2
Out[78]: True
In [79]: True == True
Out[79]: True
In [80]: True == False
Out[80]: False
ログイン後にコピー

値なし (なし)

ヌル値は 1 つだけです: なし。このヌル値は非常に興味深いです。どれも理解できません。 0 は null 値ではないため、温度が摂氏 0 度であるのと同じように、摂氏 0 度には温度があります ( ̄▽ ̄)"

String (str)

文字列Python で最も一般的に使用されるデータ型は、引用符で囲まれている限り文字列です。Python では一重引用符、二重引用符、三重引用符は区別されません。これらは同じです:

#
In [81]: 'Hello,world!'
Out[81]: 'Hello,world!'
In [82]: "Hello,world!"
Out[82]: 'Hello,world!'
In [83]: '''Hello,world'''
Out[83]: 'Hello,world'
ログイン後にコピー

「こんなにたくさんのものを使って何をしているの?」と尋ねる初心者も必ずいるでしょう。1 つだけを使用できない場合は、何も言わずに静かに微笑むだけです:


In [84]: 'i'm MinuteSheep'
  File "<ipython-input-84-a2a810ee38cb>", line 1
    &#39;i&#39;m MinuteSheep&#39;
       ^
SyntaxError: invalid syntax
ログイン後にコピー

見てください! エラーが報告されています。なぜですか? Python は自動的に最も近いシンボルと一致してそれを閉じるため、上記の状況が発生します。次の変更を加えます:


In [85]: "i&#39;m MinuteSheep"
Out[85]: "i&#39;m MinuteSheep"
ログイン後にコピー

(Mengxin: 悪い老人はとても悪いです ╰(‵□′)╯)

同様に、複数の行に 3 つの引用符が使用されている場合、または次の場合に使用されます。コンテンツの記号がわかりにくい:

In [87]: &#39;&#39;&#39;i&#39;m MinuteSheep,i said:"i&#39;m the best man in the world!"&#39;&#39;&#39;
Out[87]: &#39;i\&#39;m MinuteSheep,i said:"i\&#39;m the best man in the world!"&#39;
In [86]: &#39;&#39;&#39;
    ...: i&#39;m MinuteSheep,
    ...: i said:
    ...: "i&#39;m the best man in the world!"
    ...: &#39;&#39;&#39;
Out[86]: &#39;\ni\&#39;m MinuteSheep,\ni said:\n"i\&#39;m the best man in the world!"\n&#39;
ログイン後にコピー

完璧な解決策、\n とは何か覚えていますか? これは改行を意味します。同様に、私はi\'m になります。これは実際にはエスケープの表示です。エスケープについては後ほど説明します。

また初心者が出てきます。前のセクションで 3 つの引用符があると言いませんでしたか?複数行のコメント? どのようにしてこのセクションになったのでしょうか? 文字列?

これは良い質問です! 私の説明を見てください、写真と真実があります:

直接引用符で囲まれた内容は、三重引用符で囲まれた内容を文字列である変数に代入する限りコメントです。

文字列には多くのメソッドがあります。特別なセクションがあります。文字列のメソッドについては後ほど詳しく説明します

List (リスト)

初心者はリストに慣れていないかもしれませんが、一時的には 1 次元の配列として理解できます。 Python では、文字列に加えて習得する必要があるデータ型です。リストがどのようなものかを見てみましょう:

In [88]: [&#39;MinuteSheep&#39;, &#39;LiMing&#39;, &#39;123&#39;, 123]
Out[88]: [&#39;MinuteSheep&#39;, &#39;LiMing&#39;, &#39;123&#39;, 123]
ログイン後にコピー

ご覧のとおり, 角かっこで囲まれたデータはリストであり、Liu テーブルには他のデータ型も存在できます。上記のリストには、文字列と整数が含まれます。もちろん、リストにはリストを含めることができます。これはリストのネストと呼ばれます。

In [89]: [&#39;MinuteSheep&#39;, [&#39;LiMing&#39;, 123]]
Out[89]: [&#39;MinuteSheep&#39;, [&#39;LiMing&#39;, 123]]
ログイン後にコピー

リストについては他にもたくさんあります。ここでは具体的なメソッドを 1 つずつ紹介しません。後でリスト メソッドについて説明する特別なセクションがあります。

タプル (タプル)

タプルはさらに馴染みのないものかもしれません。実際、タプルは不変のリストです。リストは角括弧で囲まれ、タプルは角括弧で囲まれています。丸括弧のペア。リストは操作 (追加、削除、変更、検索など) できますが、タプルは操作できません。また、タプルも変更できません。タプルがどのようになるかを見てみましょう:

## ###うわー#####

字典(dict)

字典是Python的一种非常强大的数据类型,通过键值对的形式将数据保存下来,提高了数据增、删、改、查的速度,通常作为数据存储的格式,也来看看字典长啥样哇:

In [91]: {&#39;name&#39;: &#39;MinuteSheep&#39;, &#39;gender&#39; : &#39;male&#39;, &#39;age&#39;: 99}
Out[91]: {&#39;age&#39;: 99, &#39;gender&#39;: &#39;male&#39;, &#39;name&#39;: &#39;MinuteSheep&#39;}
ログイン後にコピー

可以看到,字典是用一对花括号括起来的,并且以 'key' : 'value' 的形式存储,同样,字典里面可以包含其他数据类型,上面的字典包括:字符串、整型。当然,字典也可以嵌套:

In [92]: {&#39;name&#39; : &#39;MinuteSheep&#39;, &#39;age&#39;: {&#39;young&#39; : 15, &#39;old&#39; : 99}}
Out[92]: {&#39;age&#39;: {&#39;old&#39;: 99, &#39;young&#39;: 15}, &#39;name&#39;: &#39;MinuteSheep&#39;}
ログイン後にコピー

字典也会有专门的一节去讲解它的方法。

二、Python数据运算

说完了Python的数据类型,就该数据运算了,养兵千日,用在一时嘛

算数运算

加 +

In [93]: 1+2
Out[93]: 3
ログイン後にコピー

减 -

In [95]: 1-2O
ut[95]: -1
ログイン後にコピー

乘 *

In [96]: 1*2
Out[96]: 2
ログイン後にコピー

除 /

In [97]: 5/2Out[97]: 2.5
ログイン後にコピー

取模 % (就是取余数)

In [98]: 5%2
Out[98]: 1
ログイン後にコピー

取整 //

In [99]: 5//2
Out[99]: 2
ログイン後にコピー

幂 **

In [100]: 5**2
Out[100]: 25
ログイン後にコピー

赋值运算

简单赋值 =

In [102]: a=5
In [103]: b=6
In [104]: c=a+b
In [105]: c
Out[105]: 11
ログイン後にコピー

加法赋值 += (b+=a,相当于b=b+a)

In [106]: a=5
In [107]: b=6
In [108]: b+=a
In [109]: b
Out[109]: 11
ログイン後にコピー

减法赋值 -= (b-=a,相当于b=b-a)

In [111]: a=5
In [112]: b=6
In [113]: b-=a
In [114]: b
Out[114]: 1
ログイン後にコピー

乘法赋值 *= (b*=a,相当于b=b*a)

In [115]: a=5
In [116]: b=6
In [117]: b*=a
In [118]: b
Out[118]: 30
ログイン後にコピー

除法赋值 /= (b/=a,相当于b=b/a)

In [119]: a=5
In [120]: b=6
In [121]: b/=a
In [122]: b
Out[122]: 1.2
ログイン後にコピー

取模赋值 %= (b%=a,相当于b=b%a)

In [123]: a=5
In [124]: b=6
In [125]: b%=a
In [126]: b
Out[126]: 1
ログイン後にコピー

取整赋值 //= (b//=a,相当于b=b//a)

In [127]: a=5
In [128]: b=6
In [129]: b//=a
In [130]: b
Out[130]: 1
ログイン後にコピー

幂赋值 **= (b**=a,相当于b=b**a)

In [131]: a=5
In [132]: b=6
In [133]: b**=a
In [134]: b
Out[134]: 7776
ログイン後にコピー

比较运算

测试相等 ==

In [136]: 1==1
Out[136]: True
In [137]: 1==2
Out[137]: False
ログイン後にコピー

不等于 !=

In [144]: 1!=1
Out[144]: False
In [145]: 1!=2
Out[145]: True
ログイン後にコピー

大于 >

In [146]: 1>1
Out[146]: False
In [147]: 2>1
Out[147]: True
ログイン後にコピー

大于等于 >=

In [149]: 1>=1
Out[149]: True
In [150]: 2>=1
Out[150]: True
ログイン後にコピー

小于 <

In [151]: 6<6
Out[151]: False
In [152]: 6<7
Out[152]: True
ログイン後にコピー

小于等于 <=

In [153]: 6<=6
Out[153]: True
In [154]: 6<=7
Out[154]: True
ログイン後にコピー

逻辑运算

布尔'与' and (有假为假,全真为真)

In [156]: True and False
Out[156]: False
In [157]: True and True
Out[157]: True
In [158]: False and False
Out[158]: False
ログイン後にコピー

布尔'或' or (有真为真,全假为假)

In [159]: True or True
Out[159]: True
In [160]: True or False
Out[160]: True
In [161]: False and False
Out[161]: False
ログイン後にコピー

布尔'非' not (取相反)

In [162]: not True
Out[162]: False
In [163]: not False
Out[163]: True
ログイン後にコピー

身份运算

判断两个标识符是否引用自同一个对象 is

In [167]: a=b=3

In [168]: a is b
Out[168]: True

In [169]: a=3

In [170]: b=5

In [171]: a is b
Out[171]: False
ログイン後にコピー

判断两个标识符是否引用自不同对象 is not

In [177]: a=3
In [178]: b=5
In [179]: a is not b
Out[179]: True
ログイン後にコピー

== 与 is 的区别:

看到这里,很多小伙伴已经晕了,== 和 is 好像一样啊,看起来一样,其实是不一样的,来看下面的这段代码:

In [180]: a = 600
In [181]: b = 600
In [182]: a == b
Out[182]: True
In [183]: a is b
Out[183]: False
ログイン後にコピー

其实啊,== 比较的是值,is比较的地址,让我们用 id() 这个函数查看一下变量的地址:

In [184]: id(a)
Out[184]: 2155434581648
In [185]: id(b)
Out[185]: 2155434581904
ログイン後にコピー

可以看到,a和b俩个变量的值虽然相同,但地址却不一样,所以使用 == 和 is 的结果自然就不一样。那我们再来看一段代码:

In [187]: a = 10
In [188]: b = 10
In [189]: a == b
Out[189]: True
In [190]: a is b
Out[190]: True
In [191]: id(a)
Out[191]: 1529742064
In [192]: id(b)
Out[192]: 1529742064
ログイン後にコピー

萌新是不是莫不着头脑了,用600的时候 is 输出False,用10的时候怎么地址一样了啊,(快回头,有鬼~)其实啊,Python有一个叫做小整数对象池的东西,只要是[-5, 256]之间的整数都会使用同一份地址,这下萌新明白了哇。

位运算

重点说明:位运算针对的是二进制数

按位与 &

In [193]: a = 15   # 15 = 0000 1111
In [194]: b = 30   # 30 = 0001 1110
In [195]: c = a&b  # 14 = 0000 1110
In [196]: c
Out[196]: 14
ログイン後にコピー

按位或 |

In [193]: a = 15   # 15 = 0000 1111
In [194]: b = 30   # 30 = 0001 1110
In [197]: c = a|b  # 31 = 0001 1111
In [198]: c
Out[198]: 31
ログイン後にコピー

按位异或 ^

In [193]: a = 15   # 15 = 0000 1111
In [194]: b = 30   # 30 = 0001 1110
In [200]: c = a^b  # 17 = 0001 0001
In [201]: c
Out[201]: 17
ログイン後にコピー

按位取反 ~

In [210]: a = 60   # 60 = 0011 1100
In [211]: c = ~a  # -61 = 1100 0011
In [212]: c
Out[212]: -61
ログイン後にコピー

左移 <<

In [213]: a = 15   # 15 = 0000 1111
In [214]: c = a<<2 # 60 = 0011 1100
In [215]: c
Out[215]: 60#左移后面要加位数
ログイン後にコピー

右移 >>

In [213]: a = 15     # 15 = 0000 1111
In [218]: c = a>>2    # 3 = 0000 0011 
In [219]: c
Out[219]: 3#右移后面要加位数
ログイン後にコピー

Python运算符优先级(从高到底依次排列)

**                 # 指数 (最高优先级)
~ + -              # 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //           # 乘,除,取模和取整除
+ -                # 加法减法
>> <<              # 右移,左移运算符
&                  # 位 &#39;AND&#39;
^ |                # 位运算符
<= < > >=          # 比较运算符
<> == !=           # 等于运算符
= %= /= //= -= += *= **=    # 赋值运算符
is is not          # 身份运算符
in not in          # 成员运算符
not and or         # 逻辑运算符
ログイン後にコピー

以上がPython のデータ型と演算子の詳細な概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート