程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python編程進階——函數與模塊

編輯:Python

目錄

  • 1.randint 左右都是閉區間
  • 2.空函數 pass 實際的作用
  • 3.函數 參數 寫法
  • 4.解包 pom
  • 5.匿名函數:lambda 表達式
  • 6. 推導式 可以循環數據
  • 7.if語句的三目運算 if的簡寫


1.randint 左右都是閉區間

import random
test = random.randint(1,3)
print(test)
# and優先級比or高

2.空函數 pass 實際的作用

# 作用:寫下個函數的邏輯時,不讓你報錯
# 一個流程 登錄 下單 支付
def login():
pass
def order():
print('下單')

3.函數 參數 寫法

# 位置參數,關鍵字參數,默認參數,不定長參數
# 位置參數: 實參的順序,個數要和形參對應
#位置參數
def sum(a,b):
return a + b
z = sum(55,66)
print(z)
def person(name,age):
return '我是%s,年齡%s'%(name,age)
p = person('秋水',18)
print(p)
# 關鍵字參數, 先定義形參, 實參可以順序不同,但是實參前面需要加上參數名稱
def person(name,age):
return '我是%s,年齡%s' % (name, age)
d = person(age = 18,name='虛竹')
print(d)
# 默認參數 給形參加個實際的數據,加了數據之後,實參就不用給數據。實參給了數據,以實參數據為准
def person(name,age=18):
return '我是%s,年齡%s' %(name, age)
p = person('秋水',88)
print(p)
# 一個函數裡面又有默認參數,又有位置參數 怎麼辦
# 位置和默認參數同時存在,位置參數必須在默認參數前
def person(name,age,sex='女'):
return '我是%s,年齡%s,性別%s' %(name,age,sex)
p = person('秋水',88)
print(p)
# 不定長傳參
# 不知道有多少個參數,在參數前加個*或者**
# 加一個*,把傳進來的值,放在元組中
# 加兩個** 把傳進來的值,放在字典中
# *可以傳多個值,後面的形參名,可以任意取名字,不建議換名字
def person(*args):
print(args)
person('小米','華為','魅族')
# 加兩個** 把傳進來的值,放在字典中
#*可以傳多個值,後面的形參名,可以任意取名字,不建議換名字 kwargs
def person(**kwargs):
print(kwargs)
person(name='秋水',age='18',sex='女')
# 一個函數裡面又存在*,又存在**
# *args放在**kwargs前面
def person(*args,**kwargs):
print(args)
print(kwargs)
person('小米','華為','魅族','a',1,name='秋水',age='18',sex='女')
#*可以接收多個值,接受後的值存在元組中
#**可以接收多個值,接受後的值存在字典中

4.解包 pom

username=('id','kw')
pwssword=('name','su')
# driver.find.element_by_id('su')
def loctor(loc):
driver.find.element(*loc)
# *能解包元組
def person(loc):
print(loc)
print(*loc)
person(('id','kw'))
# loc 能不能接受('id','kw')一個元組,一個數據
# 一個數據, 解包揭開, 解成2個數據
# **能夠解包字典 為什麼不能直接print(**loc) print函數
def person(loc):
print(**loc)
person({
'name':'秋水','age':'18'})
# loc相當於接受到{'name':'秋水','age':'18'}
# print **loc name='秋水',age=18
# print是一個函數
def print(self, *args, sep=' ', end='\n', file=None):
print('aaa')
print(name='秋水',age='18')

5.匿名函數:lambda 表達式

# lambda的主體是一個表達式,不是一個代碼塊
# 語法: lambda 參數,參數: 表達式,邏輯功能
# 冒號前面的參數
# 匿名函數不需要返回,它本身的結果就是返回值
# 求和 用普通
def sum(a,b):
c = a+b
return c
z = sum(2,6)
print(z)
num = lambda a,b:a+b
print(num(2,6))
# 匿名函數只會完成基本的簡單功能
# 普通函數完成復雜
# 自動化 顯示等待 頁面的元素 一些元素
driver = webdriver.Chrome()
WebDriverWait(driver,10).until(lambda x:x.driver.find_element_by_id("kw"))
loc = lambda driver:driver.driver.find_element_by_id("kw")
def loc(driver):
a = driver.find_element_by_id("kw")
return a
loc(driver)
# 使用
c = lambda :True
print(c())
def c():
return True
c()

6. 推導式 可以循環數據

# 推導式語法: [表達式 for xx in range()]
# 創建 1-100的整數的列表
list1 = [i for i in range(101)]
print(list1)
for i in range(101):
# print(i+1)
list1.append(i)
print(list1)
list1 = [i+1 for i in range(101)]
print(list1)
# 創建字典: {key:value for i in range()}
dict1 = {
}
for i in range(0,6):
print(i)
dict1[i] = i*5
print(dict1)
# 推導式去創建字典
dict1 = {
i:i*5 for i in range(0,6)}
print(dict1)
#字典賦值: dict1={0:0,1:5,2:10}沒有重復的鍵 添加值
# dict['name'] = 'xiaomin'
# dict={'name': 'xiaomin'}
# 列表裡面嵌套字典[{key:value} for i in range()]
list1 =[ {
i:i*5} for i in range(0,6)]
print(list1)
# 課後作業: 用普通的for循環怎麼表述
list1 = []
for i in range(0,6):
dict1 = {
}
dict1[i] = i*5
list1.append(dict1)
print(list1)

7.if語句的三目運算 if的簡寫

# 格式:result1 if 判斷 else result2
# if 條件:
# 滿足條件的事情
# else:
# 條件不滿足的事情
#兩個數字判斷 如果數字1大於數字2 打印數字1大 否則打印數字2大
x = 1
y = 2
if x > y:
print('數字1大')
else:
print('數字2大')
print('數字1大') if x>y else print('數字2大')

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved