Python學習筆記 2

2021-07-03 14:50:11 字數 4378 閱讀 5498

已經學習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,但...