day9-推导式和函数

day9-推导式和函数

推导式

推导式是用来快速方便的产生列表或者字典的表达式

  1. 列表推导式

    1. 基本结构

      [表达式 for 变量 in 序列]

      产生一个新的列表,列表中的元素就是每次循环对应的表达式的结果

      list1 = [10 for x in range(3)]
      print(list1)  # [10, 10, 10]
      
      list2 = [2*x for x in range(1, 4)]
      print(list2)  # [2, 4, 6]
      
    2. 条件结构

      [表达式 for 变量 in 序列 if 条件语句]

    3. 多重循环结构1:

      [表达式 for 变量1 in 序列1 for 变量2 in 序列2]

      多重循环结构2:

      [表达式 for 变量1 in 序列1 for 变量2 in 序列2 if 条件语句]

  2. 集合推导式

    将列表推导式的[]变成{}

  3. 元组和字典推导式

    元组 - 将列表推导式的[]变成tuple()

    字典 - (表达式是键值对形式)将列表推导式的[]变成{};(表达式是有且只有2个元素的序列的时候)将列表推导式的[]变成dict()

    # 通过字典推导式交换一个字典的键和值
    dic = {'a': 10, 'b': 20, 'c': 30}
    dic1 = {dic[key]: key for key in dic}
    

函数

  1. 认识函数

    1. 什么是函数

      函数就是对实现某一特定功能的代码的封装。

    2. 函数的分类(谁定义的函数)

      系统函数:python已经定义好,程序员可以直接使用的函数。例如:print、input、type、chr、ord、id、max、min、sum、sored等

      自定义函数:由程序员自己定义,程序员可以自己使用或者给别人使用的函数

  2. 定义函数

    语法:def 函数名(形参列表):

    ​ 函数说明文档

    ​ 函数体

    说明:

    1. def - 关键字;固定写法

    2. 函数名 - 程序员自己命名;要求与规范和变量命名要求与规范一致

    3. (): - 固定写法

    4. 形参列表 - 以’变量名1, 变量名2, 变量名3, …'的形式存在

      ​ 形参的作用是将函数外部的数据传递到函数里面(如果实现函数的功能需要提供外部数据,那么这个函数就需要形参)

    5. 函数说明文档 - 函数的说明书;本质就是用""""""引起来的注释

    6. 函数体 - 和def保持一个缩进的一条或多条语句

      ​ 实现函数功能的代码块

    (重点)注意:定义函数的时候不会执行函数体

  3. 调用函数

    语法:

    ​ 函数名(实参列表)

    说明:

    1. 函数名 - 需要使用的已经定义好的函数的函数名

    2. () - 固定写法

    3. 实参列表 - 以’数据1, 数据2, 数据3, …'的形式存在;

      ​ 实参就是需要从函数外部传递到函数内部使用的具体的数据

# 示例1:定义一个函数求任意两个数字的和
def sum1(num1, num2):
    """
    求两个数字的和  -  (函数功能说明区)
    :param num1: 提供第一个数字
    :param num2: 提供第二个数字
    :return: None   -   (返回值说明)
    """
    print(num1 + num2)
# 练习1:定义一个函数,求一个数的阶乘:N! = 1*2*3*4*...*N
def factorial(num1):
    pro = 1
    for x in range(1, num1 + 1):
        pro *= x
    print(pro)


factorial(4)
# 练习2:写一个函数将两个字符串交叉合并
'abc''123' -> a1b2c3
'abc''12345'  -> a1b2c345
'abcdef''123' -> a1b2c3def
def merge(str1, str2):
    str3 = ''
    len1 = len(str1)
    len2 = len(str2)
    # 先交叉拼接公共部分
    for index in range(min(len1, len2)):
        str3 += str1[index] + str2[index]
    # 再确定尾部
    if len1 > len2:
        str3 += str1[len2:]
    else:
        str3 += str2[len1:]
    print(str3)


merge('abcde', '123')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值