5000字2021最新Python基礎知識第一階段:數據類型

1 編程規範

注釋

python注釋也有自己的規範,在文章中會介紹到。注釋可以起到一個備註的作用,團隊合作的時候,個人編寫的代碼經常會被多人調用,為了讓別人能更容易理解代碼的通途,使用注釋是非常有效的。

在說規範之前我們有必要先看以下Python的注釋有哪些 ?

  • 單行注釋

  • 多行注釋

單行注釋

以 # 開頭, # 右邊的所有東西都被當做說明文字,而不是真正要執行的程序,只起到輔助說明作用

示例代碼如下:

# 這是第一個單行注釋 
print("hello python")

 

為了保證代碼的可讀性, # 後面建議先添加一個空格,然後再編寫相應的說明文字

多行注釋(塊注釋)

如果注釋信息很多,一行無法顯示,就可以使用多行注釋

要在 Python 程序中使用多行注釋,可以用一對連續的 三個 引號(單引號和雙引號都可以)

示例代碼如下:

""" 
這是一個多行注釋 
在多行注釋之間,可以寫很多很多的內容……
""" 
print("hello python")

 

注釋不是越多越好,對於一目了然的代碼,不需要添加註釋

標識符命名規則

開發人員在程序中自定義的一些符號和名稱。標識符是自己定義的, 如變量名 、函數名等

標識符由字母、下劃線和數字組成,且數字不能開頭

python中的標識符是區分大小寫的

命名規則

1)、下滑線命名法

用下劃線「_」來連接所有的單詞,比如 hello_world

  1. 見名知意
  2. 起一個有意義的名字,盡量做到看一眼就知道是什麼意思(提高代碼可讀性) 比如: 名字 就定義為
    name , 定義學生 用 student

2)、駝峰命名法

大駝峰式命名法(upper camel case):

  • 每一個單字的首字母都採用大寫字母,
    例如:FirstName、HelloWorld

小駝峰式命名法(lower camel case):

  • 第一個單詞以小寫字母開始;

  • 第二個單詞的首字母大寫,
    例如:helloWorld、firstName

 

 

注意

所有的變量名、函數名 都是用下劃線命名法

類名使用大駝峰命名法

python命名規則
  • python中的標識符是區分大小寫的

 

 

  • 變量、函數名全部用小寫與下劃線
  • 常量(配置文件變量、不修改的變量)全部用大寫
  • 類名用大駝峰命名法

案例: 命名規範查看

# 類名用大駝峰 類與其他內容用兩個換行隔開 
class Student(object): 
    
    # 變量名之間用空格隔開 
    def __init__(self, hello): 
        self.hello = hello 

    # 函數與函數之間加換行 
    def print_hello_world(self):
        """ 
        函數名用下劃線命名法 盡量滿足見名知意 
        """ 
        print(f"hello.jpg {self.hello} !") 
    
    def PrintHelloWorld(self): 
        """
        大駝峰命名法提示有問題
        """ 
        print(f"hello.jpg {self.hello} !") 
    
    def printHelloWorld(self): 
        """
        小駝峰命名法提示有問題
        """ 
        print(f"hello.jpg {self.hello} !") 
    
    def printhelloworld(self): 
        """
        直接寫很難讀懂
        """ 
        print(f"hello.jpg {self.hello} !") 
    
    def PRINTHELLOWORLD(self): 
        """
        直接寫很難讀懂
        """ 
        print(f"hello.jpg {self.hello} !") 
    
"""團隊規範""" 
# 變量名使用下劃線命名法 
# 盡量滿足見名知意 
# 對象也是變量 
student = Student("world") 
student.print_hello_world()

 

關於代碼規範

任何語言的程序員,編寫出符合規範的代碼,是開始程序生涯的第一步

編程習慣的重要性
  1. 可以方便排查錯誤
  2. 方便自己看的代碼
  3. 便於別人看懂你的代碼(團隊協作)

良好的編程習慣的養成不能靠說,要靠多練,要在大量的編程中將其融入骨髓中。

一套系統應該具有統一的編程風格,任何編程風格都不可能是完美,應該從可維護性、可讀性方面繼續保持一種編程風格,而不要將多種編程風格混合在一套系統中,對於新手,難以理解如此多種風格的編
碼。

ctrl + alt + l 快速格式化代碼

輸入輸出與變量

輸出

print() 方法用於打印輸出,最常見的一個函數。

以下是 print() 方法的語法:

print(*objects, sep=' ', end='\n', file=sys.stdout)

 

參數

  • objects — 複數,表示可以一次輸出多個對象。輸出多個對象時,用分隔符分割。
  • sep — 用來間隔多個對象,默認值是一個空格。
  • end — 用來設定以什麼結尾。默認值是換行符 \n,我們可以換成其他字符串。
  • file — 要寫入的文件對象。

輸入
input() 函數接受一個標準輸入數據,返回為 string 類型

>>>a = input("input:") 
input:123       # 輸入整數 
>>> type(a) 
<class 'str'>     # 字符串

 

變量

程序就是用來處理數據的,而變量就是用來存儲數據的

  • 在 Python 中,每個變量在使用前都必須賦值,變量賦值以後該變量才會被創建
  • 等號(=)用來給變量賦值
    = 左邊是一個變量名
    = 右邊是存儲在變量中的值
  • 直接使用之前已經定義的變量
  • 變量名只有在 第一次出現 才是 定義變量
  • 變量名再次出現,不是定義變量,而是直接使用之前定義過的變量
  • 在程序開發中,可以修改之前定義變量中保存的值嗎?
    可以
    變量中存儲的值,就是可以 變 的
變量名 = 值

變量定義之後,後續就可以直接使用了

2 數值類型

int(整形)

在 Python 中定義變量是 不需要指定類型(在其他很多高級語言中都需要)

整形,也被稱之為整數。整數就是數學中的數字。

整形在Python中不受長度限制大小範圍

使用 type 函數可以查看一個變量的類型

In [1]: 1 
Out[1]: 1 

In [2]: type(1) 
Out[2]: int

 

浮點型(float)

小數類型

小數

In [1]: 1 
Out[1]: 1 

In [2]: type(1.0) 
Out[2]: float

 

運算、運算符優先級與整形是一樣。

類型轉化

浮點數轉化為整形(顯示轉化)

In [3]: int(1.0)
Out[3]: 1 

In [4]: float(1) 
Out[4]: 1.0

 

隱式轉化,系統背後默認進行轉換

In [5]: 1/2 
Out[5]: 0.5

 

1.3 字符串

字符串是一種不可變的序列類型

字符串創建

字符串是 Python 中最常用的數據類型。我們可以使用引號( ‘ 或 ” )來創建字符串。

創建字符串很簡單,只要為變量分配一個值即可。

單引號和雙引號

在 Python 中我們都知道單引號和雙引號都可以用來表示一個字符串,比如

print("What's your name?") 
結果: 
"What's your name?" 

print('"python"是一門優秀的語言') 
結果:
"python"是一門優秀的語言 

 



一個單引號並不是單引號,它是字符串創建的格式

總體來說沒有任何區別,只在單引號當普通字符時容易區分:如 var = “let’s go”

三引號創建塊字符串 長字符串
# 三引號實現塊注釋
""" 
文檔注釋 
三引號實現塊注釋 
""" 

 

字符串格式化

把不是字符類型的 轉變成字符串

在 Python 中可以使用 print 函數將信息輸出到控制台

如果希望輸出文字信息的同時,一起輸出 數據,就需要使用到 格式化操作符

format

此函數可以快速的處理各種字符串,增強了字符串格式化的功能。基本語法是使用{}和:來替代%。format函數可以接受不限各參數,位置可以不按照順序

name = '張三' 
age = 18 
nickname = '法外狂徒' 

# format 用 {} 佔位 
print('姓名:{},年齡{},外號:{} '.format(name, age, nickname)) 
print('hello {} 你今年已經{}歲了'.format(name, age))

# 保留小數點後兩位 
In [1]: '{:.2f}'.format(12.333) 
Out[1]: '12.33' 

In [2]: '{a:.2f}'.format(a=12.333) 
Out[2]: '12.33' 

In [3]: '{a:6.2f}'.format(a=12.333) 
Out[3]: ' 12.33'

 

%s

% 被稱為 格式化操作符,專門用於處理字符串中的格式

  • 包含 % 的字符串,被稱為 格式化字符串
  • % 和不同的 字符 連用,不同類型的數據 需要使用 不同的格式化字符

 

 

語法格式如下:

print("格式化字符串 %s" % 變量1) 
print("格式化字符串" % (變量1, 變量2...))
name = '張三' 
age = 18 nickname = '法外狂徒' 

name2 = '李四' 
age2 = 19 
nickname2 = '幫凶' 

# %s 用 %s 佔位 
print('姓名:%s' % name) 
# 多個參數
print('%s,%s 哦嗨呦' % (name, name2))

 

 

 

f

f』{}’形式,並不是真正的字符串常量,而是一個運算求值表達式,可以很方便的用於字符串拼接、路徑拼接等

name = '張三' 

# f 在字符串中嵌入變量 
print(f'hello {name} !')

 

案例:貓眼top100網址

貓眼top100的網址有以下特點:

第一頁:https://maoyan.com/board/4?offset=0 
第二頁:https://maoyan.com/board/4?offset=10 
第三頁:https://maoyan.com/board/4?offset=20 
.... 
第十頁:https://maoyan.com/board/4?offset=90

請分別使用三種字符串構建的方法創建所有的請求地址

4 字符串常用方法

字符串是不可變數據類型,所有的操作都是返回新的一個列表,不會修改原有列表

字符串 能夠使用的 方法 如下:

 

 

提示:正是因為 python 內置提供的方法足夠多,才使得在開發時,能夠針對字符串進行更加靈活的操作!應對更多的開發需求!

查找和替換

 

 

提問:如何改變字符串

將下面的字符串中 world 改成 Python

hello = "hello world !" 
print(hello.replace('world', 'Python')) 
print(hello)

 

字符串是一種不可變的數據類型。所有操作字符的方法都是返回一個新的字符串。可以用返回的新的字符串覆蓋掉之前的字符串。

轉義字符

在需要在字符中使用特殊字符時,python 用反斜杠轉義字符。如下表:

 

 

原始字符串

由於字符串中的反斜線都有特殊的作用,因此當字符串中包含反斜線時,就需要使用轉義字符 \ 對字符串中包含的每個 ” 進行轉義。

比如說,我們要寫一個關於 Windows 路徑 G:\publish\codes\02\2.4 這樣的字符串,如果在 Python 程序中直接這樣寫肯定是不行的,需要使用 \ 轉義字符,對字符串中每個 ” 進行轉義,即寫成G:\publish\codes\02\2.4 這種形式才行。

有沒有覺得這種寫法很啰嗦,有沒有更好的解決辦法呢?答案是肯定的,藉助於原始字符串可以很好地解決這個問題。

原始字符串以「r」開頭,它不會把反斜線當成特殊字符。因此,上面的 Windows 路徑可直接寫成如下這 種形式:

# 原始字符串包含的引號,同樣需要轉義 
s2 = r'"Let\'s go", said Charlie' 
print(s2)

 

5 布爾類型(bool)

python 中布爾值使用常量 True 和 False來表示;注意大小寫

bool 是 int 的子類(繼承 int ),故 True == 1 False == 0 是會返回 Ture

bool 類型只有兩種狀態真或假

In [17]: bool(-1) 
Out[17]: True 

In [18]: bool(0) 
Out[18]: False 

In [19]: bool(None) 
Out[19]: False 

In [20]: bool("") 
Out[20]: False 

In [21]: bool(" ") 
Out[21]: True 

In [22]: def a(): 
    ...: pass 
    ...: 
    ...: bool(a) 
Out[22]: True

 

總結

True 對 False 錯

布爾類型只有兩種狀態, True or Flase 。數字除了零之外,其餘均為 True ,字符串除了空字符串之外都為 True ,對象除了空對象之外,其餘均為 True 。

默認情況下,所有類型都可以轉化為布爾類型

6 運算符

算數運算符

因為是整數,所以也可以進行數學中的基本運算。

  • 算數運算符是 運算符的一種
  • 是完成基本的算術運算使用的符號,用來處理四則運算

 

 

# 取余 
In [16]: 9 % 4 
Out[16]: 1 

In [17]: 9 % 3 
Out[17]: 0 

In [18]: 2 ** 3 
Out[18]: 8

 

除此之外,「+」還可以作為字符串(包括後續要介紹的序列)的連接運算符。

s1 = 'Hello, ' 
s2 = 'Charlie' 
# 使用+連接兩個字符串 
print(s1 + s2)

 

算數運算符的優先級

和數學中的運算符的優先級一致,在 Python 中進行數學計算時,同樣也是:

  • 先乘除後加減
  • 同級運算符是 從左至右 計算
  • 可以使用 () 調整計算的優先級

以下表格的算數優先級由高到最低順序排列

 

 

例如:

  • 2 + 3 * 5 = 17
  • (2 + 3) * 5 = 25
  • 2 * 3 + 5 = 11
  • 2 * (3 + 5) = 16

賦值運算符

以下假設變量a為10,變量b為20:

 

 

 

比較運算符

 

 

邏輯運算符

Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:

 

 

 

邏輯運算符案例:
x = 1 
y = 0 

print(x and y) 
print(x or y) 
print(not x) 
print(not y) 

# 案例升級 
x = 3 > 4 
y = 5 > 4

 

運算符優先級

以下表格列出了從最高到最低優先級的所有運算符: