天天看點

Python學習筆記1

基礎性質

概念

1)曆史

發展久,與java同期

2)版本

3.X   2.7lib多  常用

3)腳本語言,不需要編譯

4)解釋性語言,讀一行解釋一行

5) 運作性能較差,沒有ruby差 哈哈哈哈

6) lib(庫檔案)多,聲音視訊,資料挖掘,支援的東西多

7)可讀性高

特點

1)GIL:全局解釋鎖  Global Interpreter Lock

不能利用多塊cpu,是以使用多程序機制(并行)解決GIL,消耗資源。

java,go 可以支援多cpu

2)面向對象

3) 在java static 塊寫程式,就和寫腳本一樣

程式設計環境:

1)vim

在vim 中設定縮進為4個空格

touch /.vim/vimrc

 68set encoding=utf-8

 69set number                

 70set hlsearch      高亮顯示

 71set tabstop=4   一個tab四個空格

 72set shiftwidth=4

 73set expandtab

2)python       

         退出         exit() | Crtl+d

         幫助         help(str)   檢視字元串幫助文檔

3)pycharm

基礎知識

基本運算
Python學習筆記1

變量類型:變量的類型不指定,直接定義

基本類型和強制類型轉換
Python學習筆記1

如果不強制類型轉換,兩種不同的類型運算就會報錯,這就是強類型的程式設計語言的特點

Python學習筆記1
布爾類型和邏輯運算

True

False               0 None '' [] {}

1)      []

a=[]   // a=[1,2,3]

if a:

   print 'a:',a

else:

   print 'empty'

2)      None

a=None

if a == None

   print 'None'

if a is None:

   print 'None'    常用

3)and or not in

Python學習筆記1

if 'a' in[1,2,4]

print ...

注意:    盡量不用浮點數

list 清單

沒有長度限制,可以有元素也可無,支援不同類型的存儲

c={1,2,3,4}

c.append(5)

c.append(XX)

print c

tuple 元組

(1,2)

tuple 元組:長度不可變

str ,string,長度不可變

dict字典   鍵值對,key-value

d={

   "a":"abc",

   'b':123,

   'c':[1,2,3],

   'd':{'a':111}

}

print d['a']    abc

print d['b']    123

Python學習筆記1
兩種引用
Python學習筆記1

""" 可以換行,通常用作方法的注釋

Python學習筆記1
檔案操作

讀取檔案

with open('lalala.txt','r')as f:

   test=f.read()

print test

寫檔案(覆寫寫入)

out=miaomiao

with open('lalala.txt','w')as f:

   f.write(out)

Python學習筆記1

語句

1)pass    空操作。

if xxx='a'

   pass

    do...      程式主體

2)break      跳出目前循環。

3)continue 本次循環continue 以下的語句不執行。

4)while True永真循環用break跳出

   do...

   if xxx=='aaa'

       break

5)for 

1)一重循環和縮進

for item in [1,2,3,4,5]:    

         printitem         在循環語句中

print a                         不在循環語句中

python :  靠縮進區分語句是否在循環中

2)兩重循環

for item in [1,2,3,4,5]:

         printitem

                   foriteml in ['a','b','c']:

                            printiteml

Python學習筆記1
Python學習筆記1

小練習:輸出菱形。

注意:循環逆序輸出用 for x in range(4)[::-1]:

Python學習筆記1
輸入

input      輸入數字

raw_input  輸入字元串

a=input("input a number ")

print type(a),a     顯示輸入的類型

Python學習筆記1

一般情況下,用input不能輸入字元串

Python學習筆記1

通常用raw_input輸入字元串

Python學習筆記1

注意:但是以     ’字元串’  方式,input也能輸入字元串~~

Python學習筆記1

小練習:猜數字,三次機會,猜對就退出,大:提示大,小:提示小。

Python學習筆記1
Python學習筆記1

方法

定義類(駝峰命名法)

CreateStudentInfo

定義方法(小寫和下劃線)

def print_param(p1,p2,p200):

   print param

return 'a' //要是沒有return 預設return None

print_param('ss')   調用方法(隻看方法名,沒有方法的重載)

常用方法

  1. len()         求string list dict長度的方法

print len(c)

  1. del()          删除的方法,可以删除字典,清單list????

dd={'a':123,'b':456}

del dd['a']

Python學習筆記1
  1. type ()
  2. a)        []       :        list    清單
Python學習筆記1

b)        ()       :        tuple         元組

Python學習筆記1

c)        ‘’       :        str    字元串

Python學習筆記1

d)        {}       :        dict  字典(鍵值對)

Python學習筆記1

e)        None         :        NoneType

Python學習筆記1

f)         True          :        bool

Python學習筆記1
小練習

判斷輸入的年份,是否為閏年。(能被4整除但不能被100整除)

常識

yield  生成器

globle 全局變量

Python學習筆記1

解釋器

cpython    :traditional

pypy:use py explain py

jython       :java

大多支援2.7

異常處理

raise Execption('xxxx error')

try/except/finally

導入包

import

from xxxx import

斷言

assert a=='bsss','error info ...'

指派

a=1

a=[]

a={}

交換變量

b=2

a,b=b,a

Python學習筆記1

set 集合(去重)

應用:list去重

a=set('aba')    //隻有字元串才用這種

print a

a=set (['a','a','b'])

print 'b' in a 某個元素是否在集合内部

True   在

False  不在

b=set('abc')

print a-b  減沒了

print b-a  

print a&b   交集

print a|b  并集

print b>a   比較集合的數量 True

Python學習筆記1

給集合添加元素:   添加位置為第一個元素後面,即成為第二個元素

a.add('d')

把集合轉換list

print list(a)

Python學習筆記1

求出兩個集合中的相同元素和不同元素。

Python學習筆記1

子產品和包

子產品:     一個py檔案就是一個子產品(module)

包:         是一個包含一個_init_.py檔案的檔案夾

導入(引用)

import和from import 差別

import (變量等…)from 包.子產品 import   子產品中的(變量等…)
自己寫 不同包中變量名會相同外部的包,變量等會沖突
 用什麼導什麼
 import 一般不能計算,計算寫在方法裡
循環導包會産生錯誤

 a import b, b 不能import a,不能産生自循環

敲黑闆:是以應該局部導入,減少類似錯誤!!!!!

Python學習筆記1
Python學習筆記1
工具

pip install tornado

pip list   列出目前清單

pip install -r requirements.txt  依賴

requirements:

Django == 1.5.4             ==版本   什麼都不寫,最新的

MYSQL-python==1.2.4

pip uninstall <package_name>

pip uninstall -r requirements.txt   解除安裝所有

pip install -U <package_name>   更新

pip show -f <package_name> 顯示包所在的目錄

pip search <key>

pip list -o 查詢所有可以更新的包

下載下傳一個pip的包

pip install <package> -d <path>

mkdir myproject
Python學習筆記1

resources  存放證書等...

src :python, shell, SQL等…

test

src/python/launcher.py  入口檔案

src/python/test_str

src/python/test_str/__init__.pyc  運作python後生成的編譯檔案

src/python/test_str/__init__.py     通常一個可導入的包中,有這個檔案

vim __init__.py

if __name__=='__main__'     可以自己用,不能被别人導入??????

   print 'test str'

編寫入口檔案。

vim launcher.py

#encoding=utf8

import test_str

import time

while True:

         print'working...'

         time.sleep(1)

Python學習筆記1
Python學習筆記1

注意:

1.在launcher.py 可以importtest_str(别的包或子產品)

2.launcher 不能被别人import

3.#encoding=utf8    文本中如果想要有漢字就加這句。

字元串
基礎
Python學習筆記1
Python學習筆記1

字元串的拼接         "aaa" +"bbb"

字元串的乘法         a=a*3      "aaabbbaaabbbaaabbb"

a1=a[1]

print type(a1),a1      一個字母拿出來是字元串,不是字元,python中沒有字元概念

字元串中常用方法

# encoding=utf8

a='today is a  %s day %s'%('good','la')

print a.find('d')              找到a中第一次出現d的位置(從0開始哦)

print a.endswith('la')         a是否以la結束(true,false)

print a.replace(' ','_')            将a中空格替換成下劃線

print 語句中不能。。。。

print a.split('_')  以下劃線為分隔符,切分成list 

Python學習筆記1

索引切片         [start:end:step(步長)]

字元串的切片

a='today is a %s day %s'%('good','lia')

print '',a

print '0                     -10'

print '0:5 ',a[0:5]

print '1:5 ',a[1:5]

print '1:-1 ',a[1:-1]

print '-2:-1',a[-2:-1]                    ???

print '-1:-2',a[-1:-2]      切片是從左到右,是以從右到左沒有值

print a[-2:-3:-1]                           ???

print a[::-1]               #每個單詞反轉

Python學習筆記1
練習

a='abcdefghijklmnopqrstuvwxyz'

print a.find('i')

print a[-3:-1]

print a[23:26:]

print a[7:10]

print a[15:19:]

for i in range(26):

   if (i%2):

        a=a[:i]+','+a[i+1:]#   字元串本身不能直接指派,利用切片的方法改變字元串的值

print a[::-1]

l=len(a)

print l

import sys

for i in range(l):

   if (i%4==0):

       print a[i:i+4],

       if(i+4>l):

            sys.stdout.write('*'*(4-l%4))       

#       sys.stdout.write輸出無空格而且不換行

#       '*'*n          将*輸出n次

Python學習筆記1
清單的切片

l=[]

l=[1,2,3,4]

l=list('abcd')

print l[1]

print l[1:3]                  數空空    0a1b2c3d

print len(l)

ll=[1,2]+[3,4]             清單的拼接

print ll

Python學習筆記1

print '---------------------'

l2=[]

l2.append('haha')#  追加

print l2

for i in range(100):

   l2.append(i)

l4=[[0],[],[2]]

print l4[1:]

l3=[1,2,3,4]

l3.insert(3,0)              insert(位置,值)

print l3

l4=['a','b','c','a','c']

print l4.count('c')     統計字元出現的次數

l4.sort()

print l4

l4.reverse()      反轉

del l4[2]             删除

Python學習筆記1

append()傳回值為None

Python學習筆記1
Python學習筆記1

pop()                                彈出最後一個值,list中就沒有這個值了

extend()                              把兩個清單加在一起

append()                             往清單裡,添加元素

reverse()                              反轉

del l4[2]                                删除

insert(位置,值)        插入

count('c')                             統計字元(c)出現的次數

isinstance

L=[1,2,5,6,2,6,4,3,2,'waa']

import types

print [_ for _ in L if isinstance(_,types.IntType)]#   如果是int類型,才輸出

print [_ * 10 for _ in L if isinstance(_,types.IntType)]#  給每個值*10輸出

Python學習筆記1

#去重

L1=[1,2,5,6,2,6,4,3,2]

rs = []

[rs.append(_) for _ in L1 if _ not in rs]

print rs

print [_ for _ in L1 if (L1.index(_)+1) %2==0]

print "------------"

m=[1,3,4,2,5,6,2,7,3,2,7,10]

n=[2,5,8,2,4,3]

same = []

diff = []

[same.append(_) for _ in n if _  in m if _ not in same]

[diff.append(_) for _ in n if _ not in m]

[diff.append(_) for _ in m if _ not in n if_ not in diff]

print same

print diff

繼續閱讀