Day11-函数基础

这篇博客介绍了Python中的函数基础,包括字符串操作如join、split、replace和strip,以及函数的定义和调用。函数是实现特定功能的代码封装,分为系统函数和自定义函数。文章通过实例演示了如何定义和调用函数,还提供了多个练习题帮助读者巩固函数的理解。
摘要由CSDN通过智能技术生成

Day11-函数基础

备注:1、字符串.join(序列) - 用指定的字符串将序列中的元素拼接成一个新的字符串(序列中的元素必须全部都是字符串)

​ 例如:

names = [‘小明’, ‘小红’, ‘小花’, ‘张三’]

‘小明,小红,小花,张三’

result = ‘,’.join(names)

print(result) ‘小明,小红,小花,张三’

‘小明+小红+小花+张三’

result = ‘+’.join(names)
print(result)

‘小明and小红and小花and张三’

result = ‘and’.join(names)
print(result)

result = ‘’.join(‘abc’)
print(result) ‘abc’

练习:将nums中所有的元素拼接成一个数字

nums = [10, 45, 78, 9] # -> ‘1045789’

-> [‘10’, ‘45’, ‘78’, ‘9’]

result = ‘’.join([str(x) for x in nums])
print(result)

nums = [10, 45, 78, 9] # -> ‘0589’

[‘0’, ‘5’, ‘8’, ‘9’]

result = ‘’.join([str(x)[-1] for x in nums])
print(result)

2、字符串切割
字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割
字符串1.split(字符串2,N) - 将字符串1前N个字符串2作为切割点对字符串1进行切割

str1 = ‘abc123mn123oop123你好’
result = str1.split(‘123’)
print(result) [‘abc’, ‘mn’, ‘oop’, ‘你好’]

如果切割点连续出现,或者切割点在字符串开头或结尾,切割的时候会出现空串

str2 = ‘123abc123123mn123oop123你好123’
result = str2.split(‘123’)
print(result) [‘’, ‘abc’, ‘’, ‘mn’, ‘oop’, ‘你好’, ‘’]

str1 = ‘abc123mn123oop123你好’
result = str1.split(‘123’, 2)
print(result) [‘abc’, ‘mn’, ‘oop123你好’]

3、字符串替换
字符串1.replace(字符串2,字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2,字符串3,N) - 将字符串1中前N个字符串2都替换成字符串3

str1 = ‘abc123mn123oop123你好’
result = str1.replace(‘123’, ‘XY’)
print(result) ‘abcXYmnXYoopXY你好’

4、字符串.strip( ) - 去掉字符串前后的所有的空白字符

str1 = ‘\n\n\t 肖生克 的救 赎 \n\n\n’
print(str1.strip())


1、认识函数

函数的概念 - 函数就是实现某一特定功能的代码的封装
(函数就是提前将实现某一个功能的代码封装起来,以后再需要这段代码对应的功能的时候就不应再重复去写中这段代码,而是调用相对应的函数)

def yt_max(seq):
m = seq[0]
for x in seq[1:]:
if x > m:
m = x
print(m)

nums1 = [19, 239, 78, 3]
yt_max(nums1)

m = nums1[0]

for x in nums1[1:]:

if x > m:

m = x

print(m)
nums2 = (78, 2, 612, 9, 23)
yt_max(nums2)

m = nums2[0]

for x in nums2[1:]:

if x > m:

m = x

print(m)

函数的分类 - 按照函数是由谁创建(定义)的可以将函数分为。系统函数和自定义函数
系统函数 - Python自带的函数
自定义函数 - 由程序猿自己创建的函数

2、定义函数

01)语法:
def 函数名(形参列表):
函数说明文档
函数体
02)说明
def - 关键字,固定写法
函数名 - 由程序猿命名
要求:是标识符,不是关键字
规范:见名知义(看到函数大概知道这个函数的功能);字母都i小写,多个单词用_隔开;不使用系统函数名、类名或者模块名
( ): - 固定写法
形参列表 - 以’变量名1,变量名2,变量名3,…‘的形式存在,这儿的变量可以一个都没有,也可以有多个(一个变量就是一个形参)形参的作用:将函数外部的数据传递到函数里面
实现函数的功能需不需要额外的数据,需要一个额外的数据就提供一个形参;在函数体中直接将形参当成我们需要的数据来使用
函数说明文档 - 本质就是多行注释(相当于机器的说明书)
函数体 - 结构上就是和def保持一个缩进的一条或者多条语句(至少一条)逻辑上,函数体就是实现函数功能的代码
# 案例1:定义一个函数,求任何两个数的和
def sum2(num1, num2):
    """
    求任意两个数的和(功能说明区)
    :param num1: (参数说明)
    :param num2: 
    :return: (返回值说明区)
    """
    print(num1 +num2 )

练习1:定义一个函数,判断指定的数是否是水仙花数

def is_narcissistic_number(num):
if len(str(num)) != 3:
print(False)
else:
num_str = str(num)
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)

is_narcissistic_number(150)

练习2:定义一个函数,判断指定字符串是否是纯中文字符串

def is_chinese_str(str1):
for x in str1:
if not ‘\u4e00’ <= x <= ‘\u9fa5’:
print(False)
break
else:
print(True)

is_chinese_str(‘黑色金属’)

练习3:定义一个函数,统计一个字符串中大写字母的个数

def count_upper(str1):
count = 0
for x in str1:
if x.isupper(): ‘A’ <= x <= ‘Z’
count += 1
print(count)

count_upper(‘aKOhjs计JK算机课’)

练习4:定义一个函数,统计字符串中指定字符的个数

def count_char(str1, char):
count = 0
for x in str1:
if x == char:
count += 1
print(count)

count_char(‘ahjsjjsjah’, ‘j’)

3、调用函数

语法:
函数名(实参列表)
说明
函数名 - 需要哪个函数的功能就调用哪个函数,想要调用哪个函数就写哪个函数的函数名(函数名需要先定义再调用)
( ) - 固定写法
实参列表 - 以’数据1,数据2,数据3,…‘的形式存在,实参就是通过形参传递到函数中的数据(实参就是用来给形参赋值的)实参的个数由形参决定,实参和形参必须一一对应
注意:一个函数可以调用多次,并且每次调用的时候都可以给不同的实参
函数调用过程 重要结论:定义函数的时候不会执行函数体。调用函数的时候才会执行
函数调用过程:
第一步:回到函数定义的位置
第二步:传参(用实参给形参赋值)
第三步:执行函数体
第四步:确定函数返回值
第五步:回到函数调用的位置,接着往后执行

def func1(a, b, c):
a = 10; b = 20; c = 30
a = 100; b = 200; c = 300
print(‘===========’)
print(f’a:{a}, b:{b}, c:{c}')

func1(10, 20, 30)
func1(100, 200, 300)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值