day11-函数基础学习总结

这篇博客介绍了Python中字符串的常用方法,如join、split、replace和strip,并展示了如何自定义函数。通过实例演示了如何利用这些方法处理字符串,以及如何定义和调用函数来实现特定功能,如计算数字列表的总和、判断水仙花数、检查字符串是否全为中文和统计大写字母数量。
摘要由CSDN通过智能技术生成

day 11-函数

1.字符串相关方法

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)       # 'a**b**c'
# 练习:将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你好'
b =  str1.split('123')
print(b)      #    ['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())

2.认识函数

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)

2.函数的分类

按照函数是由谁创建(定义)的可以将函数分为,系统函数和自定义函数两种

系统函数(别人已经造好的机器)Python自带的函数, 例如:print、input、type、max、min、sorted、chr、ord等
自定义函数(自己造的机器)由程序员自己创建的函数

3.定义函数

1.定义函数(造机器)

1)语法:

def 函数名(形参列表):

​ 函数说明文档

​ 函数体

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


sum2(100, 23)
# 练习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')

4.函数的调用

1.调用函数(使用机器)

1)语法:

函数名(实参列表)

2)说明
函数名需要哪个函数的功能就调用哪个函数,想要调用哪个函数就写哪个函数的函数名。(函数必须先定义再调用)
()固定写法
实参列表以’数据1, 数据2, 数据3,…'的形式存在
实参就是通过形参传递到函数中的数据。(实参就是用来给形参赋值的)
实参的个数由形参决定(实参和形参一一对应)

注意:一个函数可以调用多次,并且每次调用的时候都可以给不同的实参

2.函数调用过程

重要结论:定义函数的时候不会执行函数体,调用函数的时候才会执行。

函数调用的过程:

第一步:回到函数定义的位置

第二步:传参(用实参给形参赋值)

第三步:执行函数体

第四步:确定函数返回值

第五步:回到函数调用的位置,接着往后执行

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、付费专栏及课程。

余额充值