亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python入門 Python變量和數據類型

系統 1907 0

一、 整數:

? ? Python可以處理任意大小的整數,當然包括負整數

二、 浮點數

? ?? 浮點數也就是小數,之所以稱為浮點數

? ? ? 整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的?。↑c數運算則可能會有四舍五入的誤差。

三: 字符串

? ? 字符串是以 '' "" 括起來的任意文本,比如 'abc' "xyz" 等等。

四: 布爾值

? ? 一個布爾值只有 True False 兩種值

? ? 布爾值可以用 and 、 or not 運算。

五: 空值

? ?? 空值是Python里一個特殊的值,用 None 表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

?

變量:

在Python程序中,變量是用一個變量名表示,變量名必須是 大小寫 英文、數字和_的 組合,且不能用數字開頭

在Python中,等號 = 是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量,例如:

      a = 123    # a是整數
print a
a = 'imooc'   # a變為字符串
print a
    

這種變量本身類型不固定的語言稱之為 動態語言 ,與之對應的是 靜態語言。

靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。例如Java是靜態語言,

?

當我們寫: a = 'ABC' 時,Python解釋器干了兩件事情:

1. 在內存中創建了一個 'ABC' 的字符串;

2. 在內存中創建了一個名為 a 的變量,并把它指向 'ABC' 。

?

也可以把一個變量a賦值給另一個變量b,這個操作實際上是把變量b指向變量a所指向的數據,例如下面的代碼:

      a = 'ABC'
b = a
a = 'XYZ'
print b
    

最后一行打印出變量b的內容到底是'ABC'呢還是'XYZ'?如果從數學意義上理解,就會錯誤地得出b和a相同,也應該是'XYZ',但實際上b的值是'ABC',讓我們一行一行地執行代碼,就可以看到到底發生了什么事:

執行 a = 'ABC' ,解釋器創建了字符串 ?'ABC'和變量 a,并把a指向 'ABC':

執行 b = a ,解釋器創建了變量 b,并把b指向 a 指向的字符串'ABC':

執行 a = 'XYZ' ,解釋器創建了字符串'XYZ',并把a的指向改為'XYZ',但b并沒有更改:

所以,最后打印變量 b 的結果自然是 'ABC' 了。

?

,Python字符串用 \ 進行轉義。

      \n 表示換行
\t 表示一個制表符
\\ 表示 \ 字符本身
    

?

如果一個字符串包含很多需要轉義的字符,對每一個字符都進行轉義會很麻煩。為了避免這種情況,我們可以在字符串前面加個前綴 ?r? ,表示這是一個?raw?字符串,里面的字符就不需要轉義了。例如:

        r'\(~_~)/ \(~_~)/'
      

但是 r'...' 表示法不能表示多行字符串,也不能表示包含 ' 和? " 的字符串(為什么?)

如果要表示多行字符串,可以用 '''...''' 表示:

        '''Line 1
Line 2
Line 3'''
      

上面這個字符串的表示方法和下面的是完全一樣的:

'Line 1\nLine 2\nLine 3'

還可以在多行字符串前面添加 ?r? ,把這個多行字符串也變成一個 raw字符串

        r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc!'''
      
?

?

因為Python的誕生比Unicode標準發布的時間還要早,所以最早的Python只支持ASCII編碼,普通的字符串 'ABC' 在Python內部都是 ASCII編碼 的。

Python在后來添加了對Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

      print u'中文'
中文
    

注意: ? 不加 u ,中文就不能正常顯示。

?

轉義:

      u'中文\n日文\n韓文'
    

多行:

      u'''第一行
第二行'''
    

raw+多行:

      ur'''Python的Unicode字符串支持"中文",
"日文",
"韓文"等多種語言'''
    

如果中文字符串在Python環境下遇到 UnicodeDecodeError,這是因為.py文件保存的格式有問題。可以在第一行添加注釋

      
        # -*- coding: utf-8 -*-
      
    

目的是告訴Python解釋器,用UTF-8編碼讀取源代碼。然后用Notepad++ 另存為... 并選擇UTF-8格式保存。

?

Python的 整數運算結果仍然是整數,浮點數運算結果仍然是浮點數

      1 + 2    # ==> 整數 3
1.0 + 2.0    # ==> 浮點數 3.0
    

但是 整數和浮點數混合運算的結果就變成浮點數了:

      1 + 2.0    # ==> 浮點數 3.0
    

?

為什么要區分整數運算和浮點數運算呢 ?這是因 為整數運算的結果永遠是精確的, 而浮 點數運算的結果不一定精確 ,因為計算機內存再大,也無法精確表示出無限循環小數,比如 ?0.1 換成二進制表示就是無限循環小數。

?

Python的除法運算和java一樣。/ 是整除。%是取余。

?

在Python中,布爾類型還可以與其他數據類型做 and、or和not運算,請看下面的代碼:

      a = True
print a and 'a=T' or 'a=F'
    

計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?

因為Python把 0 、 空字符串'' None 看成? False 其他數值 非空字符串 都看成 ?True ,所以:

      True and 'a=T' 計算結果是 'a=T'
繼續計算 'a=T' or 'a=F' 計算結果還是 'a=T'
    

要解釋上述結果,又涉及到 and 和 or 運算的一條重要法則: 短路計算 。

?

1.?在計算 ?a and b? 時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。

2. 在計算 ?a or b? 時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。

?

  

Python入門 Python變量和數據類型


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠综合久久久久综 | 久久精品国产丝袜 | 亚洲欧洲日韩国产一区二区三区 | 国内精品免费久久影院 | 天天爱天天射 | 中文字幕免费视频 | 国产香蕉久久精品综合网 | 99热成人精品热久久669 | 天天干天天曰天天操 | 一级黄色录像毛片 | 国产精品视频公开费视频 | 日韩欧美在线不卡 | 成人毛片免费看 | 天天干天天爽天天射 | 欧美日韩亚洲综合久久久 | 久久精品国产精品亚洲 | 国产在线观看一区二区三区四区 | 亚洲无成人网77777 | 久久精品一区二区影院 | 99精品在线 | 夜夜嗷| 国内精品久久久久久久星辰影视 | 日日操夜夜摸 | 无遮挡无遮挡91桃色在线观看 | 国产一区二区三区亚洲欧美 | 好吊妞乱淫欧美 | 国产精品福利视频主播真会玩 | 思思久久99热这里只有精品66 | 国产成视频| 欧美人与zoxxxx另类9 | 久久久精品波多野结衣 | 亚洲伊人久久综合一区二区 | 国内精品久久久久久久久久影视 | 国产青青久久 | 免费视频一区 | 亚洲图片国产日韩欧美 | 五月开心婷婷 | 狠狠的操你 | 亚洲成人日韩 | 欧美黄网站 | 国产精品人成在线播放新网站 |