已經學習python兩天了,總結一下學習成果。
初學python,如果有寫錯的地方,還望各位大牛指出。
先列一列作品:
python socket 客戶端測試程式
easygui 猜數遊戲
看雪登入器
涉及到的知識點:
物件導向
socket庫
httplib2庫
easygui
小知識點:
通過這種方式匯入模組中的全部內容。
from socket import *
import easygui as g
import random
rnum = random.randrange(0,10) #產生隨機數
比如 aa廣告ss
前面文字是aa , 後面文字是ss,中間文字就是廣告
getmiddlestr('aa廣告ss','aa','ss') == 廣告 此表示式成立
def
getmiddlestr
(content,startstr,endstr):
startindex = content.index(startstr)
if startindex>=0:
startindex +=len(startstr)
endindex = content.index(endstr)
return content[startindex:endindex]
pasword為要求md5的字串
import hashlib
pasword = 'hello'
m=hashlib.md5() #獲取md5物件
m.update(pasword.encode())
md5=m.hexdigest()
類成員函式的self引數:這個引數相當於c++的this指標。
被__包圍的函式是類的私有函式。 其他的函式預設為公有函式。
easygui 是乙個非常簡單的pythongui介面庫,正如它名字中說的一樣easy。
感謝小甲魚的翻譯文件:
# easy gui demo
# 無名俠
# 2015.7.3
# 猜數字遊戲。
import easygui as g
import random
g.msgbox('歡迎使用 猜數遊戲~',ok_button='戳進來!')
rnum = random.randrange(0,10) #產生隨機數
while
1: innum = g.integerbox(msg='孩紙,輸入你心儀的數字吧~',lowerbound=0,upperbound=10)
if innum==rnum:
g.msgbox('哇哇,好厲害,好厲害!')
break
pass
g.msgbox('孩紙 你還需要努力哦~')
pass
這是乙個非常強大的http庫,我昨天用這個庫寫了乙個看雪論壇的登入器。
# python 看雪使用者資訊查詢
# 無名俠
'這個函式用於計算密碼的md5值'
m=hashlib.md5() #獲取md5物件
m.update(pasword.encode())
md5=m.hexdigest()
return md5
class
pediy:
'看雪協議類'
securitytoken=''
cookies=''
username=''
def__init__
(self):
#獲取securitytoken的值
print('初始化失敗!無法獲取securitytoken')
deflogin
(self,username,password):
#登陸看雪 成功返回使用者名稱
if context.find('登入錯誤')!=-1:
#print(context)
print('登陸失敗!賬號或密碼錯誤!')
return
false
#更新cookies
self.cookies=resp['set-cookie']
print(resp)
return
true
print('看雪python版')
u=pediy()
uname=input('前輸入你的看雪使用者名稱:')
pas=input('請輸入你在看雪的密碼:')
ifnot u.login(uname,pas):
print('登陸失敗')
else:
print('登陸成功')
涉及到的所有知識點已經在前面呈現過啦。
疑問:httplib2 請求後返回的協議頭字典裡面怎麼只有一條cookies?
socket庫是python自帶的乙個庫非常好用哈,符合規範,上手很快。
作為一名想用python做利刃的geeker,不掌握socket是不行的。 今天我好想試試原始套接字/icmp等。
#coding=utf-8
# python socket 程式
# 無名俠
# 2015.7.3
from socket import *
import time
host = input('請輸入伺服器ip:') #ip
port = int(input('請輸入目標埠:')) #埠
bufsize = 1024
#緩衝區大小
sock = socket(af_inet,sock_stream) #建立套接字
print('正在為你搭橋連線.......')
start = time.time()
try:
sock.connect((host,port))
except ioerror:
print('無法連線伺服器:'+host)
exit()
print('已經連線 連線用時:'+str(int(time.time()-start))+'\n')
start=time.time()
while
1: data = input('> ')
ifnot data:
break
sock.send(data.encode())
data=sock.recv(bufsize).decode();
ifnot data:
continue
print('\n')
print(data)
sock.close();
print ('已經斷開連線! 連線時長:'+str(int(time.time()-start))+'\n')
Python學習筆記 2
python學習筆記 2 1 error and exceptions 錯誤和異常 語法錯誤是在編譯時檢查,但python允許在程式執行期間檢查錯誤。當檢查出錯誤,python直譯器丟擲 產生 觸發乙個異常。要增加錯誤檢測或異常處理到 使用try except語句。語法如下 try try runn...
python學習筆記 2
八 type函式的作用是顯示值和變數的型別,id以值或變數為引數,返回值是一整數.type world type str id 123 11602164 九 python函式的定義形式 def arg1,arg2,argn 函式的名字也必須以字母開頭,可以包括下劃線 但不能把python的 關鍵字定...
Python學習筆記2
關於資料型別,之前已經介紹了字串,整數和浮點數,在使用這些資料型別的時候要注意邏輯錯誤的產生。例如 car input lamborghini tune ups gifts input gifts total car gifts print total total 我們想得到的結果應該是4000,但...