python 函数_python中sun是什么意思(2)

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


### 2. 函数的调用


调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。  
 函数调用的基本语法格式: 函数名([形参值])



2.如何调用函数?

max_num = get_max(30,80)
print(max_num)


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021022020015148.png)


## 三、 变量作用域


### 1.全局变量:全局生效的变量


如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。


在函数外边定义的变量叫做全局变量  
 全局变量能够在所有的函数中进行访问  
 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错  
 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的  
 小技巧: 强龙不压地头蛇(就近原则)



name = ‘admin’
def login():
print(name)
login()


代码执行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233654428.png)


### 2. 局部变量:局部生效的变量,函数内部的变量


局部变量,就是在函数内部定义的变量  
 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响  
 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用



2. 局部变量:局部生效的变量,函数内部的变量

def logout():
age = 18
print(age)
logout()


代码执行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233646214.png)


### 3. 函数内部修改全局变量



#1).money是全局变量
#2).如果要在函数中修改全局的变量,需要声明,不能直接修改
#3).不可变数据类型一定需要声明,可变数据类型不需要声明
def hello():
global money
money +=1
users.append(‘user1’)
print(money,users)
money = 100 # 不可变数据类型
users = [] # 可变数据类型
hello()


代码执行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233633405.png)  
 总结:  
 global的本质是声明可以修改全局变量的指向, 即变量可以指向新的数据。  
 1). 不可变类型的全局变量: 指向的数据不能修改, 不使用global时无法修改全局变量。  
 2). 可变类型的全局变量: 指向的数据可以修改, 不使用global时可以修改全局变量。


## 四、函数参数传递


调用函数时,如果参数个数不对,Python 解释器会自动检查出来,并抛出 TypeError;


* 如果参数类型不对,Python 解释器就无法帮我们检查。
* 数据类型检查可以用内置函数 isinstance 实现



“”"

  1. 形参和实参
  2. 参数检查:isinstance(var, int)判断变量var是否为int
    “”"

2. 参数检查:

def get_max(num1:int, num2:int)->int:
“”"
求两数的最大值
:param num1: 整型数1
:param num2: 整型数2
:return: 最大值
“”"
if isinstance(num1, int) and isinstance(num2, int):
return num1 if num1 > num2 else num2
else:
return 0
result = get_max(20, 30)
print(result)
print(help(get_max))


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220234653693.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)


## 五、常见的四类形参


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210221000327204.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)


### 1. 必选参数


必须要传递的参数



def get_max(num1: int, num2: int) -> int:
return num1 if num1 > num2 else num2

result = get_max(20, 30)
print(result)


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235713393.png)


### 2. 默认参数


默认参数可以降低调用函数的难度。  
 默认函数容易出错点: 可变参数不能作为默认参数。  
 试一试:先定义一个函数,传入一个 list,添加一个 END 再返回.


可传可不传的参数



def pow(x, y=2):
return x ** y

result = pow(3) # x=3, y=2, result=9
print(result)
result = pow(2, 4) # x=2,y=4, result=2**4=16
print(result)


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235810741.png)


### 3. 可变参数


可变参数就是传入的参数个数是可变的,可以是 1 个、2 个到任意个,还可以是 0 个。\*args  
 以数学题为例子,给定一组数字 a,b,c…,  
 请计算 a 2 + b 2 + c 2 + …


参数的个数会变化,可以传0,1,2,3,…n



3. 可变参数: 参数的个数会变化,可以传0,1,2,3,…n

args是元组

args=arguments

def my_sum(*args):
return sum(args)
result = my_sum(4, 5, 6) # 15
print(result)


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235825688.png)


### 4. 关键字参数


关键字参数允许传入 0 个或任意个含参数名的参数;


* 这些关键字参数在函数内部自动组装为一个 dict;
* 关键字参数用\*\*kwargs;


可以传递key和value



4. 关键字参数:可以传递key和value

kwargs存储在字典中

def enroll(name, age=18, **kwargs):
print(f"“”
入学信息

  1. 姓名:{name}
  2. 年龄:{age}
  3. 其他:{kwargs}
    “”")

enroll(‘张三’, country=‘china’, english=‘GRE’, sports=[‘篮球’, ‘羽毛球’])

from collections import namedtuple


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235841230.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)


## 六、匿名函数


匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。(省略了用def声明函数的标准步骤)



get_max = lambda num1,num2: num1 if num1>num2 else num2
print(get_max(10,20))

pow = lambda x,y=2: x**y
print(pow(4))
print(pow(2,3))


代码运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/202102210016003.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)  
 匿名函数练习题:


问题描述2:(2018-携程-春招题)  
 给定一个整形数组, 将数组中所有的0移动到末尾, 非0项保持不变;  
 在原始数组上进行移动操作, 勿创建新的数组;  
 输入: 数组的记录;0 7 0 2  
 输出: 调整后数组的内容; 7 2 0 0



“”"
自定义规则:
0 7 0 2 - rule:(1 if num== 0 else 0)
1 0 1 0
0 0 1 1

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的测试函数是用来验证代码的正确性和功能的函数。在Python,可以使用unittest模块来进行代码测试。unittest是Python标准库的一个模块,提供了代码测试工具。[2] 在进行测试之前,需要先创建待测试的函数。例如,在name_function.py文件定义了一个名为get_formatted_name的函数,用于生成整洁的姓名。[2] 在进行单元测试时,可以使用unittest.TestCase类来创建测试用例。测试用例是一组单元测试,用于核实函数在各种情况下的行为是否符合要求。[3] 下面是一个示例的测试用例代码: ```python import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): """Test the name_function.py""" def test_first_last_name(self): """能够正确处理姓名吗?""" formatted_name = get_formatted_name('sun','wukong') self.assertEqual(formatted_name,'Sun Wukong') if __name__ == '__main__': unittest.main() ``` 在这个测试用例,我们定义了一个名为test_first_last_name的测试函数,用于验证get_formatted_name函数是否能够正确处理姓名。通过使用self.assertEqual方法,我们可以断言函数返回的结果是否与预期结果相等。[2] 要运行测试函数,可以直接运行该测试用例所在的文件,即运行python文件名.py命令。在这个例子,可以运行python name_function_test.py命令来执行测试。[2] 这样,我们就可以使用测试函数来验证代码的正确性和功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值