定义和调用函数
定义函数
参数和返回值
变量的作用域
匿名函数
内置函数
数值运算函数
字符串处理函数
其他常用内置函数
help()
type()
定义函数
格式
def functionname([parameterlist])
['comments']
[funcitonbody]
functionname:函数名
parameterlist:参数。可以为空,可以为多个参数,用逗号隔开
comments:可选参数
functionbody:可选参数,语句体调用函数后要执行的功能代码
函数:系统函数、自定义函数
调用函数:
调用函数就是执行函数
系统函数、自定义 函数都是用函数名来调用
pass空语句:不做任何事情,起到占位作用,可以用…来代替pass
自定义函数
def sum(num1,num2):
print(num1+num2)def printstring(str):
print(str)
num1、num2、str都是函数的参数,在函数体中,函数类似于变量
函数调用、调用函数
计算两个数相加
>>> def sum(num1,num2):
print(num1+num2)>>> sum(100,10)110>>>
参数和返回值
主调函数和被调用函数之间一般都有数据传递关系
参数:
形参:定义函数时,括号里的参数
实参:调用函数时,函数后面的参数
参数的作用是传递数据给函数使用
实参:
值传递:实参为不可变对象时,改变形参的值,实参值不变
引用传递:实参为可变对象时,改变形参的值,实参的值也会改变
位置参数(必备参数)
必须按照正确的顺序传递到函数中,即调用时数量和位置必须与定义的相同
关键字参数:使用形参的名字来输入参数的值,不需要与形参的的位置一致
例1:>>> def fun_bmi(person,height,weight): //定义函数
bmi = weight/height
print (bmi)
>>> fun_bmi('坏坏',1.78) //参数数量与定义的不同,缺少“weight”参数
Traceback (most recent call last):
File '<pyshell#28>', line 1, in <module>
fun_bmi('坏坏',1.78)
TypeError: fun_bmi() missing 1 required positional argument: 'weight'
>>> fun_bmi('坏坏',56,1.78) //参数位置与定义不一致
0.031785714285714285
>>> >>> fun_bmi('坏坏',1.78,56) //正确的输出
31.46067415730337
# 关键字参数,用形参的名字确定输入的参数值,指定实参时,无需与形参的位置相同>>> fun_bmi(height=1.78,weight=56,person='坏坏')
31.46067415730337
>>>
>>> def func(num):
num+=1>>> a = 10>>> func(a)>>> print(a)10
列表作为参数传递
>>> def sum(list):
total=0
for i in range(len(list)):
print(list[i],'+',end='')
total+=list[i]
print('=',total)>>> list=[15,25,35,45,55]>>> sum(list)15 +25 +35 +45 +55 += 175>>>
这里在最后的一个输出会多一个+号,可以优化
字典作为参数传递
>>> def print_dict(dict):
for (k,v) in dict.items():
print('dict[%s]='%k,v)
>>> dict={'b':'bad','o':'boy','B':'Bad'}>>> print_dict(dict)
dict[b]= bad
dict[o]= boy
dict[B]= Bad>>>
可变参数(不定参数)
传入函数中的实际参数可以是0个、1个或多个
可变参数的两种形式:
*parameter——接受任意多个实际参数并将其放到一个元组中
**parameter——接受任意多个显示赋值的实际参数,并将其放到一个字典中
# *parameter可变参数>>> def printplayer(*name):
print('我喜欢的歌手有:') for item in name:
print(item)>>> printplayer('许嵩')
我喜欢的歌手有:
许嵩>>> printplayer('许嵩','孙子涵','owl ciy')
我喜欢的歌手有:
许嵩
孙子涵
owl ciy>>>
>>> def printsign(**sign):
print() for key,value in sign.items():
print('['+key+']的专辑是:'+value)# **可变参数>>> printsign(许嵩='寻宝游戏',孙子涵='涵剧先森',owl='Good Time')
[许嵩]的专辑是:寻宝游戏
[孙子涵]的专辑是:涵剧先森
[owl]的专辑是:Good Time>>>
使用已存在的列表作为函数的可变参数,在列表名称前加*
使用已存在的字典作为函数的可变参数,可在字典的名称前面加**
返回值
作用:将函数处理的结果返回给调用它的程序
返回值不是必须的,如果没有return语句,默认返回None
返回值可以是任意类型,只要return得到执行,就会直接结束函数的执行
返回一个值,该值可以是任意类型
返回多个值,保存为一个元组
>>> def sum(num1,num2): #无返回值
num1+num2>>> print(sum(2,3))
None>>> def sum(num1,num2): #有返回值
num1+num2 return num1+num2
>>> print(sum(2,3))5>>>
例:输出一个列表中的偶数
>>> def filter_even(list):
list1=[] for i in range(len(list)): if list[i]%2==0:
list1.append(list[i])
i-=1
return list1>>> list=[1,2,3,4,5,6,7]>>> list2=filter_even(list)>>> print(list2)
[2, 4, 6]>>>
变量的作用域
作用域指程序代码能够访问该变量的区域,即变量的有效范围
局部变量:
在函数内部定义的变量,只能在函数内使用
只在函数运行时创建,运行之前、之后都不存在
全局变量:
在函数外定义的变量
函数内定义,但是用global关键字修饰后的变量
在定义后的任何地方都有效
如果全局变量和局部变量重名,函数体内只有局部变量有效
>>> a = 50 #定义全局变量a>>> def setNumber(): #定义函数内为局部变量,只在函数内有效
a=10
print(a)>>> setNumber() #调用函数,输出函数内的变量值10>>> print(a) #未调用函数,输出全局变量的值50>>>
例:>>> total=5 #全局变量>>> def sum(num1,num2):
total=num1+num2 #函数内的为局部变量
print ('函数内是局部变量:',total) return total>>> sum(5,15) #调用函数,输出局部变量函数内是局部变量: 2020>>> print('函数外是全局变量:',total) #未调用函数,输出全局变量函数外是全局变量: 5>>>
python使用lambda来创建匿名函数
lambda是一个表达式,函数体比def简单
lambda的主体是表达式,不是代码块。仅能在lambda表达式中封装有限的逻辑
lambda函数拥有自己的命名空间,不能访问自有参数列表以外或全局命名空间里的参数
语法:lambda[arg1[,arg2,...argn]]:expression
匿名函数主要应用在需要一个函数而不必去命名这个函数
lambda函数看似只能写一行,却不同于C或C++的内联函数
内联函数的目的是调用小函数时不占用栈内存从而增加运行效率
# 使用def定义函数>>> def aaa(i):
return 2+3*i>>> aaa(5)17# 使用lambda定义函数>>> d=lambda i :2+3*i>>> d(5)17>>>
>>> def add(a,b):
return a+b>>> add(2,3)5>>> e=lambda a,b :a+b>>> e(2,3)5>>>
lambda优势:
更精简,省略定义普通函数的过程,适合写脚本
提高了代码可读性
替代比较抽象且调用次数不多的函数,简化命名
数值运算函数
字符串处理函数
例:
数学运算函数
# 计算绝对值
>>> print(abs(-5))
5
>>> print(abs(5))
5
# 计算x的y次方
>>> print(pow(2,3))
8
>>> print(pow(3,2))
9
# 计算浮点数x保留n位小数
>>> print(round(4.567,1))
4.6
>>> print(round(4.567,0))
5.0
# 计算a除以b的商和余数,返回元组
>>> print(divmod(10,3))
(3, 1)
>>> print(divmod(16,3))
(5, 1)
>>>
字符串处理函数
>>> str1 = 'i am bad boy'
>>> str2 = 'I AM BAD BOY'
>>> str3 = 'I Am Bad Boy'
>>> str4 = 'i am Bad Boy'
# 将字母转换为小写
>>> print(str2.lower())
i am bad boy
>>> str2 #变量的值不会改变
'I AM BAD BOY'
# 将字母全部转换为小写
>>> print(str1.upper())
I AM BAD BOY
# 将字母的大小写互换
>>> print(str3.swapcase())
i aM bAD bOY
# 字符串中的首字母大写
>>> print(str1.capitalize())
I am bad boy
# 将字符串中的首字母大写(每个)
>>> print(str4.title())
I Am Bad Boy
>>>
>>> str='i am bad boy
'# 字符串居左对齐,长度为20,不足部分用*补齐
>>> print(str.ljust(20,'*'))
i am bad boy********
# 字符串居右对齐,长度为20,不足部分用+补齐
>>> print(str.rjust(20,'+'))
++++++++i am bad boy
# 字符串居中对齐,长度为20,不足部分用-补齐
>>> print(str.center(20,'-'))
----i am bad boy----#
# 字符串居右对齐,长度为20,不足部分由0补充
>>> print(str.zfill(20))
00000000i am bad boy
>>>
split() 通过指定分隔符对字符串进行切片
语法:str.split(str='', num=string.count(str))
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等
num – 分割次数。默认为 -1, 即分隔所有
如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
splitlines()按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表
语法:str.splitlines([keepends])
keepends – 在输出结果里是否去掉换行符
默认False,不包含换行符
True则保留换行符
join()将序列中的元素以指定的字符连接生成一个新的字符串
语法:str.join(sequence)
sequence – 要连接的元素序列
# 以空格为分隔符,将字符串分割
>>> str1='i am Bad boy'
>>> list1=str1.split(' ')
>>> print(list1)
['i', 'am', 'Bad', 'boy']
# 去除换行,将字符串一行输出
>>> str1='I am \nBad boy'
>>> print(str1)
I am Bad boy
>>> list1=str.splitlines()
>>> print(list1)
['i am bad boy']
# 以*连接list1中的元素
>>> list1=['I','Am','Bad','boy']
>>> str1='*'
>>> print(str1.join(list1))
I*Am*Bad*boy
>>>
help()
查看命令帮助手册
>>> help() #进入命令查询
...
help> print #查询命令帮助
...
help> quit #退出
...
>>> help(list) #查看命令帮助手册
双击就可以查看命令帮助手册
>>>
查看变量类型
>>> a='555'>>> print(type(a))
<class 'str'> #字符串>>> b=555>>> print(type(b))
<class 'int'> #整型>>> c=['b','a','d']>>> print(type(c))
<class 'list'> #列表
最后给大家一份Python的学习资料,也是我自己之前用的学习资料,感觉很不错。之前的文章里也有过分享 ,再一次分享是因为很好,之前有很多粉丝也领取了,学习的很不错,所以今天又拿出来免费的跟大家分享 ,希望大家多多转发 收藏,记得关注一下小编,谢谢你们的支持。感谢!
1.Python的自述
2.Python开发环境的搭建
3.print函数的使用
4.转义字符与原字符
5.二进制与字符编码
6.保留字_标识符_变量及其使用
7.数据类型
8.Python中的注释
10.input函数的使用
11.算术运算符
12.赋值运算符
13.比较运算符
14.布尔运算符
15.位运算符
16.运算符的优先级
17.程序的组织结构_对象布尔值
18.单分支_双分支_多分支结构
19.嵌套if
20.条件表达式_pass语句
Python基础学习路线
Python不管是从学习路线到视频,到PPT,再到PDF技术文档,小编在这里已经全部整理完了,需要获取的小伙伴就可以转发此文,关注小编,私信小编“学习”就可以得到获取方式啦~~
联系客服