list循環刪除下標會出錯
L = [1,1,1,2,3,4,5]#list是根據下標來取值 #下標0,1,2,3,4,5,6 循環後下標錯位 輸出的結果是【1,2,4】,把1也取到了 #l2 = [1,1,1,2,3,4,5] l2 = l for i in l2:#若是L循環的時候回致使下標錯位輸出結果錯誤 if i%2!=0: l.remove(i)#刪除列表中的元素 print(l)
淺拷貝與深拷貝git
import copy L =[1,2,3,4,5,6] L2=L #淺拷貝,就是直接賦值,內存地址不變 L2 = copy.deepcopy(L)#深拷貝,從新賦予新的內存地址 L2 = L.copy()#淺拷貝 print(id(L)) print(id(L2))
非空即真es6
name = input('請輸入名稱:').strip()#strip()去空格 #name='abc' #a='' #l=[] #d={} #t=() #b=None 什麼都沒有也是爲空 name = int(name) if name: print('輸入正確') else: print('name不能爲空')
什麼是函數:函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。express
函數能提升應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,好比print()。但你也能夠本身建立函數,這被叫作用戶自定義函數。app
def functionname( parameters ): #函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括號()。任何傳入參數和自變量必須放在圓括號中間。圓括號之間能夠用於定義參數。 "函數_文檔字符串"#數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明函。 function_suite return [expression] #選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。
默認值函數dom
def my(): pass #什麼也不幹先佔位,若是不寫就會報錯 def my(a,b): #位置參數,調用時必須填寫兩個參數 return a def my(name,sex): #位置參數,必填 #函數體 return name def db_connect(ip,port=3306): #默認值參數 print(ip,port) db_connect('118.24.3.40',3307) db_connect('118.24.3.40')
參數ide
def send_sms(*args): #可變參數 for p in args: print(p) send_sms()#不是必傳的 send_sms(1213,121,3123) #不限制傳的個數,都存在元祖
遞歸函數
就是本身調用本身 def test1(): num = int(input('please enter a number:')) if num%2==0:#判斷輸入的數字是否是偶數 return True #若是是偶數的話,程序就退出了,返回true print('不是偶數請從新輸入!') return test1()#若是不是偶數的話繼續調用本身,輸入值 print(test1())#調用test 最多調用999次 count = 0 def say(): global count count+=1 print('say') print(count) say() say()
return的做用ui
def my2(): for i in range(50): return i #return 有2個做用 #一、結束函數,只要函數裏面遇到return,函數當即結束運行 #二、返回函數處理的結果
小數的類型es5
判斷小數的函數用法
s爲字符串
s.isalnum() 全部字符都是數字或者字母
s.isalpha() 全部字符都是字母
s.isdigit() 全部字符都是數字
s.islower() 全部字符都是小寫
s.isupper() 全部字符都是大寫
s.istitle() 全部單詞都是首字母大寫,像標題
s.isspace() 全部字符都是空白字符、\t、\n、\r
def check_float(s): ''' 這個函數的做用就是判斷傳入的字符串是不是合法的小數 :param s: 傳入一個字符串 :return: True/false ''' s = str(s) if s.count('.')==1: s_split = s.split('.') left,right = s_split if left.isdigit() and right.isdigit(): return True elif left.startswith('-') and left[1:].isdigit() \ and right.isdigit(): return True return False print(check_float(1.3)) print(check_float(-1.3)) print(check_float('01.3')) print(check_float('-1.3')) print(check_float('-a.3')) print(check_float('a.3')) print(check_float('1.3a3')) print(check_float('---.3a3'))
全局變量spa
name = 'aaaa'#全局變量,在什麼函數均可以使用 names = [] def get_name(): names.append('hahaha') name = 'bbbbb' #局部變量,只能在函數內使用 print('一、函數裏面的name:',name) def get_name2(): global name #要修改全局變量就要先申明 print('二、get_name2:',name) get_name2() get_name() print(names) print('三、函數外面的name:',name)
集合
# 一、天生能夠去重 # 二、集合是無序 l=[1,1,2,2,3,3] res = set(l)#去重 l = list(res) print(res) #{1, 2, 3} jihe = set() #定義一個空的集合 xingneng =['bb','aa','ccc','oooo'] zdh = ['bb','aa','opq','cc','sds'] xingneng = set(xingneng) zdh = set(zdh) res1 = xingneng.intersection(zdh)#取交集 res2 = xingneng & zdh #取交集 res3 = xingneng.union(zdh) #取並集,把2個集合合併到一塊兒,而後去重 res4 = xingneng | zdh #取並集 res5 = xingneng.difference(zdh) #取差集,在a裏面有,在b裏面沒有的 res6 = xingneng - zdh #取差集 res7 = xingneng.symmetric_difference(zdh)#對稱差集,兩個裏不重複的值 res8 = xingneng ^ zdh #對稱差集
random模塊
import random print(random.randint(100000,999999)) #隨機取一個整數 print(random.uniform(1,900))#取一個小數 stus = ['xiaojun','hailong','yangfan','tanailing','yangyue','cc'] print(random.choice('abcdefg'))#隨機取一個元素 print(random.sample(stus,2)) #隨機取N個元素 pw = ''.join(random.sample("VWXYZ_.123456780!@()+=-><:",random.randint(2, 5)))#隨機生成8到16位的字符