1. 程式人生 > >PYTHON學習---第一部分

PYTHON學習---第一部分

編碼格式 love 算數 存在 是我 tin exec 進行 finally

第一個程序

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Author:xll
4 print("Hello World!")

在linux上需要用#!/usr/bin/env python告訴系統用什麽解釋器來執行此段代碼

# -*- coding: utf-8 -*-則是指示此段代碼的編碼格式,一般作為固定格式

變量

技術分享
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 name = "Xll"
 5 name1 =  name
 6 print("My name is ",name,name1) 
7
8 name = "WangPin" 9 10 print("My name is ",name,name1)
技術分享

變量定義的規則:

  • 變量名只能是 字母、數字或下劃線的任意組合
  • 變量名的第一個字符不能是數字
  • 以下關鍵字不能聲明為變量名
  • [‘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‘]

PS:變量是用來存東西的;變量名要有含義;變量名大寫代表常量,不應該去修改它

編碼

  • ASCII   一個字符占一個字節,即8位
  • UNICODE   一個字符占兩個字節,即16位
  • UTF-8    存英文字符占一個字節,存中文占三個字節

註釋

#         註釋單行,PS:pycharm中可以用ctrl+/進行批量註釋,或者批量反註釋

‘‘‘ ‘‘‘或者""" """ 多行註釋,前面加變量可以進行多行輸入輸出

用戶輸入

技術分享
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Author:xll
4 
5 name = input("Please input your name:")
6 print(name)
技術分享

輸入密碼時,如果想要不可見,需要利用getpass 模塊中的 getpass方法, 如下:

技術分享
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 # Author:xll
4 import  getpass
5 
6 username = input("Username:")
7 passwd = getpass.getpass("Passwd:")
8 
9 print(username,passwd)
技術分享

PS:getpass在pycharm中不好使,試著在命令行窗口運行。

循環

while循環

技術分享
 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 
 5 age_of_breakering = 25
 6 
 7 count = 0
 8 
 9 while count < 3:
10     guessage = int(input("Guessage:"))
11     if age_of_breakering == guessage:
12         print("Yeah you got it !")
13         break
14     elif age_of_breakering > guessage:
15         print("Think bigger!")
16     else:
17         print("Think smaller!")
18     count += 1
19 else:
20     print("You have tried too much times!")
技術分享

for循環

技術分享
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 age = 25
 5 
 6 for i in range(3):
 7     guessage = int(input("Guessage:"))
 8     if age == guessage:
 9         print("Yeah you got it !")
10         break
11     elif age > guessage:
12         print("Think bigger!")
13     else:
14         print("Think smaller!")
15 else:
16     print("You have tried too much times!")

模塊

Python的強大之處在於他有非常豐富和強大的標準庫和第三方庫,幾乎你想實現的任何功能都有相應的Python庫支持,以後的課程中會深入講解常用到的各種庫,現在,我們先來象征性的學2個簡單的。

sys

1 import sys
2 print(sys.path) #打印環境變量
3 print(sys.argv)
4 print(sys.argv[2]) #接受執行腳本時輸入的第二個參數

os

1 import  os
2 cmd_res = os.system("dir")  #執行命令,不保存結果
3 cmd_res = os.popen("dir").read()
4 print("---->",cmd_res)
5 os.mkdir("new_dir")        #在當前路徑下創建一個新的目錄

完全結合一下

1 import os,sys
2  
3 os.system(‘‘.join(sys.argv[1:])) #把用戶的輸入的參數當作一條命令交給os.system來執行

pyc是個什麽鬼?

參考大王博客:http://www.cnblogs.com/alex3714/articles/5465198.html

PS:pyc 是預編譯的字節碼

數據類型

1、數字

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(整型) PS:python3沒有長整型

  在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647
  在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
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 2、布爾值   真或假   1 或 0 3、字符串
1 name = ‘Xll‘
4、列表
1 l = ["Xll","WangHua"]
5、元組(不可變列表)
1 t = ("Xll","WangHua")
6、字典(無序)
1 person_dict = {
2                      "Xll":26,
3                      "WangHua":27
4 }

數據運算

算數運算:

技術分享

比較運算:

技術分享

賦值運算:

技術分享

邏輯運算:

技術分享

成員運算:

技術分享

身份運算:

技術分享

位運算:

技術分享

技術分享
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 a = 80             #80  = 0101 0000
 5 b = 60             #60  = 0011 1100
 6 
 7 c = a & b          #16  = 0001 0000
 8 
 9 d = a | b          #124 = 0111 1100
10 
11 e = a ^ b          #108 = 0110 1100    #相同為0,不同為1
12 
13 f = ~a             #-81 = 1010 1111  175-256=-81
14 
15 g = a << 2         #320 = 1 0100 0000
16 
17 h = a >> 2         #20  = 0001 0100
技術分享

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

運算符優先級:

技術分享

更多內容:http://www.runoob.com/python/python-operators.html

判斷if....else

技術分享
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 age_of_oldboy = 56
 5 
 6 count = 0
 7 
 8 while count < 3:
 9     guessage = int(input("Guessage:"))
10     if age_of_oldboy == guessage:
11         print("Yeah you got it !")
12         break
13     elif age_of_oldboy > guessage:
14         print("Think bigger!")
15     else:
16         print("Think smaller!")
17     count += 1
18     if count == 3:
19         continue_confirm = input("Do you want to continue:[Y/N]")
20         if continue_confirm != "N":
21             count = 0
技術分享

bytes類型

python3的bytes&str之別

技術分享
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:xll
 4 
 5 info = "我是最棒的"
 6 
 7 print(info)
 8 #我是最棒的
 9 print(info.encode(encoding="utf-8"))
10 #b‘\xe6\x88\x91\xe6\x98\xaf\xe6\x9c\x80\xe6\xa3\x92\xe7\x9a\x84‘
11 print(info.encode(encoding="utf-8").decode(encoding="utf-8"))
12 #我是最棒的
技術分享

技術分享

三元運算

1 result = 值1 if 條件 else 值2

如果條件為真:result = 值1
如果條件為假:result = 值2

進制

  • 二進制,01
  • 八進制,01234567
  • 十進制,0123456789
  • 十六進制,0123456789ABCDEF 二進制到16進制轉換http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1

計算機內存地址和為什麽用16進制?

為什麽用16進制 1、計算機硬件是0101二進制的,16進制剛好是2的倍數,更容易表達一個命令或者數據。十六進制更簡短,因為換算的時候一位16進制數可以頂4位2進制數,也就是一個字節(8位進制可以用兩個16進制表示) 2、最早規定ASCII字符集采用的就是8bit(後期擴展了,但是基礎單位還是8bit),8bit用2個16進制直接就能表達出來,不管閱讀還是存儲都比其他進制要方便
3、計算機中CPU運算也是遵照ASCII字符集,以16、32、64的這樣的方式在發展,因此數據交換的時候16進制也顯得更好
4、為了統一規範,CPU、內存、硬盤我們看到都是采用的16進制計算


16進制用在哪裏
1、網絡編程,數據交換的時候需要對字節進行解析都是一個byte一個byte的處理,1個byte可以用0xFF兩個16進制來表達。通過網絡抓包,可以看到數據是通過16進制傳輸的。
2、數據存儲,存儲到硬件中是0101的方式,存儲到系統中的表達方式都是byte方式

3、一些常用值的定義,比如:我們經常用到的html中color表達,就是用的16進制方式,4個16進制位可以表達好幾百萬的顏色信息。

列表

列表是我們以後最常用的數據類型之一,通過列表可以對數據實現最方便的存儲、修改等操作

 1 names=[ZhangSan,LiSi,WangWu,MaZi,ZhaoYun,QiSan]
 2 names.append(LeiHaidong)
 3 names.insert(2,WangErxiao)
 4 names[2]=XieDi
 5 print(names)
 6 #names.remove(‘LiSi‘)  #刪除
 7 #del names[2] #刪除
 8 #names.pop(2) #刪除
 9 #print(names[names.index("QiSan")])  #index("值")找到位置
10 print(names.count(QiSan)) #查找某個值的個數
11 #names.clear()  #清空
12 #names.reverse() #反轉
13 #names.sort() 排序
14 names2=[1,2,3,45,6,7,78,89,0]
15 names.extend(names2)
16 del names2
17 print(names)
18 #print(names[0],names[2])
19 #print(names[-3:])
20 #print(names[:2])

字典

字典一種key - value 的數據類型,使用就像我們上學用的字典,通過筆劃、字母來查對應頁的詳細內容。

技術分享
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Author:xll
4 name_dict = {
5         "Xll":29,
6         "WangHua":24,
7         "ZhangXiao":25,
8         "YinZhiqia":26
9          }
技術分享

字典的特性:

  • dict是無序的 PS:dict無序是因為dict沒有下標
  • key必須是唯一的,so 天生去重
循環dict 技術分享
1 #循環字典
2 #方法1
3 for key in name_dict:
4     print(key,name_dict[key])
5 
6 #方法2
7 for k,v in name_dict.items(): #會先把dict轉成list,數據量大時莫用
8     print(k,v)
技術分享

文件操作

對文件操作流程

  1. 打開文件,得到文件句柄並賦值給一個變量
  2. 通過句柄對文件進行操作
  3. 關閉文件
 1 #! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Auther:Xll
 4 
 5 f1 = open("aaaa1",w,encoding="utf-8") #文件句柄
 6 #data = f1.readline()
 7 f1.write("\nI love BeiJing TianAnmen!\n")
 8 f1.write("The Sun rise on TianAnmen !")
 9 f1.write("\nhello\n"
10 ‘‘‘ low loop
11 for index,line in enumerate(f1.readlines()):
12     if index == 9:
13         print("-------end--------")
14         break
15     print(line.strip())
16 
17 ###high big 叠代器
18 count=0
19 for line in f1:
20     if count == 9:
21         print("This is the ten line----")
22         break
23     print(line.strip())
24     count += 1
25 print(f1.tell())
26 print(f1.readline())
27 print(f1.tell())
28 f1.seek(100)
29 print(f1.tell())
30 print(f1.readline())
31 print(f1.encoding)
32 ‘‘‘
33 print(f1.flush()) #刷新緩存中的寫入內容到文件中
34 #print(dir(f1.buffer) )
35 
36 f1.close()
37 #for i in data:
38 #print(data)

 1 #! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Auther:Xll
 4 import sys,time
 5 ‘‘‘
 6 for i in range(10):
 7     sys.stdout.write("#")
 8     sys.stdout.flush()
 9     time.sleep(0.2)
10 ‘‘‘
11 #f = open("aaaa",‘r+‘,encoding="utf-8")#讀寫模式,3.0只支持追加邪
12 #f = open("aaaa",‘w+‘,encoding="utf-8")~~一般沒用
13 #f = open("aaaa",‘wb‘) #網絡傳輸,視頻格式、二進制文件 使用
14 #f.write("hello binary\n".encode())
15 #print(f.readline())
16 #print(f.readline())
17 #print(f.readline())
18 #print(f.tell())
19 #print(f.read())
20 f = open("1a",r,encoding="utf-8")
21 f1 = open("2a",w,encoding="utf-8")
22 for line in f:
23     if 肆意的快樂 in line:
24         line = line.replace("肆意的快樂","肆意的快樂等我來享受")
25     f1.write(line)
26 
27 f.close()
28 f1.close()

PYTHON學習---第一部分