python之路(sed,函數,三元運算)

python之路(sed,函數,三元運算)

1、sed集合

 

一、set無序,不重複序列python

二、建立json

 1 se = {11,22,33,33,44}
 2 list() #只要是一個類加上()自動執行 list __init__
 3 list = [11,22]
 4 
 5 s1 = set(list)
 6 print(s1)
 7 
 8 #建立集合
 9 s1 = {11,22}
10 s2 = set('可循環的')
11 
12 #操做集合
13 s = set()
14 print(s)
15 s.add(123)#可追加不可重複
16 s.add(123)
17 s.clear()
18 print(s)

三、功能app

 1 #取不一樣都元素
 2 s1 = {11,22,33}
 3 s2 = {22,33,44}
 4 s1.difference(s2) #s1中存在s2中不存在的11
 5 s2.difference(s1) #s2中存在s1中不存在的44
 6 s3 = s1.symmetric_difference(s2)#取s1,s2不一樣的值11,44
 7 print(s3)
 8 s1.difference_update(s2)#把s1中存在s2中不存在的更新到s1
 9 s1.symmetric_difference_update(s2)#取s1,s2不一樣的值11,44更新到s1
10 print(s1)
11 
12 
13 #刪除
14 s1 = {11,22,33}
15 s1.discard(11) #指定移除11,若是沒有移除對象不報錯也不移除
16 s1.remove(1111)#指定移除,若是額沒有移除對象,則報錯
17 ret = s1.pop()#隨機移除,移除內個元素,就把內個元素賦值給ret
18 print(ret)
19 
20 #取並集
21 s1 = {'aa'}
22 list = [11,22,33,44]
23 s1.update(list) #加一個迭代的元素,更新到s1,s1的初始值不能爲空
24 print(s1)
25 
26 
27 s1 = {'aa'}
28 list = [11,22,33,44]
29 s1.update(list) #加一個迭代的元素,更新到s1,s1的初始值不能爲空
30 print(s1)

2、函數

一、函數結構函數

1 # def f1():
2 #     asdad
3 #     adfasad
4 #     adsfasdf
5 # 一、def關鍵字,建立函數
6 # 二、函數名
7 # 三、()
8 # 四、函數體
9 #五、返回值

二、函數特性spa

1 def f1():
2     print(123)
3     return '111'
4     print(456)
5 ret = f1()    #下函數中,一旦執行return,函數執行過程當即終止
6 #默認返回值None

三、各類參數指針

 1 #一、普通參數(將嚴格按照順序講師級參數賦值給形式參數)
 2 #二、默認參數(必須防止在參數列表的最後)
 3 #三、指定參數(將實際參數賦值給形式參數)
 4 #四、*  默認將傳入的參數所有放在一個元組裏,f1(*li)
 5 #  **  默認將傳入的參數所有放在一個字典裏,f1(**dic)
 6 
 7 def send(xxoo,content,xx):         #普通參數一一對應
 8     print('發送成功',xxoo,content,xx)
 9     return True
10 while True:
11     em = input('輸入郵箱')
12     result = send(em,'SB','ok')
13     if result == True:
14         print('成功')
15     else:
16         print('失敗')
17 
18 
19 def send(xxoo,content,xx='ok'):      #默認參數,能夠輸入兩個,則xx等於ok,輸入三個則xx等於輸入值
20     print('發送成功',xxoo,content,xx)   #若是給某個參數設置爲默認參數,那麼這個參數必須放在最後
21     return True
22 send('name','zk')
23 
24 def send(xxoo,content):     #指定參數
25     print(xxoo,content)
26     return True
27 send(content='123',xxoo='abc')
28 
29 
30 def f1(*args):       #動態參數*
31     print(args)
32 f1(11,22,33,44)         #參數放在一個元組中
33 
34 li = [11,22,33,44]
35 f1(li)    #把列表做爲一個元素
36 f1(*li)    #把列表裏的每個元組做爲元組裏的一個元素
37 
38 
39 def f1(**args):       #動態參數**
40    print(args)
41 f1(name='alex')         #指定參數放在一個字典中
42 dic={'k1':'v1','k2':'v2'}
43 f1(kk=dic)
44 f1(**dic)   #把字典賦值給動態參數

三、格式化輸出code

 1 #格式化輸出
 2 #str format格式化輸出
 3 s1 = "i am {0}, age {1}".format("alex", 18)
 4 print(s1)
 5 s2 = "i am {0}, age {1}".format(*["alex", 18])
 6 print(s2)
 7 
 8 s1 = "i am {name}, age {age}".format(name='alex', age=18) #前面寫的name後面傳入參數時必須也是name
 9 dic={'name':'alex','age':18}
10 s2 = "i am {name}, age {age}".format(**dic)
11 print(s1,'\n',s2)

四、def執行順序orm

1 def f1(a1, a2):
2     return a1 + a2
3 def f1(a1, a2):
4     return a1 * a2
5 ret = f1(8, 8)   #從上向下執行 ret=64,第一個f1不生效
6 print(ret)

五、傳參數對象

1 def f1(a1):
2     a1.append(999)
3 li = [11,22,33,44]
4 f1(li)
5 print(li) #li=11,22,33,44,999#強調傳的是引用因此列表會發生改變

六、全局變量blog

 1 #全局變量,全部的做用域裏均可讀
 2 #***對全局變量進行【從新賦值】,須要global***
 3 NAME = 'zkk'
 4 def f1():
 5     age = 18
 6     global NAME # 表示,name是全局變量
 7     NAME = "123"
 8     print(age, NAME)
 9 def f2():
10     age = 19
11     print(age, NAME)
12 f1()
13 f2()
14 print(NAME)

3、三元運算

 1 if 1 == 1:
 2     name = 'alex'
 3 else:
 4     name = 'SB'
 5 print(name)
 6 
 7 name = 'alex' if 1 == 1 else 'sb'  #if後面是條件,條件成立執行if前面的,不然執行else後面的
 8 print(name)
 9 
10 def f1(a1):
11     return a1 + 100
12 ret = f1(10)
13 print(ret)
14 f2 = lambda a1: a1 + 100 #f2函數名,a1參數,函數體a1+100,只能一行
15 r2=f2(1)
16 print(r2)

4、文件操做

一、打開文件

 1 # f = open('db', 'r') # 只讀
 2 # f = open('db', 'w') # 只寫,先清空原文件
 3 # f = open('db', 'x') # 文件存在,報錯;不存在,建立並只寫
 4 # f = open('db', 'a') # 追加
 5 
 6 f = open('db','r',encoding='utf-8')
 7 data = f.read()
 8 print(data,type(data))
 9 f.close()
10 
11 f = open('db','r+',encoding='utf-8')
12 #若是模式無b,則read按照字符讀取
13 data = f.read(1)
14 print(f.tell()) #調整你當前的位置(字節)
15 f.seek(f.tell())#把當前的指針位置向後覆蓋,以字節的方式找
16 f.write('777')
17 f.close()

二、操做文件

 1 tell() 獲取當前指針位置(字節)
 2 seek(1) 指針跳轉到指定位置(字節)
 3 
 4 f = open('db','a')  #強刷刷新
 5 f.write('123')
 6 f.flush()
 7 input('assdafa')
 8 
 9 f = open('db','w')
10 f.readable()
11 print(f.readable())  #查看是否可讀
12 
13 
14 f = open('db','r+',encoding='utf-8')
15 f.seek(3)
16 f.truncate()#截斷,根據指針位置
17 f.close()
18 
19 for循環文件對象 f=open(xxx)
20 for line in f:
21 print(line)

三、關閉文件

 1 f.close()
 2 with open('xb') as f:
 3     pass
 4 
 5 with open('db','r',encoding='utf-8') as f,open('db2','w',encoding='utf-8') as f2:
 6     times =0
 7     for line in f1:         #一邊讀取一邊寫
 8         if times <= 10:
 9             f2.write(line)
10         else:
11             break
12 
13 
14 with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2:
15     for line in f1:
16         print(line,type(line))
17         new_str = line.replace('alex','st')
18         f2.write(new_str)#同時打開兩個文件

5、json

1 import json
2 inp_str ='[11,22,33,44]'
3 inp_list=json.loads(inp_str)  #字符串轉換成列表
4 print(inp_list)
5 
6 inp_str ='{"k1":123, "k2": "wupeiqi"} '  #內部必須是雙引號
7 inp_dic = json.loads(inp_str)  # 根據字符串書寫格式,將字符串自動轉換成 字典類型
8 print(inp_dic)

 6、內置變量

 1 # utf-8 一個漢字:三個字節
 2 # gbk 一個漢字:二個字節
 3 # utf-8
 4 # 一個字節8位,一個漢字三個字節
 5 
 6 
 7 #字節轉化成字符串
 8 new_str = str(bytes("李傑", encoding="utf-8"), encoding="utf-8")
 9 new_byt=bytes("李傑", encoding="utf-8")
10 new_str2 = str(b'\xe6\x9d\x8e\xe6\x9d\xb0',encoding='utf-8')
11 print(new_str2,new_byt)
12 
13 
14 a=bytes('李傑',encoding='utf-8')
15 b=bytes('',encoding='utf-8')
16 print(a,'\n',b)
相關文章
相關標籤/搜索