歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python 入門學習之數據類型、字符串、運算符

最近開始學Python,這是一個很強大和便捷的編程語言,日後進行科學計算和科研的時候必然成為主要的編程語言。

本來買了一本Python基礎教程(第2版),然而教學順序不太喜歡,因為一開始並沒有講清楚語法,不能學了立馬用到實驗中。並且,這本書針對的是沒有編程基礎的人,講的比較淺。

Python基礎教程(第2版)高清晰PDF+源代碼  下載  http://www.linuxidc.com/Linux/2016-08/134336.htm

在這裡把python中特有的,以及和C不同的地方記下來。

  • 數據類型
    • 強制類型轉換
  • 字符串
    • 轉義字符
    • 自然字符串
    • Unicode字符串
    • 字符串是不可變的
  • 標識符變量的命名
  • 縮進
  • 運算符
  • 運算優先級

1.數據類型

在python中,有4種數據類型——整數(int)、長整數(long)、浮點數(float)和復數(complex)。

  • 2是一個整數的例子。
  • 長整數不過是大一些的整數。長整型通常在數字後面加L表示,如1000000L。
  • 3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裡,52.3E-4表示52.3 * 10-4。
  • (-5+4j)和(2.3-4.6j)是復數的例子。

    這裡居然有復數,果然比C要方便計算,在C中通常需要自己定義復數類型。

強制類型轉換

上面的4中數據類型可以互相轉換,還可以轉換為字符串類型(str)如:

>>> a=12343434
>>> long(a)
12343434L
>>> str(a)
'12343434'
>>> float(a)
12343434.0
complex(a)
(12343434+0j)

2.字符串

可以用單引號和雙引號來表示中間為字符串,兩者並沒有什麼差別。當字符串裡有引號或者多行時,可以用三引號括起來(”’或者”“”)表示。

在C++中,使用單引號表示char,用雙引號表示String。

轉義字符

在字符中,若要表示斜槓\,需要使用\,其他特殊符號也是,例如用\’ 表示引號(若沒有使用三引號)。程序中可以使用 \ 表示兩行是連在一起的,例如

 s = 'This is a string. \
This continues the string.'
print s 

輸出:

This is a string. This continues the string. 

自然字符串

如果你想要指示某些不需要如轉義符那樣的特別處理的字符串,那麼你需要指定一個自然字符串。自然字符串通過給字符串加上前綴r或R來指定。例如r”Newlines are indicated by \n”。

Unicode字符串

Unicode是書寫國際文本的標准方法。如果你想要用中文或者其他非英文文本,那麼你需要有一個支持Unicode的編輯器。類似地,Python允許你處理Unicode文本——你只需要在字符串前加上前綴u或U。例如,u”This is a Unicode string.”。

記住,在你處理文本文件的時候使用Unicode字符串,特別是當你知道這個文件含有用非英語的語言寫的文本。

字符串是不可變的

這意味著一旦你創造了一個字符串,你就不能再改變它了。雖然這看起來像是一件壞事,但實際上它不是。若要對一個字符進行修改,其實也可以用原來的名字進行賦值,例如:

>>> s='abc'
>>> s=s[:2]
>>> print s
ab

3.標識符(變量的命名)

  • 標識符的第一個字符必須是字母表中的字母(大寫或小寫)或者一個下劃線(‘ _ ’)。

  • 標識符名稱的其他部分可以由字母(大寫或小寫)、下劃線(‘ _ ’)或數字(0-9)組成。

  • 無效 標識符名稱的例子有2things、this is spaced out和my-name。

    使用變量時只需要給它們賦一個值。不需要聲明或定義數據類型。

4.縮進

空白在Python中是重要的。事實上行首的空白是重要的。它稱為縮進。在邏輯行首的空白(空格和制表符)用來決定邏輯行的縮進層次,從而用來決定語句的分組。

這意味著同一層次的語句必須有相同的縮進。每一組這樣的語句稱為一個塊。

不要混用空格和tab,要是用tab就全部用tab,若用4個空格或2個空格則一直用空格。一個tab和4個空格是不一樣的,即使看起來位置一樣!

5.運算符

我把值得注意的,和C不一樣的列出來:

運算符名稱說明例子 ** 冪 返回x的y次冪 3 ** 4得到81(即3 * 3 * 3 * 3) // 取整除 返回商的整數部分 4 // 3.0得到1.0 ^ 按位異或 數的按位異或 5 ^ 3得到6 ~ 按位翻轉 x的按位翻轉是-(x+1) ~5得到6。 <= 小於等於 返回x是否小於等於y x = 3; y = 6; x <= y返回True。 >= 大於等於 返回x是否大於等於y x = 4; y = 3; x >= y返回True。 not 布爾“非” 如果x為True,返回False。如果x為False,它返回True。 x = True; not y返回False。 and 布爾“與” 如果x為False,x and y返回False,否則它返回y的計算值。 x = False; y = True; x and y,由於x是False,返回False。在這裡,Python不會計算y,因為它知道這個表達式的值肯定是False(因為x是False)。這個現象稱為短路計算。 or 布爾“或” 如果x是True,它返回True,否則它返回y的計算值。 x = True; y = False; x or y返回True。短路計算在這裡也適用。

6.運算優先級

下面這個表給出Python的運算符優先級,從最低的優先級(最松散地結合)到最高的優先級(最緊密地結合)。這意味著在一個表達式中,Python會首先計算表中較下面的運算符,然後在計算列在表上部的運算符

運算符描述 lambda Lambda表達式 or 布爾“或” and 布爾“與” not x 布爾“非” in,not in 成員測試 is,is not 同一性測試 <,<=,>,>=,!=,== 比較 | 按位或 ^ 按位異或 & 按位與 <<,>> 移位 +,- 加法與減法 *,/,% 乘法、除法與取余 +x,-x 正負號 ~x 按位翻轉 ** 指數 x.attribute 屬性參考 x[index] 下標 x[index:index] 尋址段 f(arguments…) 函數調用 (experession,…) 綁定或元組顯示 [expression,…] 列表顯示 {key:datum,…} 字典顯示 ‘expression,…’ 字符串轉換

運算符通常由左向右結合,即具有相同優先級的運算符按照從左向右的順序計算。如果我們想要改變它們的計算順序,得使用圓括號。

Copyright © Linux教程網 All Rights Reserved