1. 程式人生 > >Python學習第一天

Python學習第一天

python

Python簡介

  請自行百度

Python版本

  CPython、JPython...具體介紹請百度

Python應用

  Web Programming:Django,Pyramid,Bottle,Tornado,Flask,Web2py

  GUI Development:wxPython,tkinter,PyGtk,PyGObject,PyQt

  Scientific and Numeric:SciPy,Pandas,IPython

  Software Development:Buildbot,Trac,Roundup

  System Administration:Ansible,Salt,OpenStack

Windows使用環境

  使用Python2.7和Python3.5版本,課程以Python3為主。

  下載Python2.7和3.0安裝並配置環境變量

  IDE使用pycharm

Python解釋器執行的步驟

  加載內存、語法分析、編譯變成字節碼,執行字節碼,內存讀取字節碼,內存將字節碼轉換成機器碼。

Python2.x和3.x常用語法不同之處

  Python3默認編碼為unicode,不再出現Python2中因編碼問題出現的bug。

  Old:raw_input input

  New:input() eval(input())

  Old:print

  New:print() print("",end="")

  input()==eval(input)#左邊是python2寫法,右邊是python3寫法

  raw_input()==input()#左邊是python2寫法,右邊是python3寫法

數據類型分為兩部分:

1、 單值

  數字

  整型

  長整型

   浮點型

  復數

  布爾值 True(1),False(0)

  字符串

2、 集合

  列表

  元祖

  字典

  Set哈希表

變量命名規則

   1、變量名只能是字母、數字或下劃線的任意組合;變量名第一個字符不能是數字;變量名命名不能使用關鍵字。

    如: [‘and‘,‘int‘,‘str‘]...

變量與賦值

  賦值傳參:將右邊的參數賦值給左邊的名稱,名稱為後期程序調用。

  字符串需要加引號引起來,數字則不加引號

變量

#!/uer/bin/env python3
>>> name = "張三"#字符串需要用引號引起來
>>> age = 22 #數字不需要加引號
>>> print(name,age)
張三 22
>>> name = zhangsan #不加引號報錯
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
name = zhangsan
NameError: name ‘zhangsan‘ is not defined

id() id用於查看變量內存地址是否一致

>>> a = 3
>>> b = a #內存中b指向3
>>> a = 5
>>> print(a,b)
(5, 3)
>>> a = 3
>>> b = a
>>> id(a);id(b)#內存地址一樣
32046816
>>> a = 5
>>> id(a);id(b)#內存地址不一樣
32046816

字符串 #不可修改的

字符格式化

#!/usr/bin/env python3
name = input("name:")
age = input("age:")
print("name %s:\nage %s:" % (name,age))

字符串格式符號含義#摘自bbs.fishc.com

符號

說明

%c

格式化字符及其ASCII碼

%s

格式字符串

%d

格式化整數

%o

格式化無符號八進制數

%x

格式化無符號十六進制數

%X

格式化無符號十六進制數(大寫)

%f

格式化定點數,可指定小數點後的精度

%e

用科學計數法格式化定點數

%E

作用同%e,用科學計數法格式化定點數

%g

根據值的大小決定使用%f或者%e

%G

作用同%g,根據值的大小決定使用%f或者%E

字符串轉義字符含義#摘自bbs.fishc.com

符號

說明

\’

單引號

\”

雙引號

\a

發出系統響鈴聲

\b

退格符

\n

換行符

\t

橫向制表符(TAB)

\v

縱向制表符

\r

回車符

\f

換行符

\o

八進制數代表的字符

\x

十六進制數代表的字符

\0

表示一個空字符

\\

反斜杠

字符串常用功能:

  移除空白:strip(); lstrip(); rstrip()

  分割:split() split(‘\t’) 按tab鍵分割

  長度:len()

  索引:0開始,-1從尾開始

  切片:[0]

列表[] #數據可修改

 列表寫法:

  name_list = ["alex","seven","eric"]

  或

  name_list = list(["alex","seven","eric"])

基本操作:

  索引從0開始負數為-1開始

  切片[0]

  包含:in

  長度:len()

  刪除: del(); del name_list [0]

  循環:for

  連接:join ; ‘_’.join(nam_list)

append追加
>>> name_list = ["alex","65brother","tenglan"]
>>> name_list.append("eric")
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
count 統計
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.count("65brother")#統計
extend 擴展
>>> name_list = [‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(name_list)#一個列表擴展另一個列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘]
>>> name_list.extend(["a","b","c"])#一個列表擴展另一個列表
>>> name_list
[‘alex‘, ‘eric‘, ‘jkjl‘, ‘tenglan‘, ‘a‘, ‘b‘, ‘c‘]
index 索引
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.index("65brother")#索引
insert 插入
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.insert(2,"66brother")#插入指定位置
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
pop 刪除或接收
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘, ‘65brother‘]
>>> name_list.pop()#刪除最後一個
‘65brother‘
>>> name_list.pop(1)#通過下標刪除指定值
‘alex‘
>>> name = name_list.pop(-1)#通過下標刪除指定值並作賦值
>>> name
‘eric‘
remove 刪除指定一個
>>> name_list
[‘alex‘, ‘65brother‘, ‘66brother‘, ‘tenglan‘, ‘eric‘]
name_list.remove("66brother")#刪除指定值
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
reverse 反轉
>>> name_list
[‘alex‘, ‘65brother‘, ‘tenglan‘, ‘eric‘]
>>> name_list.reverse()#反轉
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
sort 排序
#python3中是按同類型進行排序
>>> name_list
[‘eric‘, ‘tenglan‘, ‘65brother‘, ‘alex‘]
>>> name_list.sort()#排序
[‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可通過key來指定排序
>>> name_list
[‘65brother‘, ‘alex‘, 55, ‘eric‘, ‘tenglan‘, 33, 55]
>>> name_list.sort(key=str)#通過key進行排序,詳細請用help(list.sort)
>>> name_list
[33, 55, 55, ‘65brother‘, ‘alex‘, ‘eric‘, ‘tenglan‘]
#可以實現反轉
>>> name_list.sort(reverse=True,key=str)#reverse默認值是False
>>> name_list
[‘tenglan‘, ‘eric‘, ‘alex‘, ‘65brother‘, 55, 55, 33]

元組 #是只讀的

count

>>> name = ("alex","eric",99)
>>> name.count(99)#統計1

index

>>> name = ("alex","eric",99)
>>> name.index(99)#索引2

條件

  條件判斷if...else

  縮進為4個空格,或者是一個TAB

if...else

>>> a = 10
>>> b = 20
>>> if a < b:
print("YES")
else:
print("NO")
YES

三元運算

>>> a = 10
>>> b = 20
>>> num = a if 1<2 else b#條件為真,值為a
>>> num
>>>num = a if 1>2 else b#條件為假,值為b
>>> num
# 將以下代碼轉換成三元運算
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
print(small)
#轉換後
small = x if ((x < y) and (z < x)) else(y if y < z else z)
print(small)

For循環:

>>> name_list = [‘a‘,‘b‘,‘c‘]
>>> for ele in name_list:
if ele == ‘a‘:
print(‘a‘)
continue
if ele == ‘b‘:
print(‘b‘)
break

a
b

While 循環:

  While 條件:#條件為真執行

  While True:#切記,容易進入死循環哦!

簡單文件操作

打開文件:

  f= open("文件路徑",“模式”)

打開模式有:

  r,只讀方式打開

  w,打開一個文件只用於寫入。如果文件存在則將覆蓋原文件,如果該文件不存在,創建文件。

  a ,打開一個文件用於追加。如果該文件已存在,指針指向文件結尾,新內容寫到文件後。如果文件不存在,創建文件。

  w+ , 打開一個文件用於寫讀,如果文件存在將覆蓋文件裏的內容。如果文件不存在,創建文件並寫人內容。

  r+ , 打開一個文件用於讀寫,可修改文件內容。

文件讀取:

  f.read() #讀取所有內容到內存

  f.readlines()#讀取所有內容到內存,並按換行符分割成列表。

寫文件:

  f.write("內容")

  f.writeline()

關閉文件:

  f.close()


Python學習第一天