美文网首页
六. 语句与语法:函数 + 列表生成式

六. 语句与语法:函数 + 列表生成式

作者: DJN_ | 来源:发表于2018-12-14 16:00 被阅读0次

函数

在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。
return None可以简写为return。

def square_of_sum(L):
    sum = 0
    for item in L:
        sum += item ** 2
return sum

多返回值函数

在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

import math
def quadratic_equation(a, b, c):
    ra = (-b + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
    rb = (-b - math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
return ra,rb

默认参数

函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。
由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面

def greet(str="world"):
print('Hello,'+str+'.')

可变参数

可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数
Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

def average(*args):
    if len(args) == 0:
        return 0.0
    sum = 0.0
    for item in args:
        sum += item
return sum / len(args)

列表生成式

把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print([x * (x+1) for x in range(1,100,2)])

条件过滤

只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

def toUppers(L):
return [s.upper() for s in L if isinstance(s,str)]

多层表达式

for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

翻译为循环

L = []
for m in 'ABC':
    for n in '123':
        L.append(m + n)

print [a * 100 + b * 10 + c for a in range(1,10) for b in range(10) for c in range(10) if a == c]
输出:[101, 111, 121, 131, 141, 151, 161, 171, 181,….

相关文章

  • 六. 语句与语法:函数 + 列表生成式

    函数 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进...

  • 迭代器&生成器

    列表推导式: 列表生成式: 相当于: 以上就是用for语句的迭代器。 生成器表达式: 生成器函数: 调用: 生成器...

  • 2.4 生成器和迭代器

    2.4.1 生成式和生成器 列表生成式是Python受欢迎的语法之一, 通过一条简单的语句就可以对一组元素进行过...

  • Python——生成器、列表生成式、迭代器

    Python列表生成式 列表推导式的一般语法 这种语法等价于以下代码 下面举一些列表推导式的栗子: Python中...

  • 3.列表生成器

    列表生成式基础语法:[exp for iter_var in iterable (if conditional)]...

  • Day11 高阶函数

    一.生成式 1.生成式 生成式就是生成器的简写 1)语法1 a.说明: 表达式 - 任何有结果的语句; 数据, 赋...

  • Python 列表推导式

    列表推导式,也叫列表生成式,是一种方便生成列表的语句。 比如我们要将一个全是整数的列表中每个数取平方后放入新的列表...

  • Python list 生成式(推导式list comprehe

    在list生成式中嵌套if else 如果按中文习惯写嵌套列表生成式可能写出如下的错误语法 Python的语法是按...

  • 推导式

    Python语言有一种独特的推导式语法,相当于语法糖的存在1.列表推导式列表推导式是一种快速生成列表的方式。其形式...

  • Python进阶笔记

    列表生成式 函数的参数类型 lambda函数 map, reduce, filter, sorted函数 eval...

网友评论

      本文标题:六. 语句与语法:函数 + 列表生成式

      本文链接:https://www.haomeiwen.com/subject/svughqtx.html