贵州省网站建设_网站建设公司_页面权重_seo优化
2026/1/8 20:18:24 网站建设 项目流程

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

1.random模块应用

1. 随机数生成方法
1importrandom23# 生成1-100随机整数(含100)4num_int=random.randint(1,100)5print(num_int)6# 生成0-1随机浮点数(不含1.0)7num_float=random.random()8print(num_float)9# 生成1-100随机浮点数(包含边界)10num_uniform=random.uniform(1,100)11print(num_uniform)

2.导入方式

(1)导入整个模块
1importrandom2a=random.uniform(1,10)3b=random.randint(1,10)4print(a)5print(b)

(2)导入特定函数
1fromrandomimportuniform,randint2a=uniform(1,10)3b=randint(1,10)

(3)导入模块中的所有函数
1fromrandomimport*2a=uniform(1,10)3b=randint(1,10)

2.函数基础

1.什么是函数?
2. 使用函数的好处
3.函数的定义与调用
3.1定义函数
1deffunction_name(parameters):2""" 3 这个函数注释的内容。 4 """5# 函数体6returnresult# 返回值(可选)
参数说明:
“”“函数注释信息”“”:根据自己的需求,可以给,可以不给。
3.2调用函数
1function_name(1)
3.3函数的定义和调用
1# 定义一个函数a2defa():3print('Hello World')# 14print('哈哈哈哈哈哈')# 256a()# 重复调用3次7a()8a()

3.函数的参数

1.实参和形参
示例:
1defgreet(name):# name是形参2print(f"Hello,{name}!")34greet("Alice")# "Alice"是实参

2.位置参数
示例:
1defgreet(name,message):2print(f"{name},{message}!")34greet("Alice","欢迎学习Python")# 输出: Alice, 欢迎学习Python!5# greet("Bob") # 报错:缺少1个必需参数

3.关键字参数
示例:
1defgreet(name,message):2print(f"{name},{message}!")34greet(message="你好",name="Alice")# 输出: Alice, 你好!

4.默认参数

示例:
1deforder_coffee(coff_type="拿铁",size="中杯"):2print(f"制作{size}{coff_type}咖啡")34order_coffee()# 输出: 制作中杯拿铁咖啡5order_coffee("美式")# 输出: 制作中杯美式咖啡6order_coffee(size="大杯")# 输出: 制作大杯拿铁咖啡

5.不定参数

(1)*args:接收任意数量的位置参数,以元组形式存储。
示例:
1# 位置参数收集(元组)2defsum_numbers(*args):3returnsum(args)45print(sum_numbers(1,2,3))# 输出: 6

(2)**kwargs:接收任意数量的关键字参数,以字典形式存储。
示例:
1# 关键字参数收集(字典)2defuser_info(**kwargs):3forkey,valueinkwargs.items():4print(f"{key}:{value}")56user_info(name="Bob",age=30,job="Python讲师")

* 和 **的作用:

在函数调用时,在实参前面加 * 或者 ** 是有特定作用的
1defargs_01(a,b,c):2print(a,b,c)3# 使用 * 解包一个元组4args_tuple=(1,2,3)5args_01(*args_tuple)67# 使用 * 解包一个列表8args_list=[4,5,6]9args_01(*args_list)101112# 使用 ** 解包字典:会将字典的键当做形参名字,将值传递给对应的形参位置13defkwargs_01(a,b,c):14print(a,b,c)151617# 使用 ** 解包一个字典18kwargs={'a':7,'b':8,'c':9}19kwargs_01(**kwargs)2021# 同时使用 * 和 ** 解包不同类型的参数22deffunc_03(a,b,c,d,e):23print(a,b,c,d,e)242526args=(10,20)27kwargs={'d':40,'e':50}28func_03(1,*args,**kwargs)

6.混合参数

1defmixed_params(a,b=10,*args,**kwargs):2print(f"a={a}, b={b}, args={args}, kwargs={kwargs}")34mixed_params(1)# a=1, b=10, args=(), kwargs={}5mixed_params(1,2,3,4,x=5,y=6)# a=1, b=2, args=(3,4), kwargs={'x':5, 'y':6}

4.函数的返回值

1.返回值的作用
2.返回单个值
1defsquare(n):2returnn*n34result=square(5)5print(result)# 输出: 25

3.条件返回
1defcheck_age(age):2ifage<0:3return"年龄无效"4elifage<18:5return"未成年"6else:7return"成年"89print(check_age(15))# 输出: 未成年10print(check_age(25))# 输出: 成年

4.函数返回多个值

1# 返回多个值2defuser_info():3name='周'4job='Python讲师'5age=186returnname,job,age7# 解包返回值8a,b,c=user_info()9print(f"姓名:{a},年龄:{c},职业:{b}")

5.全局变量与局部变量

举个例子🌰
想象你有一个 家 和一个 卧室:
规则:
1.全家共用消息:在家和卧室都能看到。

示例代码:

1. 全局变量 vs 局部变量
1# 全局变量(客厅消息)2home_message="客厅消息:今晚全家一起看电影!"34defbedroom():5# 局部变量(卧室消息)6bedroom_message="卧室消息:我藏了一包零食!"7print("在卧室里:")8print(f"看到客厅消息:{home_message}")# 能访问全局变量9print(f"看到卧室消息:{bedroom_message}")# 能访问局部变量1011# 调用函数(进入卧室)12bedroom()1314# 在客厅里15print("在客厅里:")16print(f"看到客厅消息:{home_message}")# 能访问全局变量17# print(f"看到卧室消息: {bedroom_message}") # 报错!无法访问局部变量

2.修改全局变量
1# 全局变量(客厅消息)2home_message="客厅消息:今晚全家一起看电影!"34defbedroom():5globalhome_message# 声明修改全局变量6home_message="全家共用消息:今晚改吃烧烤!"7private_message="卧室私密消息:我藏了一包零食!"8print("在卧室里:")9print(f"看到全家共用消息:{home_message}")10print(f"看到卧室私密消息:{private_message}")1112# 调用函数(进入卧室)13bedroom()1415# 在内部修改后重新查看home_message16print("重新查看全局变量:")17print(f"看到全家共用消息:{home_message}")# 全局变量被修改

6.函数的应用

1.过滤函数 filter()

工作原理

示例 1:筛选偶数
1defabc(n):# 求列表中的偶数2d=(n%2==0)3returnd# 返回布尔值45a=[1,2,3,4,5,6,7,8,9,10]6b=filter(abc,a)7print(b)# 输出:filter 对象8print(list(b))# 输出:[2, 4, 6, 8, 10]
解析:
示例2:筛选奇数
1defedf(n):# 求列表中的奇数2d=(n%2==1)3returnd45a=[1,2,3,4,5,6,7,8,9,10]6list_02=list(filter(edf,a))7print(list_02)# 输出:[1, 3, 5, 7, 9]
解析:
示例 3:直接使用 bool() 判断
1a=filter(None,[True,False,1,0])2print(a)# 输出:filter 对象3print(list(a))# 输出:[True, 1]
解析:

总结

2.timeit 测量代码片段的执行时间

主要特点:

使用方法:

例子 1:测试代码为字符串
1importtimeit23a=timeit.timeit('print(1)',number=10000)# 返回的是指定次数后的代码片段运行时间4print(a)

例子 2:测试代码为函数
1importtimeit23defabc():4print('哈哈哈哈哈哈')56b=timeit.timeit('abc()',setup='from __main__ import abc',number=10000)7print(b)
解析:

7.综合案例

1.判断回文字符
1defis_palindrome(s):2reversed_s=s[::-1]# 使用切片反转字符串3returns==reversed_s# 比较原字符串和反转后的字符串45# 示例6string="level"7is_palindrome_result=is_palindrome(string)8print(is_palindrome_result)# 输出:True

2.计算列表平均值
1defcalculate_average(lst):2iflen(lst)==0:# 检查列表是否为空3returnNone4else:5returnsum(lst)/len(lst)# 计算平均值6# 示例7my_list=[1,2,3,4,5]8average=calculate_average(my_list)9print(average)# 输出:3.0

3.计算给定列表的所有偶数的平均值
1numbers=[1,2,3,4,5,6,7,8,9,10]23# 所有偶数的和4sum_even=05# 所有偶数的个数6count_even=07fornuminnumbers:8ifnum%2==0:9sum_even+=num10count_even+=11112ifcount_even>0:13average_even=sum_even/count_even14else:# 没有偶数15average_even=None1617print("平均值(不使用函数封装):",average_even)# 输出:5.0

使用函数封装的方式
1defcalculate_average_even(numbers):2sum_even=03count_even=04fornuminnumbers:5ifnum%2==0:6sum_even+=num7count_even+=189ifcount_even>0:10average_even=sum_even/count_even11else:# 没有偶数12average_even=None1314returnaverage_even1518average=calculate_average_even(numbers1)19print("平均值(使用函数封装):",average)# 输出:5.0


🟢总结

🟡文末福利

🔴包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!

可以扫描下方二维码领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询