python學習系列 day09

2021-09-16 20:59:02 字數 3443 閱讀 3007

一、圖形介面

1、tkinter

2、turtle

二、網路程式設計

1、tcp程式設計

(1)、 客戶端

import socket

s = socket.socket(socket.af_inet, socket.sock_stream)#af_inet表示利用的ipv4,af_inet6表示用ipv6。sock_stream表示面向流的tcp連線

s.send(data)#向伺服器傳送資料

buffer =

while true:

rec_data = s.recv(max) # 一次性接收max個大小的資料

if  not rec_data or rec_data.decode('utf-8') == 『end':

break

print(rec_data.decode('utf-8'))

s.send('exit')#向伺服器傳送結束

s.close()#關閉鏈結

(2)服務端

import socket,time,threading

s = socket.socket(socket.af_inet, socket.sock_stream)

s.bind((addr, port))#接收的是乙個tuple,與本伺服器的ip位址和埠繫結

s.listen(5)#監聽,等待連線,最大連線數為5

print('waiting for connection...')

def tcplink(sock, addr):

print('accept new connection from %s:%s.' % addr)#addr是乙個tupple

req = s.recv(1024)

print('receive data: %s from client.' % req.decode('utf-8'))

for name in ['jamson', 'bob', 'marry', 'tom', 'end']:

s.send(name.encode('utf-8'))

time.sleep(2)

r = s.recv(1024)

if not r or r.decode('utf-8') == 'exit' :

s.close()

while true:

sock,addr = s.accept()

t = threading.thread(target = tcplink, args = (sock, addr))

t.start()

2、udp程式設計:

(1)服務端udp_server.py

import socket,os

s = socket.socket(socket.af_inet, socket.sock_dgram)#sock_dgram表示為udp

print('current pid is %s.' % os.getpid())

s.bind(('127.0.0.1',9990)

while true:

data,addr = s.recvfrom(1024)

print('receive from %s:%s.' % addr)

s.sendto(b'hello,%s' % data, addr)#引數為資料和乙個tuple位址(ip, port)

(2)客戶端udp_client.py

import socket

s = socket.socket(socket.af_inet, scoket_sock_dgram)

for data in [b'jamson', b'tom', b'james']

s.sendto(data,('127.0.0.1',9990))

print(s.recvfrom(1024).decode('utf-8'))

s.close()

三、資料庫

1、sqlite3 

python有自帶的資料系統sqlite3,小型資料庫,主要用於嵌入式系統和移動應用

import sqlite3

conn = sqlite3.connect('test.db') #如果沒有該資料庫,會自動建立乙個資料庫

cursor = conn.cursor()

cursor.execute('create table user (id varchar(10) primary key, account varchar(20), password varchar(20))')

cursor.execute('insert into user (id, account, password) values(\'1\', \'jamsonwan\', \'jamson123gbk\')' )

cursor.execute('select * from user')

values = cursor.fetchall()#結果是乙個list,每乙個元素是乙個tuple

cursor.close()

conn.commit()#提交事務

conn.close()

2、mysql

(1)、mysql的安裝以及配置

首先更新系統軟體包:sudo apt-get update

配置mysql:sudo mysql_secure_installation #請記住登入mysql的密碼

建立普通使用者:

sudo mysql -r root -p

create user 'jamson'  @'localhost' identified by 'jamson' ; #新建本地使用者jamson,密碼為jamson。若要遠端,請把localhost換成遠端的ip位址

grant all on *.* to 'jamson' @'localhost' with grant option;  #給使用者jamson授權

這樣就可以終端登入mysql。mysql -u jamson -p

(2)、python的mysql

import mysql.connector

conn = mysql.connector.connect(user='jamson', password = 'jamson', database='test')#其餘操作與sqlite一樣

cursor = conn.cursor()

cursor.execute('create table user(id int primary key, name varchar(20)')

cursor.execute('insert into user(id,name) values (%s, %s)', [1, 'jamson'])

conn.commit()

cursor.close()

conn.close()

執行一次insert,delete等操作要commit一次,提交事務

3、orm框架   sqlalchemy

python學習筆記day09 函式

函式的定義和函式的呼叫不是一回事,程式執行時,遇到定義函式,只會執行定義函式名處,裡面的函式體這個時候是不會執行的 只有到呼叫函式處才會執行裡面的函式體 沒有返回值 無 return 返回none 只有 return 返回none return none 返回none 有返回值 可以返回任意資料型別...

python之路day09 函式

s 金老闆啊 print len s 內建函式 s 金老闆啊 def my len i 0 for k in s i 1 print i print my len none s 金老闆啊 def my len 自定義函式 i 0 for k in s i 1 print i return i 返回值...

Day09 學習CSS基礎

在html的頭部用標籤寫css樣式,裡面定義選擇器定義不同的屬性值 一種選擇器 選擇所以h1標籤 color顏色屬性為red h1style rel stylesheet href css style.css style color yellow 標題h1 哪種方式生效根據就近原則,先執行的會被後執...