Python開發【Part 3】:Python入門

本節內容

  1. 變量
  2. 字符編碼
  3. 註釋
  4. 用戶輸入
  5. 數據類型初識
  6. 數據運算
  7. 循環

 

1、變量

1.聲明變量

1
name  =  "Eterniy"

  上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"Eternity" html

2.變量定義的規則

  • 變量名只能是 字母、數字或下劃線的任意組合
  • 變量名的第一個字符不能是數字
  • 如下關鍵字不能聲明爲變量名
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

3.變量的賦值

1
2
3
4
5
6
7
name  =  "Eternity"
name2  =  name
print (name,name2)
 
name  =  "Jack"
 
print ( "What is the value of name2 now?" ) #Eternity

 

2、字符編碼

1.ASCII碼

  Python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)python

  ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,因此,ASCII碼最多隻能表示 255 個符號。程序員

2.關於中文

  爲了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體中文的big5。數組

  GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。oop

  GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分爲漢字區和圖形符號區。漢字區包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。如今的PC平臺必須支持GB18030,對嵌入式產品暫不做要求。因此手機、MP3通常只支持GB2312。優化

  從ASCII、GB23十二、GBK 到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中老是有相同的編碼,後面的標準支持更多的字符。在這些編碼中,英文和中文能夠統一地處理。區分中文編碼的方法是高字節的最高位不爲0。按照程序員的稱呼,GB23十二、GBK到GB18030都屬於雙字節字符集 (DBCS)。ui

  有的中文Windows的缺省內碼仍是GBK,能夠經過GB18030升級包升級到GB18030。不過GB18030相對GBK增長的字符,普通人是很難用到的,一般咱們仍是用GBK指代中文Windows內碼。編碼

3.Unicode

  Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,注:此處說的的是最少2個字節,可能更多。spa

  UTF-8,是對Unicode編碼的壓縮和優化,它再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存....net

因此,Python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),在Python2中若是是以下代碼的話會報錯,由於ASCII碼沒法表示中文。

1
2
3
#!/usr/bin/env python
  
print  "你好,世界"

改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:

1
2
3
4
#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print  "你好,世界"

 

3、註釋

  當行註釋:# 被註釋內容

  多行註釋:""" 被註釋內容 """

 

4、用戶輸入  

1
2
3
#name = raw_input("What is your name?") #only on python 2.x
name  =  input ( "What is your name?" )
print ( "Hello "  +  name )

  輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法(在Pycharm中無效),即:

1
2
3
4
5
6
import  getpass
  
# 將用戶輸入的內容賦值給 name 變量
pwd  =  getpass.getpass( "請輸入密碼:" )
# 打印輸入的內容
print (pwd)

 

5、數據類型初識

一、數字

2 是一個整數的例子。
長整數 不過是大一些的整數。
3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是複數的例子,其中-5,4爲實數,j爲虛數,數學中表示覆數是什麼?。

int(整型)

  在32位機器上,整數的位數爲32位,取值範圍爲-2**31~2**31-1,即-2147483648~2147483647
  在64位系統上,整數的位數爲64位,取值範圍爲-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)
  跟C語言不一樣,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上因爲機器內存有限,咱們使用的長整數數值不可能無限大。
  注意,自從Python2.2起,若是整數發生溢出,Python會自動將整數數據轉換爲長整數,因此現在在長整數數據後面不加字母L也不會致使嚴重後果了。
float(浮點型)
       先掃盲 http://www.cnblogs.com/alex3714/articles/5895848.html 
  浮點數用來處理實數,即帶有小數的數字。相似於C語言中的double類型,佔8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。
complex(複數)
  複數由實數部分和虛數部分組成,通常形式爲x+yj,其中的x是複數的實數部分,y是複數的虛數部分,這裏的x和y都是實數。
注:Python中存在小數字池:-5 ~ 257

二、布爾值

  真或假
  1 或 0

三、字符串

"hello world"
  字符串拼接
  Python中的字符串在C語言中體現爲是一個字符數組,每次建立字符串時候須要在內存中開闢一塊連續的空間,而且一旦須要修改字符串的話,就須要再次開闢空間,字符串拼接用的+號每出現一次就會在內存從中從新開闢一塊空間。
  字符串格式化輸出
1
2
3
name  =  "Eternity"
print  "i am %s "  %  name
#輸出: i am Eternity

    PS: %s——字符串;%d——整數;%f——浮點數

   字符串經常使用功能
  • 移除空白
  • 分割
  • 長度
  • 索引
  • 切片

四、列表

   建立列表
1
2
3
name_list  =  [ 'Eternity' 'seven' 'eric' ]
name_list =  list ([ 'Eternity' 'seven' 'eric' ])

  基本操做

  • 索引
  • 切片
  • 追加
  • 刪除
  • 長度
  • 切片
  • 循環
  • 包含

五、元組(不可變列表)

   建立元組
1
2
3
ages  =  ( 11 22 33 44 55 )
ages  =  tuple (( 11 22 33 44 55 ))

六、字典(無序)

   建立字典
1
2
3
person  =  { "name" "mr.wu" 'age' 18 }
person  =  dict ({ "name" "mr.wu" 'age' 18 })

  經常使用操做

  • 索引
  • 新增
  • 刪除
  • 鍵、值、鍵值對
  • 循環
  • 長度

 

6、數據運算  

1.算數運算

2.比較運算

3.賦值運算

4.邏輯運算

5.成員運算

6.身份運算

7.位運算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
=  60             # 60 = 0011 1100
=  13             # 13 = 0000 1101
=  0
  
=  a & b;         # 12 = 0000 1100
print  "Line 1 - Value of c is " , c
  
=  a | b;         # 61 = 0011 1101
print  "Line 2 - Value of c is " , c
  
=  a ^ b;         # 49 = 0011 0001 #相同爲0,不一樣爲1
print  "Line 3 - Value of c is " , c
  
=  ~a;            # -61 = 1100 0011
print  "Line 4 - Value of c is " , c
  
=  a <<  2 ;        # 240 = 1111 0000
print  "Line 5 - Value of c is " , c
  
=  a >>  2 ;        # 15 = 0000 1111
print  "Line 6 - Value of c is " , c

  *按位取反運算規則(按位取反再加1)   詳解http://blog.csdn.net/wenxinwukui234/article/details/42119265

8.運算符優先級

 

7、循環

1.表達式if ... else

  場景1、用戶登錄驗證

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 提示輸入用戶名和密碼
# 驗證用戶名和密碼
#     若是錯誤,則輸出用戶名或密碼錯誤
#     若是成功,則輸出 歡迎,XXX!
 
import  getpass
  
name  =  raw_input ( '請輸入用戶名:' )
pwd  =  getpass.getpass( '請輸入密碼:' )
  
if  name  = =  "Eternity"  and  pwd  = =  "cmd" :
     print ( "歡迎,Eternity!" )
else :
     print ( "用戶名和密碼錯誤" )

  場景2、猜年齡遊戲

  在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了

1
2
3
4
5
6
7
8
9
10
my_age = 28
 
user_input  =  int ( input ( "input your guess num:" ))
 
if  user_input  = =  my_age:
     print ( "Congratulations, you got it !" )
elif  user_input < my_age:
     print ( "Oops,think bigger!" )
else :
     print ( "think smaller!" )
  外層變量,能夠被內層代碼使用
  內層變量,不該被外層代碼使用

2.表達式for loop

  最簡單的循環10次

1
2
for  in  range ( 10 ):
     print ( "loop:" , i )

  輸出:

1
2
3
4
5
6
7
8
9
10
loop:  0
loop:  1
loop:  2
loop:  3
loop:  4
loop:  5
loop:  6
loop:  7
loop:  8
loop:  9

  需求一:仍是上面的程序,可是遇到小於5的循環次數就不走了,直接跳入下一次循環

1
2
3
4
for  in  range ( 10 ):
     if  i< 5 :
         continue  #不往下走了,直接進入下一次loop
     print ( "loop:" , i )

  需求二:仍是上面的程序,可是遇到大於5的循環次數就不走了,直接退出

1
2
3
4
for  in  range ( 10 ):
     if  i> 5 :
         break  #不往下走了,直接跳出整個loop
     print ( "loop:" , i )

3.表達式while loop   

  死循環代碼

1
2
3
4
count  =  0
while  True :
     print ( "你是風兒我是沙,纏纏綿綿到天涯..." ,count)
     count  + = 1

  循環100次退出

1
2
3
4
5
6
7
8
count  =  0
while  True :
     print ( "你是風兒我是沙,纏纏綿綿到天涯..." ,count)
     count  + = 1
     if  count  = =  100 :
         print ( "去你媽的風和沙,大家這些脫了褲子是人,穿上褲子是鬼的臭男人.." )
         break
        

  回到上面for 循環的例子,如何實現讓用戶不斷的猜年齡,但只給最多3次機會,再猜不對就退出程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my_age  =  28
 
count  =  0
while  count <  3 :
     user_input  =  int ( input ( "input your guess num:" ))
 
     if  user_input  = =  my_age:
         print ( "Congratulations, you got it !" )
         break
     elif  user_input < my_age:
         print ( "Oops,think bigger!" )
     else :
         print ( "think smaller!" )
     count  + =  1  #每次loop 計數器+1
else :
     print ( "猜這麼屢次都不對,你個笨蛋." )
相關文章
相關標籤/搜索