python 學習三

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)
View Code

淺拷貝與深拷貝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))
View Code

非空即真es6

name = input('請輸入名稱:').strip()#strip()去空格
#name='abc'
#a=''
#l=[]
#d={}
#t=()
#b=None    什麼都沒有也是爲空
name = int(name)
if name:
    print('輸入正確')
else:
    print('name不能爲空')
View Code

 

什麼是函數:函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。express

函數能提升應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,好比print()。但你也能夠本身建立函數,這被叫作用戶自定義函數。app

def functionname( parameters ):  #函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括號()。任何傳入參數和自變量必須放在圓括號中間。圓括號之間能夠用於定義參數。
   "函數_文檔字符串"#數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明函。
   function_suite
   return [expression]  #選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。
View Code

 默認值函數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')
View Code

參數ide

def send_sms(*args): #可變參數
    for p in args:
        print(p)
send_sms()#不是必傳的
send_sms(1213,121,3123) #不限制傳的個數,都存在元祖
View Code

遞歸函數

就是本身調用本身
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()
View Code

 return的做用ui

def my2():
    for i in range(50):
        return i
#return 有2個做用
#一、結束函數,只要函數裏面遇到return,函數當即結束運行
#二、返回函數處理的結果
View Code

 小數的類型es5

判斷小數的函數用法
s爲字符串
s.isalnum() 全部字符都是數字或者字母
s.isalpha() 全部字符都是字母
s.isdigit() 全部字符都是數字
s.islower() 全部字符都是小寫
s.isupper() 全部字符都是大寫
s.istitle() 全部單詞都是首字母大寫,像標題
s.isspace() 全部字符都是空白字符、\t、\n、\r
View Code
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'))
View Code

 全局變量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)
View Code

集合

   # 一、天生能夠去重
    # 二、集合是無序
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  #對稱差集
View Code

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位的字符
View Code
相關文章
相關標籤/搜索