本節主要分為兩大部分:一部分是理論介紹,一部分是需求練習
一、Python語言基礎
1. 進制與原碼、反碼、補碼
二進制是計算機存儲的使用進制,除此之外還有八進制,十進制,十六進制
原碼:計算機只能識別0和1,而我們的數值是具有正負數之分的。於是在計算機存儲數據時,最高位表示符號位,0正數,1負數。
既然有了數值的表示方法就可以對數進行算術運算,但是帶有符號位的原碼在對進行負數操作時出現了問題。因此引入了反碼
反碼:對除符號位以外的個位逐位求反,於是就產生了反碼。
問題出現在(+0)和(-0)上,在人的概念中0是沒有正負之分的,於是就引出了補碼的該男
原碼:負數的補碼就是反碼加一
總結:
(1)正數:原碼,反碼,補碼三碼合一
(2)負數:
反碼:符號位不動,其他安位取反,
補碼:負數的補碼加一
結論:計算機一補碼的形式存儲數據
2. Python中的編碼規范與基本語法
(1)分號:不要在行位加分號,也不要使用分號將兩條命令寫到同一行
(2)行長度:一般情況下每行不要超過80個字符
(3)括號:寧缺毋濫的使用括號
(4)縮進:使用4個空格來縮進代碼
(5)空行:頂級定義之間空兩行,方法定義之間空一行
(6)語句:每個語句應該獨占一行
(7)盡量避免文件名中出現空格和中文
(8)python的語法比較簡單,采用縮進的方式,寫出的代碼大概是這樣的,其中#開頭的語句是注釋,注釋是給編程人員看的,解釋器會忽略掉注釋。其他每一行就是一個語句,當語句以:冒號結尾是,縮進的語句為代碼塊
# print absolute value of an integer: a = 100 if a >= 0: print(a) else: print(-a)
3. 標識符
標識符規則:
(1)只能有字母、數字、下划線組成
(2)開頭不能是數字
(3)不能是Python的關鍵字
例如def,False,True,and , break,class,del
(4)區分大小寫
(5)取名字要做到見名知意
作用:給變量、函數,類等命名
4. Python數據類型和變量
(1)數據類型
計算機是用來做數學計算的機器,因此它可以處理各種數值,但是計算機能夠處理的遠遠不止是數值,它還可以處理文本、圖形、音頻、視頻等各種各樣的數據,不同的數據要定義不同的數據類型。
Python的數據類型主要分為以下幾大類:
Number(數字)
整數(int)
浮點數(float)
負數
String(字符串)
字符串是以單引號或雙引號括起來的任意文本。當字符串內部包含單引號有或雙引號時,我們需要使用轉義字符“\”。其中\n表示換行,\t表示制表符,字符\本身也需要轉義。
Boolean(布爾值)
布爾值只有True,False兩種
None(空值)
空值是python里一個特殊的值,用None表示,None不能為0,而None是一個特殊的空值。
list(列表)
Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。
tuple(元組)
另一種有序的列表叫元組:tuple。tuple和list非常相似,但是tuple一旦初始化就不能修改
dict(字典)
Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值存儲,具有極快的查找速度。
set(集合)
set和dict類似,也是一組key的集合,但是不存儲value。由於key不能重復,所以,在set中,沒有重復的key。
(2)變量
變量的概念基本和代數的方程變量是一致的,知識在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。
概述:程序可操作的存儲區的名稱,在運行的期間能夠改變的數據,每個變量都是特定的類型
作用:將不同類型的數據存儲到內存中
變量的定義:
變量名 = 初始值,其中給定初始值的原因是因為確定變量的類型
(3)常量:
程序運行期間不能改變的數據
5. 算術運算符與表達式
算術運算符
假設變量 a = 10, b = 20
+ :加 兩個對象相加 例如 a + b = 30
- :減 標識負數/一個數減去另一個數 a - b = -10
* :乘 兩個數相乘/返回一個被重復若干次的字符串 a*b=200
/ : 除 b除以a b/a = 2
% : 取模 返回除法的余數 b%a = 0
** :冪,返回x的y次冪 a**b=10^20
// : 取整除返回商的整數部分 9//2=4, 9.0//2.0=4.0
算術運算表達式
功能:進行相關符號的數學運算,不會改變變量的值
值:相關的數學運算的結果
6. 比較運算符
== 等於,比較對象是否相等,返回布爾類型的值
!= 不等於,比較對象是否不相等
>= 大於等於
<= 小於等於
> 大於
< 小於
6. 賦值運算符與賦值運算表達式
賦值運算符 =
賦值運算表達式
格式:變量 = 表達式
功能:計算了等號右側的“表達式”的值,並賦值給等號左側的變量
復合運算符:
+= 加法賦值運算符 a += b a = a + b -= 減法賦值運算符 a -= b a = a - b *= 乘法賦值運算符 a *= b a = a * b /= 除法賦值運算符 a /= b a = a / b %= 取模賦值運算符 a %= b a = a % b **= 冪賦值運算符 a **= b a = a ** b //= 取整除賦值運算符 a //= b a = a // b
7. 邏輯運算符
and運算:與運算
or運算:或運算
not運算:非運算,它是一個單目運算,True變成False,False變成True
8. 位運算符
我們進行位運算的時候,我們需要把數字轉換為二進制數來進行計算 & 按位與 | 按位或 ^ 按位異或 ~ 按位取反 << 左移 >> 右移
與運算【&】:
參與運算的兩個值,如果兩個相應為都為1,則改位的結果為1,否則為0
按位或【|】
只要對應的兩個二進位有一個為1時,結果就為1
按位異或【^】
當兩對應的二進位相異時,結果為1
按位取反【~】
對數據的每個二進制位取反,即把1變成0,0變成1
.左移運算符【<<】
注意:向左移動,右邊空出來的補0,左移其實就是乘以2的位數次冪
右移運算符【>>】
把”>>”左邊的運算數的各二進位全部右移若干位,”>>”右邊的數指定移動的位數
注意:如果最高位0,右移后,用0補空位,如果最高位1,右移后,用1補空位,右移其實就是除以2的位數次冪。
9. 成員運算符
in:如果早指定的序列中找到返回值True,否則返回False
not in:如果在指定的序列中滅有找到值返回True,否則返回False
10. 身份運算符
is:is判斷兩個標識符是不是引用自同一個對象
is not:判斷兩個標識符是不是引用自不同的對象