1. 程式人生 > >自動化day4-函數

自動化day4-函數

inter use 如果 spl false class post ren put

一、集合

#集合,天生去重
s = set() #定義空的集合
s2 = {‘1‘,‘2‘,‘3‘}# 裏面數據有冒號是字典,無冒號是集合


ls = [1,1,1,2,2,2,2]
print(set(ls))#強制轉換集合類型
#集合是無序的,所以無法通過下標取值
#添加值
s2.add(‘5‘)
print(s2)


#交集 並集 差集 對稱差集
s3 = [1,2,3]
s2.intersection(s3)#取交集
s3 & s2 #取交集

s2.union(s2)#取並集
s2 | s3#取並集

s2.difference(s3)#取差集,取s2中的和s3不同的
s2 - s3#取差集,取s2中的和s3不同的


s2.remove(1)#刪除值
s2.pop()#隨機刪除一個值

二、
#函數   方法   功能     說白了函數就是把一堆代碼組合到一起,變成一個整體
#函數提高代碼的復用性
def hello():
print(‘hello‘)
#函數不調用不會被執行
hello()#調用

def duxie(name,content = ‘‘): #形參,形式參數
f = open(name,‘a+‘)
if content:
f.write(content)
res = ‘‘
else:
f.seek(0)
res = f.read()
f.close()
return res
duxie(‘123.txt‘,‘123‘) #實參,實際參數
duxie(‘123.txt‘)
print(duxie(‘123.txt‘))
user = duxie(‘123.txt‘)
print(user)

#形參
#實參
#位置參數 必填參數
#默認值參數 def duxie(name,content = ‘‘): 形參裏面直接指定一個參數,不是必填的,實參有參數用實參,沒參數用默認值
#如果函數沒有寫return的話,返回的是none,return不是必寫的,需要返回結果在寫
#return 1.結束函數 2.獲取值

#全局變量 局部變量
#函數裏面的變量都是局部變量
a = 100
def test():
a = 5
print(a)
test()
print(a)

#修改全局變量
a = 100
def test():
global a #聲明全局變量,聲明之後就可以更改
a = 5
print(a)
test()
print(a)

三、可變參數
# def test(a,b=1,*args):  #可變參數
# print(‘a‘,a)
# print(‘b‘, b)
# print(‘args‘,args )
# print(args[0])
# test(‘yu‘,‘22‘,‘qq‘,‘ww‘)#位置調用
# test(a=4,b=5)#關鍵字調用
#
# t = [1,2,3,4]
# test(*t)


#關鍵字參數
def test2(a,**kwargs):
print(a)
print(kwargs)
# test2()
test2(a=1,name=‘ybq‘,sex=18)

#寫一個校驗字符串是否為合法的小數
#0.88 -0.99
def check_f(s):
s = str(s)
if s.count(‘.‘)== 1:
s_list = s.split(‘.‘)
left = s_list[0]
right = s_list[1]
if left.isdigit() and right.isdigit():#正小數
return True
elif left.startswith(‘-‘) and left.count(‘-‘)==1:
if left.split(‘-‘)[-1].isdigit() and right.isdigit():#負小數
return True
return False
print(check_f(0.1))

四、遞歸調用
#遞歸   就是自己調用自己
def test1():
num = int(input(‘please enter a number:‘))
if num % 2 == 0: # 判斷輸入的數字是不是偶數
return True #如果是偶數的話,程序就退出了,返回true
print(‘不是偶數請重新輸入!‘)
return test1()#如果不是偶數的話繼續調用自己,輸入值
print(test1())#調用test

#用遞歸能實現的用循環都能實現,最好別用遞歸
#遞歸最多能遞歸999次

自動化day4-函數