Python 3 基本语法(四)函数、生成器和类

文章目录

1.函数

def say_hello():
    print('Hello!')
 
def greetings(x='Good morning!'):
    print(x)
 
say_hello()                 		# Hello!
greetings()                 		# Good morning!
greetings("What's up!")     		# What's up!
a = greetings()             		# 返回值是None
 
def create_a_list(x, y=2, z=3):	# 默认参数项必须放后面
    return [x, y, z]
 
b = create_a_list(1)        		# [1, 2, 3]
c = create_a_list(3, 3)     		# [3, 3, 3]
d = create_a_list(6, 7, 8)  	        # [6, 7, 8]
 
def traverse_args(*args):
    for arg in args:
        print(arg)
 
traverse_args(1, 2, 3)              # 依次打印1, 2, 3
traverse_args('A', 'B', 'C', 'D')   # 依次打印A, B, C, D
 
def traverse_kargs(**kwargs):
    for k, v in kwargs.items():
        print(k, v)
 
traverse_kargs(x=3, y=4, z=5)       # 依次打印('x', 3), ('y', 4), ('z', 5)
traverse_kargs(fighter1='Fedor', fighter2='Randleman')
 
def foo(x, y, *args, **kwargs):
    print(x, y)
    print(args)
    print(kwargs)
 
# 第一个pring输出(1, 2)
# 第二个print输出(3, 4, 5)
# 第三个print输出{'a': 3, 'b': 'bar'}
foo(1, 2, 3, 4, 5, a=6, b='bar')

其实和很多语言差不多,括号里面定义参数,参数可以有默认值,且默认值不能在无默认值参数之前。Python中的返回值用return定义,如果没有定义返回值,默认返回值是None。参数的定义可以非常灵活,可以有定义好的固定参数,也可以有可变长的参数(args: arguments)和关键字参数(kargs: keyword arguments)。如果要把这些参数都混用,则固定参数在最前,关键字参数在最后。

Python中万物皆对象,所以一些情况下函数也可以当成一个变量似的使用。比如前面小节中提到的用字典代替switch-case的用法,有的时候我们要执行的不是通过条件判断得到对应的变量,而是执行某个动作,比如有个小机器人在坐标(0, 0)处,我们用不同的动作控制小机器人移动:

moves = ['up', 'left', 'down', 'right']
 
coord = [0, 0]
 
for move in moves:
    if move == 'up':        # 向上,纵坐标+1
        coord[1] += 1
    elif move == 'down':    # 向下,纵坐标-1
        coord[1] -= 1
    elif move == 'left':    # 向左,横坐标-1
        coord[0] -= 1
    elif move == 'right':   # 向右,横坐标+1
        coord[0] += 1
    else:
        pass
    print(coord)            # 打印当前位置坐标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值