python基礎總結

python3新手中的常見錯誤

  • 1> 手誤,例如使用 pirnt("Hello world")
NameError: name 'pirnt' is not defined

名稱錯誤:'pirnt' 名字沒有定義
  • 2> 將多條 print 寫在一行
SyntaxError: invalid syntax

語法錯誤:語法無效

每行代碼負責完成一個動作

  • 3> 縮進錯誤
IndentationError: unexpected indent

縮進錯誤:不期望出現的縮進
  • Python 是一個格式非常嚴格的程序設計語言
  • 目前而言,大家記住每行代碼前面都不要增加空格

注釋

單行注釋(行注釋)

  • # 開頭,# 右邊的所有東西都被當做說明文字,而不是真正要執行的程序,只起到輔助說明作用
  • 示例代碼如下:
# 這是第一個單行注釋
print("hello python")

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

在代碼后面增加的單行注釋

  • 在程序開發時,同樣可以使用 # 在代碼的后面(旁邊)增加說明性的文字
  • 但是,需要注意的是,為了保證代碼的可讀性,注釋和代碼之間 至少要有 兩個空格
  • 示例代碼如下:
print("hello python")  # 輸出 `hello python`

多行注釋(塊注釋)

  • 如果希望編寫的 注釋信息很多,一行無法顯示,就可以使用多行注釋
  • 要在 Python 程序中使用多行注釋,可以用 一對 連續的 三個 引號(單引號和雙引號都可以)
  • 示例代碼如下:
"""
這是一個多行注釋

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

什么時候需要使用注釋?

  1. 注釋不是越多越好,對于一目了然的代碼,不需要添加注釋
  2. 對于 復雜的操作,應該在操作開始前寫上若干行注釋
  3. 對于 不是一目了然的代碼,應在其行尾添加注釋(為了提高可讀性,注釋應該至少離開代碼 2 個空格)
  4. 絕不要描述代碼,假設閱讀代碼的人比你更懂 Python,他只是不知道你的代碼要做什么

變量的類型

  • Python 中定義變量是 不需要指定類型(在其他很多高級語言中都需要)
  • 數據類型可以分為 數字型非數字型

  • 數字型

    • 整型 (int)
    • 浮點型(float
    • 布爾型(bool
      • True 非 0 數 —— 非零即真
      • False 0
    • 復數型 (complex)
      • 主要用于科學計算,例如:平面場問題、波動問題、電感電容等問題
  • 非數字型

    • 字符串
    • 列表
    • 元組
    • 字典
  • 使用 type 函數可以查看一個變量的類型

In [1]: type(name)

不同類型變量之間的計算

1) 數字型變量 之間可以直接計算

  • 在 Python 中,兩個數字型變量是可以直接進行 算數運算的
  • 如果變量是 bool 型,在計算時

    • True 對應的數字是 1

    • False 對應的數字是 0

演練步驟

  1. 定義整數 i = 10
  2. 定義浮點數 f = 10.5
  3. 定義布爾型 b = True
  • 在 iPython 中,使用上述三個變量相互進行算術運算

2) 字符串變量 之間使用 + 拼接字符串

  • 在 Python 中,字符串之間可以使用 + 拼接生成新的字符串
In [1]: first_name = "三"

In [2]: last_name = "張"

In [3]: first_name + last_name
Out[3]: '三張'

3) 字符串變量 可以和 整數 使用 * 重復拼接相同的字符串

In [1]: "-" * 50
Out[1]: '--------------------------------------------------'

4) 數字型變量 和 字符串 之間 不能進行其他計算

In [1]: first_name = "zhang"

In [2]: x = 10

In [3]: x + first_name
---------------------------------------------------------------------------
TypeError: unsupported operand type(s) for +: 'int' and 'str'
類型錯誤:`+` 不支持的操作類型:`int` 和 `str`

字符串中的轉義字符

  • \t 在控制臺輸出一個 制表符,協助在輸出文本時 垂直方向 保持對齊
  • \n 在控制臺輸出一個 換行符

制表符 的功能是在不使用表格的情況下在 垂直方向 按列對齊文本

轉義字符 描述
\\ 反斜杠符號
\' 單引號
\" 雙引號
\n 換行
\t 橫向制表符
\r 回車

變量的輸入與輸出

函數 說明
print(x) 將 x 輸出到控制臺
type(x) 查看 x 的變量類型

1) input 函數實現鍵盤輸入

  • 在 Python 中可以使用 input 函數從鍵盤等待用戶的輸入
  • 用戶輸入的 任何內容 Python 都認為是一個 字符串
  • 語法如下:
字符串變量 = input("提示信息:")

2) 類型轉換函數

函數 說明
int(x) 將 x 轉換為一個整數
float(x) 將 x 轉換到一個浮點數

3) 變量的格式化輸出

  • 如果希望輸出文字信息的同時,一起輸出 數據,就需要使用到 格式化操作符
  • % 被稱為 格式化操作符,專門用于處理字符串中的格式
    • 包含 % 的字符串,被稱為 格式化字符串
    • % 和不同的 字符 連用,不同類型的數據 需要使用 不同的格式化字符
格式化字符 含義
%s 字符串
%d 有符號十進制整數,%06d 表示輸出的整數顯示位數,不足的地方使用 0 補全
%f 浮點數,%.2f 表示小數點后只顯示兩位
%% 輸出 %
  • 語法格式如下:
print("格式化字符串" % 變量1)

print("格式化字符串" % (變量1, 變量2...))

例1

  1. 定義字符串變量 name,輸出 我的名字叫 小明,請多多關照!
  2. 定義整數變量 student_no,輸出 我的學號是 000001
  3. 定義小數 priceweight、money,輸出 蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元
  4. 定義一個小數 scale,輸出 數據比例是 10.00%
print("我的名字叫 %s,請多多關照!" % name)
print("我的學號是 %06d" % student_no)
print("蘋果單價 %.02f 元/斤,購買 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("數據比例是 %.02f%%" % (scale * 100))

標識符與關鍵字

標識符

標示符就是程序員定義的 變量名、函數名

  • 標示符可以由 字母、下劃線數字 組成
  • 不能以數字開頭
  • 不能與關鍵字重名

關鍵字

  • 關鍵字 就是在 Python 內部已經使用的標識符
  • 關鍵字 具有特殊的功能和含義
  • 開發者 不允許定義和關鍵字相同的名字的標示符

通過以下命令可以查看 Python 中的關鍵字

In [1]: import keyword
In [2]: print(keyword.kwlist)

變量命名規則

命名規則 可以被視為一種 慣例,并無絕對與強制

目的是為了 增加代碼的識別和可讀性

注意 Python 中的 標識符區分大小寫的

  1. 在定義變量時,為了保證代碼格式,= 的左右應該各保留一個空格

  2. Python 中,如果 變量名 需要由 二個多個單詞 組成時,可以按照以下方式命名

    1. 每個單詞都使用小寫字母
    2. 單詞與單詞之間使用 _下劃線 連接
    • 例如:first_name、last_name、qq_number、qq_password

駝峰命名法

  • 變量名 是由二個或多個單詞組成時,還可以利用駝峰命名法來命名
  • 小駝峰式命名法
    • 第一個單詞以小寫字母開始,后續單詞的首字母大寫
    • 例如:firstName、lastName
  • 大駝峰式命名法
    • 每一個單詞的首字母都采用大寫字母
    • 例如:FirstName、LastName、CamelCase

運算符

數學符號表鏈接:https://zh.wikipedia.org/wiki/數學符號表

01. 算數運算符

  • 是完成基本的算術運算使用的符號,用來處理四則運算
運算符 描述 實例
+ 10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
// 取整除 返回除法的整數部分(商) 9 // 2 輸出結果 4
% 取余數 返回除法的余數 9 % 2 = 1
** 又稱次方、乘方,2 ** 3 = 8
  • 在 Python 中 * 運算符還可以用于字符串,計算結果就是字符串重復指定次數的結果
In [1]: "-" * 50
Out[1]: '----------------------------------------' 

02. 比較(關系)運算符

運算符 描述
== 檢查兩個操作數的值是否 相等,如果是,則條件成立,返回 True
!= 檢查兩個操作數的值是否 不相等,如果是,則條件成立,返回 True
> 檢查左操作數的值是否 大于 右操作數的值,如果是,則條件成立,返回 True
< 檢查左操作數的值是否 小于 右操作數的值,如果是,則條件成立,返回 True
>= 檢查左操作數的值是否 大于或等于 右操作數的值,如果是,則條件成立,返回 True
<= 檢查左操作數的值是否 小于或等于 右操作數的值,如果是,則條件成立,返回 True

03. 邏輯運算符

運算符 邏輯表達式 描述
and x and y 只有 x 和 y 的值都為 True,才會返回 True<br />否則只要 x 或者 y 有一個值為 False,就返回 False
or x or y 只要 x 或者 y 有一個值為 True,就返回 True<br />只有 x 和 y 的值都為 False,才會返回 False
not not x 如果 x 為 True,返回 False<br />如果 x 為 False,返回 True

04. 賦值運算符

  • 在 Python 中,使用 = 可以給變量賦值
  • 在算術運算時,為了簡化代碼的編寫,Python 還提供了一系列的 與 算術運算符 對應的 賦值運算符
  • 注意:賦值運算符中間不能使用空格
運算符 描述 實例
= 簡單的賦值運算符 c = a + b 將 a + b 的運算結果賦值為 c
+= 加法賦值運算符 c += a 等效于 c = c + a
-= 減法賦值運算符 c -= a 等效于 c = c - a
*= 乘法賦值運算符 c *= a 等效于 c = c * a
/= 除法賦值運算符 c /= a 等效于 c = c / a
//= 取整除賦值運算符 c //= a 等效于 c = c // a
%= (余數)賦值運算符 c %= a 等效于 c = c % a
**= 冪賦值運算符 c **= a 等效于 c = c ** a

05. 運算符的優先級

  • 以下表格的算數優先級由高到最低順序排列
運算符 描述
** 冪 (最高優先級)
* / % // 乘、除、取余數、取整除
+ - 加法、減法
<= < > >= 比較運算符
== != 等于運算符
= %= /= //= -= += *= **= 賦值運算符
not or and 邏輯運算符

分支語句

if 分支語句基本語法

  • 在開發中,使用 if 可以 判斷條件
  • 使用 else 可以處理 條件不成立 的情況
  • 但是,如果希望 再增加一些條件,條件不同,需要執行的代碼也不同 時,就可以使用 elif

格式如下:

if 條件1:
    條件1滿足執行的代碼
    ……
elif 條件2:
    條件2滿足時,執行的代碼
    ……
elif 條件3:
    條件3滿足時,執行的代碼
    ……
else:
    以上條件都不滿足時,執行的代碼
    ……

注意:代碼的縮進為一個 tab 鍵,或者 4 個空格 —— 建議使用空格

  • 在 Python 開發中,Tab 和空格不要混用!

邏輯運算

  • 在程序開發中,通常 在判斷條件時,會需要同時判斷多個條件
  • 只有多個條件都滿足,才能夠執行后續代碼,這個時候需要使用到 邏輯運算符
  • 邏輯運算符 可以把 多個條件 按照 邏輯 進行 連接,變成 更復雜的條件
  • Python 中的 邏輯運算符 包括:與 and或 or非 not 三種

例2 : 剪刀石頭布

import random

# 從控制臺輸入—— 石頭(1)/剪刀(2)/布(3)
player = int(input("請出拳 石頭(1)/剪刀(2)/布(3):"))

# 電腦 隨機出拳 
computer = random.randint(1, 3)

# 比較勝負
# 如果條件判斷的內容太長,可以在最外側的條件增加一對大括號
# 再在每一個條件之間,使用回車,PyCharm 可以自動增加 8 個空格
if ((player == 1 and computer == 2) or
        (player == 2 and computer == 3) or
        (player == 3 and computer == 1)):

    print("你贏了?。?!")
elif player == computer:
    print("平局,再來一盤!")
else:
    print("你輸了!")

循環語句

循環的作用: 讓 指定的代碼 重復的執行

while 語句基本語法

初始條件設置 —— 通常是重復執行的 計數器

while 條件(判斷 計數器 是否達到 目標次數):
    條件滿足時,做的事情1
    條件滿足時,做的事情2
    條件滿足時,做的事情3
    ...(省略)...
    
    處理條件(計數器 + 1)

注意

  • while 語句以及縮進部分是一個 完整的代碼塊

例3: 計算 0 ~ 100 之間所有數字的累計求和結果

# 計算 0 ~ 100 之間所有數字的累計求和結果
# 0. 定義最終結果的變量
result = 0

# 1. 定義一個整數的變量記錄循環的次數
i = 0

# 2. 開始循環
while i <= 100:
    print(i)

    # 每一次循環,都讓 result 這個變量和 i 這個計數器相加
    result += i

    # 處理計數器
    i += 1

print("0~100之間的數字求和結果 = %d" % result)

進階版: 計算 0 ~ 100 之間 所有 偶數 的累計求和結果

# 0. 最終結果
result = 0

# 1. 計數器
i = 0

# 2. 開始循環
while i <= 100:

    # 判斷偶數
    if i % 2 == 0:
        print(i)
        result += i

    # 處理計數器
    i += 1

print("0~100之間偶數求和結果 = %d" % result)

break 和 continue

breakcontinue 是專門在循環中使用的關鍵字

  • break 某一條件滿足時,退出循環,不再執行后續重復的代碼
  • continue 某一條件滿足時,不執行后續重復的代碼

例4: break 和 continue

break

  • 在循環過程中,如果 某一個條件滿足后 再希望 循環繼續執行,可以使用 break 退出循環
i = 0

while i < 10:

    # break 某一條件滿足時,退出循環,不再執行后續重復的代碼
    # i == 3
    if i == 3:
        break

    print(i)

    i += 1

print("over")

break 只針對當前所在循環有效

continue

  • 在循環過程中,如果 某一個條件滿足后, 希望 執行循環代碼,但是又不希望退出循環,可以使用 continue

  • 也就是:在整個循環中,只有某些條件,不需要執行循環代碼,而其他條件都需要執行
i = 0

while i < 10:

    # 當 i == 7 時,不希望執行需要重復執行的代碼
    if i == 7:
        # 在使用 continue 之前,同樣應該修改計數器
        # 否則會出現死循環
        i += 1

        continue

    # 重復執行的代碼
    print(i)

    i += 1
  • 需要注意:使用 continue 時,條件處理部分的代碼,需要特別注意,不小心會出現 死循環

continue 只針對當前所在循環有效

循環嵌套
  • while 嵌套就是:while 里面還有 while

例5:打印小星星

*
**
***
****
*****
  • 使用字符串 * 打印
# 1. 定義一個計數器變量,從數字1開始,循環會比較方便
row = 1

while row <= 5:

    print("*" * row)

    row += 1

  • 使用循環嵌套打印小星星

知識點 :對 print 函數的使用做一個增強

  • 在默認情況下,print 函數輸出內容之后,會自動在內容末尾增加換行
  • 如果不希望末尾增加換行,可以在 print 函數輸出內容的后面增加 , end=""
  • 其中 "" 中間可以指定 print 函數輸出內容之后,繼續希望顯示的內容
  • 語法格式如下:
# 向控制臺輸出內容結束之后,不會換行
print("*", end="")

# 單純的換行
print("")

end="" 表示向控制臺輸出內容結束之后,不會換行

實現流程:

  • 1> 完成 5 行內容的簡單輸出
  • 2> 分析每行內部的 * 應該如何處理?
    • 每行顯示的星星和當前所在的行數是一致的
    • 嵌套一個小的循環,專門處理每一行中 的星星顯示
row = 1

while row <= 5:

    # 假設 python 沒有提供字符串 * 操作
    # 在循環內部,再增加一個循環,實現每一行的 星星 打印
    col = 1

    while col <= row:
        print("*", end="")

        col += 1

    # 每一行星號輸出完成后,再增加一個換行
    print("")

    row += 1

例6:九九乘法表

# 定義起始行
row = 1

# 最大打印 9 行
while row <= 9:
    # 定義起始列
    col = 1

    # 最大打印 row 列
    while col <= row:

        # end = "",表示輸出結束后,不換行
        # "\t" 可以在控制臺輸出一個制表符,協助在輸出文本時對齊
        print("%d * %d = %d" % (col, row, row * col), end="\t")

        # 列數 + 1
        col += 1

    # 一行打印完成的換行
    print("")

    # 行數 + 1
    row += 1

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容