python学习-基础学习3

52 阅读3分钟

python学习-基础学习3

本文介绍 python 的基础学习,包括函数的定义、调用、参数传递、返回值、匿名函数(lambda)、局部变量和全局变量的作用域,以及练习俩个基础函数题。

供自己以后查漏补缺,也欢迎同道朋友交流学习。

引言

本章主要介绍 python 的基础学习,包括函数的定义、调用、参数传递、返回值、匿名函数(lambda)、局部变量和全局变量的作用域,以及练习俩个基础函数题。

函数

Python 的函数是一段可以重复使用的代码块,用于执行特定的任务。

定义和调用函数

定义函数使用 def 关键字

def greet(name):
  print(f"Hello, {name}!")

# 调用函数
greet("NiuNai")
# 输出: Hello, NiuNai

参数传递

参数传递有位置参数关键字参数默认参数可变参数这几种方式。

def add(a, b):
  return a + b
# 位置参数按照函数定义时参数的顺序来传递
print('@@@@ 位置参数',  add(5, 3))
# 输出 @@@@ 位置参数 8

# 关键字参数允许你通过参数名来传递参数,这使得代码更易读
print('@@@@ 关键字参数',  add(a=5, b=7))
# 输出 @@@@ 关键字参数 12

# 默认参数提供了参数的默认值,如果调用时没有提供这个参数,就会使用默认值。
def greet2(name = 'SuanNai'):
  print(f"Hello, {name}!")

greet2()
# 输出: Hello, SuanNai

# 可变参数允许你传递任意数量的参数给函数。
def add2(*args):
  return sum(args)

print('@@@@ 可变参数', add2(1, 2, 3, 4) )
# @@@@ 可变参数 10

返回值

函数可以通过 return 语句返回一个值。

def multiply(a, b):
  return a * b

匿名函数 lambda

匿名函数是一种简洁的定义函数的方式,通常用于创建简单的函数。

# 定义一个匿名函数,用于加 10
add_ten = lambda x: x + 10
result = add_ten(5)  # 15

作用域

局部变量

局部变量是在函数内部定义的变量,它们只能在该函数内部访问。

def my_function():
  local_var = 10
  print(local_var)  # 可以访问

my_function()
# print(local_var)  # 错误:局部变量不可在此访问
全局变量

全局变量是在函数外部定义的变量,它们可以在整个程序中访问。

global_var = 10

def my_function2():
  print(global_var)  # 可以访问

my_function2()
非局部变量

非局部变量是在嵌套函数中定义的变量,它们既不是全局变量也不是局部变量。

def outer_function():
  outer_var = 10

  def inner_function():
    nonlocal outer_var
    print(outer_var)  # 可以访问并修改

  inner_function()

outer_function()

函数基础练习

生成斐波那契数列

使用递归的方式生成斐波那契数列

def fibonacci_recursive(n):
  if n <= 0:
    return "请输入正整数"
  elif n == 1:
    return 0
  elif n == 2:
    return 1
  else:
    return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)

def generate_fibonacci_recursive(n):
  fib_list = []
  for i in range(1, n+1):
    fib_list.append(fibonacci_recursive(i))
  return fib_list

# 打印前10个斐波那契数
print(generate_fibonacci_recursive(10))
# 输出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

生成 1 到 100 之间的偶数列表

使用列表推导式生成 1 到 100 之间的偶数列表

even_numbers = [x for x in range(1, 101) if x % 2 == 0]
print(even_numbers)

python学习专栏系列

练习代码库地址

python-study