20220607函数基础学习总结
1.字符串相关方法
1.1 字符串.join(序列) - 用指定字符串将序列中的元素拼接成一个新的字符串(序列中的元素必须全部是字符串)
names = ['小明', '小红', '张三']
result = ','.join(names)
print(result) #小明,小红,张三
result = '+'.join(names)
print(result) # 小明+小红+张三
result = ''.join(names)
print(result) #小明小红张三
result = '**'.join('abc')
print(result) #a**b**c
eg:
练习:将nums中所有的元素拼接成一个数字
nums = [10, 45, 38]
result = ''.join([str(x) for x in nums])
print(result) #104538
nums = [10,45,78,9]
result = ''.join([str(x)[-1] for x in nums])
print(result) #0589
1.2 字符串切割
字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割
字符串1.split(字符串2,N)-将字符串1中前N个字符串2作为切割点对字符串1进行切割
str1 = 'abc1232mn123oop123你好'
result = str1.split('123')
print(result) #['abc', '2mn', 'oop', '你好']
注意:如果切割点连续出现,或者切割点在字符串开头或者结尾,切割的时候会出现空串。
str1 = '123abc1232mn123oop123你好123'
result = str1.split('123')
print(result) #['', 'abc', '2mn', 'oop', '你好', '']
str1 = '123abc1232mn123oop123你好123'
result = str1.split('123',2)
print(result) #['', 'abc', '2mn123oop123你好123']
1.3 字符串替换
字符串1.replace(字符串2,字符串3) - 将字符串1所有的字符串2都替换成字符串3
字符串1.replace(字符串2,字符串3,N) - 将字符串1中前N个字符串2都替换成字符串3
str1 = '123abc1232mn123oop123你好123'
result = str1.replace('123','XY')
print(result)
1.4 字符串.strip() - 去掉字符串前后的所有的空白字符
str1 = '\n\n\t 名侦探 柯南 \n\n\n'
print(str1)
print('-------------------------------------------------------------------华丽的分割线-------------------------------------------------------------------')
print(str1.strip().replace(' ',''))
2.函数的作用
就是方便,可以不用重复血一样或者一种类型的代码。
3.认识函数
3.1 函数的概念
函数就是实现某一特定功能的代码的封装。(函数就是提前将实现某一个功能的代码封装起来,以后再需要这段代码对应的功能的时候就不用再重复的去写这段代码,而是调用对应的函数)
def yt_max(seq):
m = seq[0]
for x in seq[1:]:
if x > m:
m = x
print(m)
nums = [1, 2, 3, 40, 60]
yt_max(nums)
3.2 函数的分类
按照函数是谁创建(定义)的可以将函数分为,系统函数和自定义函数两种
系统函数(别人已经造好的及其) - python自带的函数,例如: print、input、type、max、min、sorted、chr、ord等
自定义函数(自己造的机器) - 由程序员自己创建的函数
4.定义函数
4.1 1.定义函数(造机器)
1)语法:
def 函数名(形参列表):
函数说明文档
函数体
2)说明
def - 关键字,固定写法
函数名 - 由程序员命名
要求:是标识符,不是关键字
规范:见名知义(看到函数名大概知道这个函数的功能);字母都小写,多个单词用_隔开;
不能使用系统函数名,类名,或者模块名
() - 固定写法
形参列表 - 以’变量名1,变量名2,变量名3.。。。。'的形式存在,这儿的变量可以一个都没有,也可以有多个
(一个变量就是一个形参)
形参的作用:将函数外部的数据传递到函数里面
什么时候需要形参:实现函数的功能需不需要额外的数据,需要几个。需要一个额外的数据就提供一个形参
形参怎么使用:在函数体中直接将形参当成我们需要的数据使用
函数说明文档 - 本质就是多行注释(相当于机器的说明书)
函数体 - 结构上就是和del保持一个缩进的一条或者多条语句(至少一条)
逻辑上,函数体就是实现函数功能的代码
eg:
定义一个函数,求任意两个数的和
def sum2(num1, num2):
'''
求任意两个数的和(功能说明区)
:param num1:数字1(参数说明)
:param num2:数字2
:return:
'''
print(num1 + num2)
sum2(10, 23)#33
eg:定义一个函数,判断指定的数是否是水仙花数
def narcissistic_number(num):
if len(str(num)) != 3:
print(False)
else:
ge = num % 10 #ge = int(num_str[-1])
shi = num // 10 % 10 #shi = int(num_str[-2])
bai = num // 100 #bai = int(num_str[-3])
if ge ** 3 + shi ** 3 +bai ** 3 == num:
print(True)
else:
print(False)
narcissistic_number(153)#True
eg:
定义一个函数,判断指定字符串是否是纯中文字符串
def if_chinese(str1):
count = 0
for x in str1:
if '\u4e00' <= x <= '\u9e5f':
count += 1
else:
break
if count == len(str1):
print(str1,'是纯中文字符')
else:
print(str1,'不是纯中文字符')
if_chinese('ss是谁s')#ss是谁s 不是纯中文字符
eg:
定义一个函数,统计一个字符串中大写字母的个数
def if_str_A(str1):
count = 0
for x in range(0,len(str1)):
if 'A' <= str1[x] <= 'Z':
count += 1
else:
pass
print(count)
if_str_A('SXSS145A')#5
eg:
定义一个函数,统计字符串中指定字符的个数
def len_str(str1,chr1):
count = 0
for x in str1:
if x == chr1:
count += 1
else:
pass
print(count)
len_str('shhahhaha','a')#3
5.函数的调用
5.1 调用函数(使用机器)
语法:
函数名(实参列表)
说明:
函数名 - 需要哪个函数的功能就调用哪个函数,想要调用哪个函数就写哪个函数的函数名。
(函数必须先定义在调用)
() - 固定写法
实参列表 - 以’数据1,数据2,数据3,…’
实参就是通过形参传递到函数中的数据。(实参就是用来给形参赋值的)
实参的个数由形参决定(实参和形参必须一一对应)
注意:一个函数可以调用多次,并且每次调用的时候可以给不同的实参
5.2 函数调用过程
重要结论:定义函数的时候不会执行函数体,调用函数的时候才会执行。
函数调用过程:
第一步:回到函数定义的位置
第二步:传参(用实参给形参赋值)
第三步:执行函数体
第四步:确定函数返回值
第五步:回到函数调用的位置,接着往后执行