day10

部署运行你感兴趣的模型镜像

一、 字符串方法

1.zfill

  • 字符串.zfill(宽度)
num = '123'
result = num.zfill(4)
print(result)   # 0123

2.split - 切割

  • 字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点,对字符串进行切割,返回列表
str1 = 'abcd123ablna'
pirnt(str1.split('b'))  # ['a', 'cd123a', 'lna']
print(str1.split('a'))  # ['', 'bcd123', 'bln', '']

3.replace - 替换

  • 字符串1.replace(字符串2,字符串3, n) - 替换
str1 = 'aaaabbbb'
print(str1.replace('b', 'a', 3))  # aaaaaaab

4.

  • maketrans - 创建字符映射的转换表,对于接受两个参数的最简单的调方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转的目标

  • translate - 根据参数table给出的表(包含 256 个字符)转换字串的字符

str1 = "aeiou"
str2 = "12345"
str3 = str.maketrans(str1, str2)
str4 = 'adsfewcu'
str5 = str4.translate(str3)
print(str5)   # 1dsf2wc5

5.join

  • 字符串.join(序列) - 将序列中所有元素用字符串连接产生一个新的字符串,序列中的元素必须是字符串
str1 = 'abc'
str2 = '1'
str3 = str2.join(str1)
print(str3)   # a1b1c

6.eval() - 函数

  • 将内容是指定格式内容的字符串转换成对应类型的数据
str1 = '[10, 20, 30]'
result = eval(str1)
print(result)  # [10, 20, 30]

7.zip(序列1,序列2) - 将两个序列合并成一个序列,新序列中的元素是相同位置上的元素对应的元组,返回一个新序列

keys = ['name', 'age', 'sex']
values = ['小明', 18, '男']
result = dict(zip(keys, values))
print(result)

二、创建函数

1.什么是函数

  • 函数就是对实现某一功能的代码进行封装(就相当于具有某种功能的机器)

2.函数的分类(由谁来创建)

  • 系统函数:由系统(python)创建好的函数就是系统函数,程序员需要某种功能时直接使用的函数,例如:print、input、type。。。
  • 自定义函数:由程序员自己创建的函数,就是自定义函数。

3.定义函数(创建函数) - 造机器

1)语法:

def 函数名(形参列表):

​ 函数说明文档

​ 函数体

2)说明:

def、()、冒号 - 固定写法

函数名 - 程序员自己定义;标识符,不是关键字;见名知义(看到函数名大概知道函数功能);不要使用系统已有命名

  • 形参列表 - 以‘变量名1,变量名2。。。’形式存在;形参可以一个都没有,也可以有多个;形参的作用是将函数外部的东西传递到函数里面
  • 函数说明文档 - 本质就是文档注释(’’’’’’,"""""")
  • 函数体 - 和def保持一个缩进的一条或者多条语句。函数体就是实现函数功能的代码

3)步骤

  • 第一步:确定函数功能
  • 第二步:根据功能确定函数名
  • 第三步:确定形参:看实现函数功能需不需要额外的数据,需要几个
  • 第四步:实现函数的功能
  • 第五步:写函数说明文档
# 练习:定义一个函数可以统计一个字符串中另外一个字符串出现的次数
def str_count(str1, str2):
    """
    第二个字符串在第一个字符串中出现的次数
    :param str1: 第一个字符串
    :param str2: 第二个字符串
    :return:
    """
    l1 = len(str1)
    l2 = len(str2)
    index = 0
    count = 0
    while True:
        if str1[index:index+l2] == str2:
            count += 1
            index += l2
        else:
            index += 1
        if index >= l1:
            break
    print(count)

4)重要结论:定义函数不会执行函数体,调用函数时会使用函数体

5)调用函数(使用机器)

  • 语法:

    函数名(实参列表)

  • 说明

    函数名 - 必须是已经定义好的函数的函数名

    实参列表 - 实参就是通过形参传递到函数内部的具体数据

  • 函数调用过程:

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

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

    第三步:执行函数体

    第四步:确定函数返回值

    第五步:回到函数调用的位置

三、函数的参数

1.位置参数和关系参数(实参的分类)

1)位置参数:以‘数据1,数据2,数据3…’的形式存在,传参的时候直接和形参从位置上一一对应

2)关键字参数:以‘形参名1=数据1,形参名2=数据2…’

3)位置参数和关键字参数可以混用,不过关键字参数要在后边

def func1(a, b, c):
    print(f'a:{a},b:{b},c:{c}')
func1(b=20, a=10, c=30)  # a:10,b:20,c:30
func1(10, c=30, b=20)   # a:10,b:20,c:30

2.参数默认值(形参)

  • 定义函数的时候可以通过‘形参名=值’的方式给参数赋默认值。
  • 有默认值的参数在调用的时候可以不用传参
  • 注意:定义函数的时候所有的参数都可以有默认值,也可以部分参数有默认值,没有默认值的参数必须放前面
def func1(a, b, c=10):
    print(f'a:{a},b:{b},c:{c}')
func1(10, 20)  # a:10,b:20,c:10

3.参数类型说明

  • 方法一:给参数赋默认值,默认值的类型就是对应的参数类型
def func1(names=[]):
    names.append(100)
    print(names)
func1([1, 2])
  • 方法二:以‘形参名:类型名’的方式说明类型
  • 注意:方法一和方法二不能同时使用
def func1(names:list,obj:str,count=0):
    names.append(10)

4.不定长参数

  • 第一种:参数前加*

    这个带*的参数会变成一个元组,会将对应的实参作为元组中的元素

    定长和不定长可以混用,如果定长在后面,调用的时候定长的参数在传参的时候必须使用关键字参数

  • 注意:在调用的时候只能使用位置参数传参

def sum2(*nums):
    print(nums)
sum2()  # ()
sum2(1, 2)  # (1, 2)
  • 第二种:在参数前加**

    这个带**的参数会变成一个字典,代用的时候使用关键字参数传参,每个关键字参数会作为字典中的一个键值对。

def func1(**nums):
    print(nums)
func1(x=10, y=20)  # {'x': 10, 'y': 20}

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值