Python编程进阶——函数与模块


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大')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司小幽

真诚赞赏,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值