免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python學(xué)習(xí)

1,特殊規(guī)定

  • 縮進(jìn):沒有{},通過縮進(jìn)控制模塊范圍。所有縮進(jìn)一致即可,一般采用4個(gè)空格

  • 多行分隔符:斜杠( \),將一行代碼分多行顯示。語句中包含 [], {} 或 () 括號(hào)就不需要使用多行連接符。

total = item_one           item_two           item_three
  • 引號(hào):使用引號(hào)( ’ )、雙引號(hào)( " )、三引號(hào)( ‘’’ 或 “”" ) 來表示字符串。其中三引號(hào)可以由多行組成,編寫多行文本的快捷語法,常用于文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。

paragraph = """這是一個(gè)段落。包含了多個(gè)語句"""
  • 注釋:#號(hào)開頭或者使用三個(gè)單引號(hào)(’’’)或三個(gè)雙引號(hào)(""")進(jìn)行多行注釋。

'''這是多行注釋,使用單引號(hào)。這是多行注釋,使用單引號(hào)。'''"""這是多行注釋,使用雙引號(hào)。這是多行注釋,使用雙引號(hào)。"""

2,中文編碼

Python2中默認(rèn)的編碼格式是 ASCII 格式,在沒修改編碼格式時(shí)無法正確打印漢字。

#!/usr/bin/python# -*- coding: UTF-8 -*-

Python3.X 源碼文件默認(rèn)使用utf-8編碼,所以可以正常解析中文,無需指定 UTF-8 編碼。

3,輸入輸出

1)輸入

raw_input

從標(biāo)準(zhǔn)輸入讀取一個(gè)行,并返回一個(gè)字符串(去掉結(jié)尾的換行符):

username = raw_input("請(qǐng)輸入賬戶:")

input

與raw_input類似,但是input 可以接收一個(gè)Python表達(dá)式作為輸入,并將運(yùn)算結(jié)果返回。

#!/usr/bin/python# -*- coding: UTF-8 -*-  str = input("請(qǐng)輸入:")print "你輸入的內(nèi)容是: ", str

結(jié)果:

請(qǐng)輸入:[x*5 for x in range(2,10,2)]你輸入的內(nèi)容是:  [10, 20, 30, 40]

密文輸入

    # Author:dancheng    //導(dǎo)入密碼密文文件    import getpass    password = getpass.getpass("password:");    print(password)

2)輸出:print

counter = 100 # 賦值整型變量print ("Hello, Python!")print counter

3)File 對(duì)象方法

file 對(duì)象提供了操作文件的一系列方法。

open(打開文件)

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打開一個(gè)文件fo = open("foo.txt", "w")print "文件名: ", fo.nameprint "是否已關(guān)閉 : ", fo.closedprint "訪問模式 : ", fo.modeprint "末尾是否強(qiáng)制加空格 : ", fo.softspace  #file.softspace 如果用print輸出后,必須跟一個(gè)空格符,則返回false。否則返回true。
file object = open(file_name [, access_mode][, buffering])

access_mode:打開文件的模式:只讀,寫入,追加等。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問模式為只讀?。

模式描述
t文本模式 (默認(rèn))。
x寫模式,新建一個(gè)文件,如果該文件已存在則會(huì)報(bào)錯(cuò)。
b二進(jìn)制模式。

打開一個(gè)文件進(jìn)行更新(可讀可寫)。
r以只讀方式打開文件。文件的指針將會(huì)放在文件的開頭。這是默認(rèn)模式。rb是以二進(jìn)制格式打開一個(gè)文件用于只讀。=
w打開一個(gè)文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。=
a打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。

buffering:如果buffering的值被設(shè)為0,就不會(huì)有寄存。如果buffering的值取1,訪問文件時(shí)會(huì)寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。

close()

File 對(duì)象的 close()方法刷新緩沖區(qū)里任何還沒寫入的信息,并關(guān)閉該文件,這之后便不能再進(jìn)行寫入。

當(dāng)一個(gè)文件對(duì)象的引用被重新指定給另一個(gè)文件時(shí),Python 會(huì)關(guān)閉之前的文件。用 close()方法關(guān)閉文件是一個(gè)很好的習(xí)慣。

write()

可將任何字符串寫入一個(gè)打開的文件。需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。

write()方法不會(huì)在字符串的結(jié)尾添加換行符(’\n’):

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打開一個(gè)文件fo = open("foo.txt", "w")fo.write( "www.runoob.com!\nVery good site!\n") # 關(guān)閉打開的文件fo.close()

read()

read()方法從一個(gè)打開的文件中讀取一個(gè)字符串。需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打開一個(gè)文件fo = open("foo.txt", "r ")str = fo.read(10)print "讀取的字符串是 : ", str   #輸出:www.runoob# 關(guān)閉打開的文件fo.close()

文件定位

tell()方法告訴你文件內(nèi)的當(dāng)前位置, 換句話說,下一次的讀寫會(huì)發(fā)生在文件開頭這么多字節(jié)之后。

seek(offset [,from])方法改變當(dāng)前文件的位置。Offset變量表示要移動(dòng)的字節(jié)數(shù)。From變量指定開始移動(dòng)字節(jié)的參考位置。

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打開一個(gè)文件fo = open("foo.txt", "r ")str = fo.read(10)print "讀取的字符串是 : ", str # 查找當(dāng)前位置position = fo.tell()print "當(dāng)前文件位置 : ", position # 把指針再次重新定位到文件開頭position = fo.seek(0, 0)str = fo.read(10)print "重新讀取字符串 : ", str# 關(guān)閉打開的文件fo.close()

4)OS 對(duì)象方法

提供了處理文件及目錄的一系列方法。

rename()

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 重命名文件test1.txt到test2.txt。os.rename( "test1.txt", "test2.txt" )

remove()

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 刪除一個(gè)已經(jīng)存在的文件test2.txtos.remove("test2.txt")

mkdir()

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 創(chuàng)建目錄testos.mkdir("test")

chdir():改變當(dāng)前的目錄

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 將當(dāng)前目錄改為"/home/newdir"os.chdir("/home/newdir")

getcwd()

顯示當(dāng)前的工作目錄。

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 給出當(dāng)前的目錄print os.getcwd()

rmdir()

刪除目錄,目錄名稱以參數(shù)傳遞。

#!/usr/bin/python# -*- coding: UTF-8 -*-import os # 刪除”/tmp/test”目錄os.rmdir( "/tmp/test"  )

os.path.exists

檢驗(yàn)文件、路徑是否存在。

import osos.path.exists(test_file) #test_file可以是文件或路徑#True

4,數(shù)據(jù)類型

Python有五個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型:

1)Numbers(數(shù)字)

不可改變的數(shù)據(jù)類型,這意味著改變數(shù)字?jǐn)?shù)據(jù)類型會(huì)分配一個(gè)新的對(duì)象。
包括4種:int(有符號(hào)整型),long(長整型[也可以代表八進(jìn)制和十六進(jìn)制],以L結(jié)尾),float(浮點(diǎn)型),complex(復(fù)數(shù)) 。

long 類型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 類型數(shù)據(jù)溢出后會(huì)自動(dòng)轉(zhuǎn)為long類型。在 Python3.X 版本中 long 類型被移除,使用 int 替代。

2)String(字符串)

python的字串列表有2種取值順序:

從左到右索引默認(rèn)0開始的從右到左索引默認(rèn)-1開始的

str = 'Hello World!'print str[0]        # 輸出字符串中的第一個(gè)字符print str[2:5]      # 輸出字符串中第三個(gè)至第六個(gè)之間的字符串print str[2:]       # 輸出從第三個(gè)字符開始的字符串print str * 2       # 輸出字符串兩次print str   "TEST"  # 輸出連接的字符串

3)List(列表)

語法和字符串一致。

#!/usr/bin/python# -*- coding: UTF-8 -*- list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]tinylist = [123, 'john'] print list               # 輸出完整列表print list[0]            # 輸出列表的第一個(gè)元素print list[1:3]          # 輸出第二個(gè)至第三個(gè)元素 print list[2:]           # 輸出從第三個(gè)開始至列表末尾的所有元素print tinylist * 2       # 輸出列表兩次print list   tinylist    # 打印組合的列表

4)Tuple(元組)

元組用 () 標(biāo)識(shí)。內(nèi)部元素用逗號(hào)隔開。但是元組不能二次賦值,相當(dāng)于只讀列表。

#!/usr/bin/python# -*- coding: UTF-8 -*- tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )tinytuple = (123, 'john') print tuple               # 輸出完整元組print tuple[0]            # 輸出元組的第一個(gè)元素print tuple[1:3]          # 輸出第二個(gè)至第四個(gè)(不包含)的元素 print tuple[2:]           # 輸出從第三個(gè)開始至列表末尾的所有元素print tinytuple * 2       # 輸出元組兩次print tuple   tinytuple   # 打印組合的元組

list( tup ) 元組轉(zhuǎn)列表

#!/usr/bin/python# -*- coding: UTF-8 -*- aTuple = (123, 'xyz', 'zara', 'abc');aList = list(aTuple) print "列表元素 : ", aList

5)Dictionary(字典)

兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。

字典用"{ }"標(biāo)識(shí)。字典由索引(key)和它對(duì)應(yīng)的值value組成。

#!/usr/bin/python# -*- coding: UTF-8 -*- dict = {}dict['one'] = "This is one"dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'}  print dict['one']          # 輸出鍵為'one' 的值:  This is oneprint dict[2]              # 輸出鍵為 2 的值: This is twoprint tinydict             # 輸出完整的字典print tinydict.keys()      # 輸出所有鍵:['dept', 'code', 'name']print tinydict.values()    # 輸出所有值

6)數(shù)據(jù)類型轉(zhuǎn)換

函數(shù)描述
int(x [,base])將x轉(zhuǎn)換為一個(gè)整數(shù)
long(x [,base] )將x轉(zhuǎn)換為一個(gè)長整數(shù)
float(x)將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real [,imag])創(chuàng)建一個(gè)復(fù)數(shù)
str(x)將對(duì)象 x 轉(zhuǎn)換為字符串
repr(x)將對(duì)象 x 轉(zhuǎn)換為表達(dá)式字符串
eval(str)用來計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s)將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s)將序列 s 轉(zhuǎn)換為一個(gè)列表
set(s)轉(zhuǎn)換為可變集合
dict(d)創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。
frozenset(s)轉(zhuǎn)換為不可變集合
chr(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x)將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x)將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x)將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串

5,運(yùn)算符

除了通用的運(yùn)算符,下面為一些python特有的運(yùn)算。

運(yùn)算符描述實(shí)例
**冪 - 返回x的y次冪a=10,b=20;a**b 輸出結(jié)果為10的20次方
//取整除 - 返回商的整數(shù)部分(向下取整)9//2 輸出為4;-9//2 輸出為-5

成員運(yùn)算符:in(not in)

如果在指定的序列中找到值返回 True,否則返回 False。

a = 10list = [1, 2, 3, 4, 5 ]; if ( a in list ):   print "1 - 變量 a 在給定的列表中 list 中"

身份運(yùn)算符:is(is not)

is 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象。
x is y, 類似 id(x) == id(y) , 如果引用的是同一個(gè)對(duì)象則返回 True,否則返回 False。

6,結(jié)構(gòu)性語句

1)if-else

#!/usr/bin/python# -*- coding: UTF-8 -*-num = 5     if num == 3:            # 判斷num的值    print 'boss'        elif num == 2:    print 'user'elif num == 1:    print 'worker'elif num < 0:           # 值小于零時(shí)輸出    print 'error'else:    print 'roadman'     # 條件均不成立時(shí)輸出

2)while-else

count = 0while (count < 9):   print 'The count is:', count   count = count   1
count = 0while count < 5:   print count, " is  less than 5"   count = count   1else:   print count, " is not less than 5"

3)for-else

else用法和while一致。

for letter in 'Python':     # 第一個(gè)實(shí)例   print '當(dāng)前字母 :', letter

4)break,continue,pass

pass是空語句,是為了保持程序結(jié)構(gòu)的完整性,一般用于占位。

7,日期和時(shí)間

#!/usr/bin/python# -*- coding: UTF-8 -*- import time;  # 引入time模塊 ticks = time.time()   #輸出:1459994552.51localtime = time.localtime(time.time())  #輸出:time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)localtime = time.asctime( time.localtime(time.time()) ) #格式化時(shí)間輸出:Thu Apr  7 10:05:21 2016print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 格式化成2016-03-20 11:45:39形式

8,函數(shù)

#!/usr/bin/python# -*- coding: UTF-8 -*- # 定義函數(shù)def printme( str ):   "打印任何傳入的字符串"   print str   return # 調(diào)用函數(shù)printme("我要調(diào)用用戶自定義函數(shù)!")

9,模塊(Module)

Module是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語句。

1)使用

support.py 模塊:

def print_func( par ):   print "Hello : ", par   return

test.py 文件代碼:

#!/usr/bin/python# -*- coding: UTF-8 -*-# 導(dǎo)入模塊import support # 現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了support.print_func("Runoob")

或者:

from fib import print_funcprint_func("Runoob")

或者:

from modname import *

2)搜索路徑

當(dāng)你導(dǎo)入一個(gè)模塊,Python 解析器對(duì)模塊位置的搜索順序是:

1、當(dāng)前目錄2、如果不在當(dāng)前目錄,Python 則搜索在 shell 變量 PYTHONPATH 下的每個(gè)目錄。3、如果都找不到,Python會(huì)察看默認(rèn)路徑。UNIX下,默認(rèn)路徑一般為/usr/local/lib/python/。

模塊搜索路徑存儲(chǔ)在 system 模塊的 sys.path 變量中。

在import模塊之前可以手動(dòng)導(dǎo)入模塊路徑:

CWD = os.path.dirname(__file__)sys.path.append(os.path.abspath(os.path.join(CWD, "./common")))

10,異常處理

python提供了兩個(gè)非常重要的功能來處理python程序在運(yùn)行中出現(xiàn)的異常和錯(cuò)誤:

1)異常處理

異常即是一個(gè)事件,該事件會(huì)在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。
一般情況下,在Python無法正常處理程序時(shí)就會(huì)發(fā)生一個(gè)異常。
異常是Python對(duì)象,表示一個(gè)錯(cuò)誤。
當(dāng)Python腳本發(fā)生異常時(shí)我們需要捕獲處理它,否則程序會(huì)終止執(zhí)行。

try/except(捕捉異常)

#!/usr/bin/python# -*- coding: UTF-8 -*-try:    fh = open("testfile", "w")    fh.write("這是一個(gè)測試文件,用于測試異常!!")except IOError:  # 如果不寫IOError,表示捕獲所有異常    print "Error: 沒有找到文件或讀取文件失敗"else:    print "內(nèi)容寫入文件成功"    fh.close()

try-finally

無論是否發(fā)生異常都將執(zhí)行最后的代碼。

#!/usr/bin/python# -*- coding: UTF-8 -*-try:    fh = open("testfile", "w")    fh.write("這是一個(gè)測試文件,用于測試異常!!")finally:    print "Error: 沒有找到文件或讀取文件失敗"

raise觸發(fā)異常

def functionName( level ):    if level < 1:        raise Exception("Invalid level!", level)        # 觸發(fā)異常后,后面的代碼就不會(huì)再執(zhí)行

用戶自定義異常

自定義異常類如下:

class Networkerror(RuntimeError):    def __init__(self, arg):        self.args = arg

使用:

try:    raise Networkerror("Bad hostname")except Networkerror,e:    print e.args

2)斷言(Assertions)

11,面向?qū)ο?類

1)創(chuàng)建類

#!/usr/bin/python# -*- coding: UTF-8 -*- class Employee:   '所有員工的基類'   empCount = 0    def __init__(self, name, salary): # __init__()方法是一種特殊的方法,被稱為類的構(gòu)造函數(shù)或初始化方法,當(dāng)創(chuàng)建了這個(gè)類的實(shí)例時(shí)就會(huì)調(diào)用該方法      self.name = name      self.salary = salary      Employee.empCount  = 1      def displayCount(self):# self 代表類的實(shí)例,self 在定義類的方法時(shí)是必須有的,雖然在調(diào)用時(shí)不必傳入相應(yīng)的參數(shù)。這也是類方法與普通方法的區(qū)別。self 代表的是類的實(shí)例,代表當(dāng)前對(duì)象的地址,而 self.__class__ 則指向類     print "Total Employee %d" % Employee.empCount    def displayEmployee(self):      print "Name : ", self.name,  ", Salary: ", self.salary

類的實(shí)例化:

"創(chuàng)建 Employee 類的第一個(gè)對(duì)象"emp1 = Employee("Zara", 2000)emp1.displayEmployee() #訪問類方法print "Employee.__doc__:", Employee.__doc__ #類的文檔字符串 輸出:所有員工的基類print "Employee.__name__:", Employee.__name__  #類名 print "Employee.__module__:", Employee.__module__ # 類定義所在的模塊(類的全名是'__main__.className',如果類位于一個(gè)導(dǎo)入模塊mymod中,那么className.__module__ 等于 mymod) print "Employee.__bases__:", Employee.__bases__ #類的所有父類構(gòu)成元素(包含了一個(gè)由所有父類組成的元組) print "Employee.__dict__:", Employee.__dict__  #類的屬性(包含一個(gè)字典,由類的數(shù)據(jù)屬性組成) 

2)對(duì)象銷毀(垃圾回收)

Python 的垃圾收集器實(shí)際上是一個(gè)引用計(jì)數(shù)器和一個(gè)循環(huán)垃圾收集器。作為引用計(jì)數(shù)的補(bǔ)充, 垃圾收集器也會(huì)留心被分配的總量很大(及未通過引用計(jì)數(shù)銷毀的那些)的對(duì)象。 在這種情況下, 解釋器會(huì)暫停下來, 試圖清理所有未引用的循環(huán)。

析構(gòu)函數(shù) del

在對(duì)象銷毀的時(shí)候被調(diào)用,當(dāng)對(duì)象不再被使用時(shí)運(yùn)行。

class Point:   def __init__( self, x=0, y=0):      self.x = x      self.y = y   def __del__(self):      class_name = self.__class__.__name__      print class_name, "銷毀"

3)繼承

#!/usr/bin/python# -*- coding: UTF-8 -*- class Parent:        # 定義父類   parentAttr = 100   def __init__(self):      print "調(diào)用父類構(gòu)造函數(shù)"    def parentMethod(self):      print '調(diào)用父類方法'    def setAttr(self, attr):      Parent.parentAttr = attr    def getAttr(self):      print "父類屬性 :", Parent.parentAttr class Child(Parent): # 定義子類   def __init__(self):      print "調(diào)用子類構(gòu)造方法"    def childMethod(self):      print '調(diào)用子類方法' c = Child()          # 實(shí)例化子類c.childMethod()      # 調(diào)用子類的方法c.parentMethod()     # 調(diào)用父類方法c.setAttr(200)       # 再次調(diào)用父類的方法 - 設(shè)置屬性值c.getAttr()          # 再次調(diào)用父類的方法 - 獲取屬性值
  • 在調(diào)用基類的方法時(shí),需要加上基類的類名前綴,且需要帶上 self 參數(shù)變量。區(qū)別在于類中調(diào)用普通函數(shù)時(shí)并不需要帶上 self 參數(shù)

  • Python 總是首先查找對(duì)應(yīng)類型的方法,如果它不能在派生類中找到對(duì)應(yīng)的方法,它才開始到基類中逐個(gè)查找。(先在本類中查找調(diào)用的方法,找不到才去基類中找)。

  • 同樣也支持方法重載,運(yùn)算符重載

4)類屬性與方法

類的私有屬性(__private_attrs)

兩個(gè)下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內(nèi)部的方法中使用時(shí) self.__private_attrs。

類的私有方法(__private_method)

兩個(gè)下劃線開頭,聲明該方法為私有方法,不能在類的外部調(diào)用。在類的內(nèi)部調(diào)用 self.__private_methods

系統(tǒng)方法(foo

頭尾雙下劃線方法,定義的是特殊方法,一般是系統(tǒng)定義名字 ,類似 init() 之類的。

protected變量(_foo):

以單下劃線開頭,只能允許本身與子類進(jìn)行訪問,不能用于 from module import *

12,db通信

13,網(wǎng)絡(luò)通信

socket通信

服務(wù)器端

#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:server.py import socket               # 導(dǎo)入 socket 模塊 s = socket.socket()         # 創(chuàng)建 socket 對(duì)象host = socket.gethostname() # 獲取本地主機(jī)名port = 12345                # 設(shè)置端口s.bind((host, port))        # 綁定端口 s.listen(5)                 # 等待客戶端連接while True:    c,addr = s.accept()     # 建立客戶端連接    print '連接地址:', addr    c.send('歡迎訪問菜鳥教程!')    c.close()                # 關(guān)閉連接

客戶端

#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:client.py import socket               # 導(dǎo)入 socket 模塊 s = socket.socket()         # 創(chuàng)建 socket 對(duì)象host = socket.gethostname() # 獲取本地主機(jī)名port = 12345                # 設(shè)置端口號(hào) s.connect((host, port))print s.recv(1024)s.close()

14,多線程

#!/usr/bin/python# -*- coding: UTF-8 -*- import threadimport time # 為線程定義一個(gè)函數(shù)def print_time( threadName, delay):   count = 0   while count < 5:      time.sleep(delay)      count  = 1      print "%s: %s" % ( threadName, time.ctime(time.time()) ) # 創(chuàng)建兩個(gè)線程try:   thread.start_new_thread( print_time, ("Thread-1", 2, ) )   thread.start_new_thread( print_time, ("Thread-2", 4, ) )except:   print "Error: unable to start thread" while 1:   pass

15,GUI

16,JSON

json.dumps

對(duì)象編碼成 JSON 字符串。

語法:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

參數(shù)說明:

  • skipkeys=True:在encoding過程中,dict對(duì)象的key只可以是string對(duì)象,如果是其他類型,那么在編碼過程中就會(huì)拋出ValueError的異常。skipkeys可以跳過那些非string對(duì)象當(dāng)作key的處理。

  • ensure_ascii:輸出真正的中文需要指定ensure_ascii=False

  • check_circular

  • allow_nan

  • cls

  • indent=2:參數(shù)根據(jù)數(shù)據(jù)格式縮進(jìn)顯示,讀起來更加清晰;indent的數(shù)值,代表縮進(jìn)的位數(shù)。

  • separators=(’,’,’:’):去掉,:后面的空格,美化輸出結(jié)果。

  • encoding

  • default

  • sort_keys=True:按照字典排序(a到z)輸出。

#!/usr/bin/pythonimport jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]json = json.dumps(data)print json

python 原始類型向 json 類型的轉(zhuǎn)化對(duì)照表:

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

json.loads

用于解碼 JSON 數(shù)據(jù)。

#!/usr/bin/pythonimport jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)print text
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
怎么判斷數(shù)據(jù)類型
Python 3 教程一:入門
Python 函數(shù) | w3cschool菜鳥教程
Python新手教程:變量類型
python基礎(chǔ)3之文件操作、字符編碼解碼、函數(shù)介紹
python
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服