本章內容 一、數據類型 在記憶體中存儲的數據可以有多種類型。 在 Python 有五個標準的數據類型 數字 Python 支持四種不同的數字類型 int (有符號整數) long (長整型) float (浮點型) complex (複數) 字元串 字元串或串(String)是由數字、字母、下劃線組成 ...
本章內容
- 數據類型
- 數據運算
- 表達式 if ...else 語句
- 表達式 for 迴圈
- 表達式 while 迴圈
一、數據類型
在記憶體中存儲的數據可以有多種類型。
在 Python 有五個標準的數據類型
- Numbers (數字)
- String (字元串)
- List (列表)
- Tuple (元組)
- Dictionnary (字典)
數字
Python 支持四種不同的數字類型
- int (有符號整數)
- long (長整型)
- float (浮點型)
- complex (複數)
字元串
字元串或串(String)是由數字、字母、下劃線組成的一串字元。
print("我愛你,我的國!")
這裡說一下字元串拼接,在第一章的時候最後一張圖顯示出字元串拼接。這裡我們演示一下怎麼用,先看個簡單的程式如下:
#班裡面有10人,來了5人,現在有多少人? student_number=10 come_number=5 new_number=student_number+come_number print("班級現有",new_number,"人") # 沒用字元串拼接
#班裡面有10人,來了5人,現在有多少人? student_number=10 come_number=5 new_number=student_number+come_number print("班級現有"+str(new_number)+"人") #採用字元串拼接
這裡面new_number 數據類型是 int 類型,要通過 str() 轉換成字元串(詳見第一章介紹)。然後通過 + 號進行拼接
列表
List(列表) 是 Python 中使用最頻繁的數據類型。
基本操作:
-
- 索引
- 切片
- 追加
- 刪除
- 長度
- 切片
- 迴圈
- 包含
a = ["1","2","3","4"] b = a[1] c = a[0] d = a[1:3] #提取列表中 a[1]和a[2] 用到切片功能,後面在詳細的學 print(b) #b = 2 print(c) print(d) #d = ["2","3"]
元組
元組是另一個數據類型,類似於List(列表)。
元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表。
創建元組
age=(11,12,13,43,33,23) print(age)
字典
字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。
兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典用"{ }"標識。字典由索引(key)和它對應的值value組成。
person={"name":"xp","age":24} print(person)
更多內容:猛戳這裡
二、數據運算
根據這幾天學的和查閱資料,整理出以下幾種數據運算,當然有些我自己還沒練習,先整理出來,後面用到再重點介紹。
算術運算
運算符 | 描述 | 實例 |
+ | 加——兩個數相加 | a=1 b=2 a+b 輸出結果為 3 |
- | 減——兩個數相減 | a=4 b=2 a-b 輸出結果為 2 |
* | 乘——兩個數相乘 | a=1 b=2 a*b 輸出結果為 2 |
/ | 除——兩個數相除 | a=4 b=2 a/b 輸出結果為 2 |
% | 取模——返回除法的餘數 | a=5 b=2 a%b 輸出結果為 1 |
// | 整除——返回商的整數部分 | a=5 b=2 a//b 輸出結果為 2 |
** | 冪——返回x的y次冪 | a=5 b=2 a**b 輸出結果為 25 |
比較運算
運算符 | 描述 | 實例 |
== | 等於——比較對象是否相等 | a=1 b=2 a==b 返回false |
!= | 不等於——比較兩個對象是否不相等 | a=1 b=2 a==b 返回True |
> | 大於——比較兩個對象誰大 | a=1 b=2 a>b 返回false |
< | 小於——比較兩個對象誰小 | a=1 b=2 a<b 返回ture |
>= | 大於等於——比較兩個對象的關係 | a=1 b=2 a>=b 返回false |
<= | 小於等於——比較兩個對象的關係 | a=1 b=2 a<=b 返回false |
邏輯運算符
運算符 | 描述 | 實例 |
and | 與 | a=false b=ture a and b =false |
or | 或 | a=false b=ture a or b =ture |
not | 非 | a=false b=ture nat(a and b) =ture |
邏輯運算符真值表
and 真值表
and |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
or 真值表
or |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
not 真值表
not |
1 |
0 |
0 |
1 |
賦值運算符
運算符 | 描述 | 實例 |
= | 簡單的賦值運算符 | a=3 b=a b 的輸出結果為 3 |
+= | 加法賦值運算符 | a=3 c=1 a+=c a 的輸出結果為 4 等價於a=a+c |
-= | 減法賦值運算符 | a=3 c=1 a-=c a 的輸出結果為 2 等價於a=a-c |
*= | 乘法賦值運算符 | a=3 c=2 a*=c a 的輸出結果為 6 等價於a=a*c |
/= | 除法賦值運算符 | a=4 c=2 a/=c a 的輸出結果為 2 等價於a=a/c |
%= | 取模賦值運算符 | a=9 b=5 a%=b a 的輸出結果為 4 等價於a=a%b |
//= | 整除賦值運算符 | a=49 b=5 a//=b a 的輸出結果為 9 等價於a=a//b |
**= | 冪賦值運算符 | a=2 b=3 a**=b a 的輸出結果為 8 等價於a=a**b |
位運算
運算符 | 描述 | 實例 |
& | 按位 與 運算符 | a=11 b=2 (a&b)=2 二進位:0000 0010 |
| | 按位 或 運算符 | a=11 b=2 (a|b)=11 二進位:0000 1011 |
^ | 按位 異或 運算符 | a=11 b=2 (a^b)=9 二進位:0000 1001 (取不相同的位) |
~ | 按位 取反 運算符 | a=11 (~a)=-12 二進位:1000 1100 |
<< | 左移動運算符 | a=11 (<<a) =22 二進位:0001 0110 |
>> | 右移動運算符 | a=11 (<<a) =5 二進位:1000 0101 |
註意:按位 午飯運算符,高位為1符號位為1為負數,負數在電腦以反碼形式存儲,反碼 = 二進位取反(符號位不變)+1。所以 a = 11 二進位位:0000 1011
取反後為:1111 0100 ——> 1111 0100-1 = 1111 0011 ——> 取反: 1000 1100 = -12
問題:a = 11 c=a>>1 那麼 a 的最低位移到高位上,後面的一次向右挪一位,那麼高位上位1,為什麼不是負數呢?結果卻是5, 二進位位: 1000 0101
運算符優先順序
運算符 | 描述 |
---|---|
** | 指數 (最高優先順序) |
~ + - | 按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法減法 |
>> << | 右移,左移運算符 |
& | 位 'AND' |
^ | | 位運算符 |
<= < > >= | 比較運算符 |
<> == != | 等於運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 身份運算符 |
in not in | 成員運算符 |
not and or | 邏輯運算符 |
更多內容:猛戳這裡
三、表達式 if ...else 語句
縮進:縮進級別必須保持一致
Tab 鍵 != 4個空格
IndentationError: expected an indented block 語法錯誤
實例一:猜數字
1 ge_of_princal = 56 2 guess_age = int(input(">>:")) 3 if guess_age == age_of_princal: 4 print("yes") 5 elif guess_age > age_of_princal: 6 print("太大了,往小的猜") 7 else: 8 print("太小了,往大的猜")
實例二:成績等級劃分
1 score = int(input("score:")) 2 3 if score > 90: 4 print("A") 5 elif score > 80: 6 print("B") 7 elif score > 70: 8 print("C") 9 elif score > 50: 10 print("D") 11 else: 12 print("退學吧")
實例三:比較大小
1 #比較三個數的大小 2 3 max_number = 0 4 number1 = int(input("number1=")) 5 number2 = int(input("number2=")) 6 number3 = int(input("number3=")) 7 if number1 > number2: 8 max_number = number1 9 if max_number > number3: 10 print("最大值為:",max_number) 11 else: 12 max_number = number3 13 print("最大值為:",max_number) 14 else: 15 max_number = number2 16 if max_number > number3: 17 print("最大值為:",max_number) 18 else: 19 max_number = number3 20 print("最大值為:",max_number)
四、表達式 for 迴圈
for x in ...:
name=['xp','qa','ws','ed'] x=0 for x in name: print(x)
執行這段代碼,會依次列印 name 的每個元素
xp
qa
ws
ed
比如我們想計算1-100的整數之和,從1寫到100有點困難,利用 Python 提供的 range() 函數,可以生成一個整數序列,再通過 list() 函數轉換成 list 。
sum=0 x=1 for x in range(101): # range() 函數生成(0,100)整數序列 sum=sum+x #這裡一定要註意縮進 print(sum)
range() 函數 可以生成一個整數序列,通過 list() 函數轉換成 list (列表)
比如:生成一個數列 [0,1,2,3,4]
list_number=list(range(5)) print(list_number)
代碼列印結果:
[0,1,2,3,4]
五、表達式 while 迴圈
實例:編寫一個登陸介面,輸入用戶名和密碼,認證成功後顯示歡迎信息;輸錯三次後程式退出,不能再輸入密碼。
1 n = 3 2 pass_name = "123456" 3 name = input("請輸入用戶名:") 4 while n>0: 5 password=input("請輸入用戶名密碼:") 6 if password==pass_name: 7 print("歡迎進入....") 8 n=0 9 else: 10 print("密碼輸入錯誤") 11 n=n-1 12 if n==0: 13 print("該用戶名被鎖定") 14 else: 15 print("密碼輸入錯誤,還有",n,"次機會")
實例列印1~100之間的偶數部分
1 #列印1~100之內的偶數部分 2 even_number = 1 3 while even_number <= 100: 4 even_number +=1 5 if even_number % 2 == 0: 6 print(even_number)View Code
未完待續........
有什麼不對的地方請大家多多指教,相互交流學習。儘量將自己學會的通過博客給大家展示出來,也希望大家不要著急。
大家也可以關註我的博客與我互動學習、交流。