1. 程式人生 > >Python 學習第二章

Python 學習第二章

dad put lis 二進制 顯示 使用 整型 詳細 c4c

本章內容

  1. 數據類型
  2. 數據運算
  3. 表達式 if ...else 語句
  4. 表達式 for 循環
  5. 表達式 while 循環

一、數據類型

  在內存中存儲的數據可以有多種類型。

  在 Python 有五個標準的數據類型

  1. Numbers (數字)
  2. String (字符串)
  3. List (列表)
  4. Tuple (元組)
  5. 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

賦值運算符

運算符 描述 實例
= 簡單的賦值運算符 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("退學吧")

四、表達式 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,"次機會")

  未完待續........

  有什麽不對的地方請大家多多指教,相互交流學習。盡量將自己學會的通過博客給大家展示出來,也希望大家不要著急。

大家也可以關註我的博客與我互動學習、交流。

Python 學習第二章