【Python入门学习:三】简单语法 +函数

本文介绍了Python3的基础语法,包括条件控制(if-elif-else)、操作运算符、循环(while和for)及break/continue的使用。深入讲解了迭代器和生成器的概念,展示了如何创建迭代器和生成器类。此外,还涵盖了函数定义、参数传递、可变与不可变对象的区别,以及匿名函数(lambda)的使用。文章最后提到了函数参数的多种类型,包括必须参数、关键字参数、默认参数和不定长参数。
摘要由CSDN通过智能技术生成

Python3 简单语法

条件控制

  • If 语句:

    if condition_1:
        statement1
    elif condition_2:
        statement2
    else:
        statement3
    
  • 操作运算符:

    < < = > > = = = ! = <\quad<=\quad>\quad>=\quad==\quad!= <<=>>===!=

循环语句

  • while 循环

    while condition:
        statements
    

    ctrl+c 退出无限循环

  • while-else 语句

    while condition:
        statements1
    else:
        statements2
    
  • for 语句

    for <variable> in <sequence>:
        <statements>
    else:
        <statements>
    

    这里, < s e q u e n c e > <sequence> <sequence> 可以是一个列表,也可以使用 r a n g e ( ) range() range() 函数。

    rang(5) 访问 [ 0 , 5 ) [0,5) [0,5)

    rang(a,b) 访问 [ a , b ) [a,b) [a,b)

    也可以提供增量 c c c,变成 r a n g ( a , b , c ) rang(a,b,c) rang(a,b,c)

    也可以用 r a n g e ( ) range() range() 函数创建一个列表 list(range(5))

  • break 和 continue 语句

    break 执行后,不执行 for / while 的 else 语句

  • pass 语句

    pass 是空语句,保持程序结构的完整性

迭代器与生成器

  • 迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。

    迭代器有两个基本的语法:iter() 和 next()

    字符串,列表或元组对象都可用于创建迭代器

    list = [1,2,3,4]
    it = iter(list)
    for x in it:	# 法1
        print(x)
    
    it = iter(list)
    while True:		# 法2
        try:
            print(next(it))
        except StopIteration:
            sys.exit()
    
  • 创建一个迭代器:

    把一个类作为一个迭代器需要在类中实现两个方法 __iter__()__next__()

    class MyNumbers:
    	def __iter__(self):
    		self.a = 1
    	return self
     
        def __next__(self):
    		x = self.a
    		self.a += 1
    		return x
    
  • StopIteration:

    异常用于标识迭代的完成,防止出现无限循环的情况

    class MyNumbers:
    	def __iter__(self):
    		self.a = 1
    	return self
     
        def __next__(self):
    		x = self.a
    		self.a += 1
             if x >= 20:
    			raise StopIteration
    		return x
    

生成器

  • 在 Python 中,使用了 yield 的函数被称为生成器

    生成器是一个返回迭代器的函数,只能用于迭代操作,简单理解的话,生成器就是一个迭代器。

    在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前的运行信息,返回 yield 的值,并在下一次执行 next() 方法时从当前位置继续运行

在这里插入图片描述

函数

  • 定义函数:

    代码块用 d e f def def 关键词开头,后接函数标识符名称和圆括号

    传入参数放在圆括号中间

    函数内容以冒号起始,缩进

    return[exp] 结束函数。不带表达式的 return 相当于返回 None

    def function (args):
        statements
    
  • 可更改类型(mutable)与不可更改(immutable)对象

    strings,tuples,numbers 是不可更改的对象, list,dict 是可更改的对象

    不可变类型:a=5 后再 a=10 ,实际是新生成了一个 int 值对象 10,再让 a 指向它,5 被丢弃了

    可变类型:list=[1,2,3,4] ,修改 list[2]=5,则是直接修改了第三个元素

  • 函数的参数传递:

    不可变类型:类似 C++ 的值传递,如整数、字符串、元组

    可变类型:类似C++的引用传递,如列表、字典

  • 可使用的正式参数类型:

    必须参数:必须以正确顺序传入的参数,否则会出现语法错误

    def func(str):
        print(str)
        
    func()	# 不加参数会报错
    

    关键字参数:关键字参数允许函数调用时参数的顺序与声明的不一致

    def func(str):
        print(str)
        
    func(str = "hello")
    

    默认参数:不传参数,会使用默认参数

    def func(name, age=35):
        pass
    
    func("Alice")
    

    不定长参数:使用 * 修饰,会以元组的形式导入

    def func(arg1, *vartuple):
        print(vartuple)
        
    func(10,20,30)
    

    若使用 ** ,则会以字典的形式导入

    def func(**vardict):
        print(vardict)
        
    func(a = 1,b = 2)
    

    参数 * 可以单独出现,但星号后的参数必须用关键字传入

  • 匿名函数:

    使用 lambda 来创建匿名函数

    匿名,即不再使用 def 语句这样标准的形式定义一个函数

    lambda 只是一个表达式,函数体比 def 简单很多。

    语法:lambda[arg1[,arg2,...argn]]:expression

    sum = lambda arg1,arg2: arg1 + arg2
    
    print(sum(10,20))
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值