Python快速入门2:函数、循环、判断(需要有编程基础)

Python函数:

定义函数语法:

python 复制代码
def functionName(parameters):
   function_body
   return [expression]

例:定义一个函数实现两数相交换:

python 复制代码
def swap_AB(a,b):
    temp = a
    a = b
    b = temp
    return a,b
a,b = 1,2
a,b = swap_AB(a,b)
print(f"a = {a},b = {b}")

Python函数参数:

在函数传递参数的过程中,有两种情况:

  1. 基本类型(如整数、浮点数、布尔值等)的传递方式是值传递。函数接收到的是参数值的副本,对参数的修改不会影响原始变量的值。
  2. 对于可变类型(如列表、字典等),参数传递的方式类似于地址传递。函数接收到的是对象的引用, "对象的引用" 指的是变量指向的内存地址,而不是对象本身,对对象的修改会影响原始变量

例1:基本类型

python 复制代码
def modify_value(x):
    x = x + 1

num = 5
modify_value(num)
print(num)  # 输出 5,因为函数内的修改不会影响原始变量 num 的值

例2:可变类型

python 复制代码
def modify_list(lst):
    lst.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)  # 输出 [1, 2, 3, 4],因为函数内修改了原始列表的值

默认参数:

默认参数就是调用函数时,默认参数的值如果没有传入,则被认为是默认值。

例如:

python 复制代码
def printinfo(name = "Gao", age = 18):
    "打印任何传入的字符串"
    print ("Name: ", name)
    print ("Age: ", age)
    return

# 调用printinfo函数
printinfo()
#输出为:
#Name:  Gao
#Age:  18

不定长参数:

当一个函数传入的参数不确定有多少个时,就可以声明使用不定长参数,函数语法如下:

python 复制代码
def functionname([formal_args,] *var_args_tuple):
   "函数_文档字符串"
   function_body
   return [expression]

第一个为正常参数,*var_args_tuple为不定长参数。例如:

python 复制代码
def printInfo(arg1, *vartuple):
    print(arg1)
    for var in vartuple:
        print(var)
    return
printInfo(70, 60, 50)
#输出为70 60 50

匿名函数:

使用 lambda 来创建匿名函数

  • lambda只是一个表达式
  • lambda函数不能访问自有参数列表之外或全局命名空间里的参数
  • lambda不等同于C或C++的内联函数

例如:

python 复制代码
sum = lambda arg1, arg2: arg1 + arg2

print("相加后的值为 : ", sum(10, 20))
#输出:相加后的值为 :  30

全局变量和局部变量:

定义在函数内的变量为局部变量,定义在函数外的变量为全局变量,要想在函数内使用全局变量,就要使用global声明此变量。

例如:

python 复制代码
InData = 1
def func():
    InData = 2
    print(InData)
func()
print(InData)
#输出为2 1

使用global声明全局变量:

python 复制代码
def func():
    global InData
    InData = 2
    print(InData)
func()
print(InData)
#输出为2 2

Python循环:

for循环:

for循环的语法为:

python 复制代码
for <variable> in <sequence>:
    <func_code>
else:
    <else_code>

sequence可以为不同类型的变量,例如,列表,元组,集合,字典,字符串,range对象等,注意:使用字典时,variable每次循环的值对应字典的的键,而不是字典的值

例:

python 复制代码
a = ["1","2","3"]
b = (1,2,3)
c = {1:"a",2:"b",3:"c"}#字典
for i in a:
    print(i)
for j in b:
    print(j)
for k in c:
    print(k)
#输出:1 2 3 1 2 3 1 2 3

例2(range):

range函数用法:range(起始值,结束值,步长)

例如:

python 复制代码
for i in range(1,10,2):
    print(i)
else:print("循环结束")
#输出:1 3 5 7 9 循环结束

while循环:

while循环格式:

python 复制代码
while <expression>:
    <while_code>
else:
    <else_code>

例如:

python 复制代码
count = 0
while count < 3:
    print(count)
    count = count + 1
else:print("while循环结束,count值为:",count)
#输出:0 1 2 while循环结束,count值为: 3

Python判断:

判断的语法格式如下:

python 复制代码
if condition_1:
    code_1
elif condition_2:
    code_2
else:
    code_3

例:

python 复制代码
is_happy = True
mood_index = int(input("心情指数是:"))
if mood_index >= 60:
    print("可以打游戏")
    print("原神启动")
elif mood_index <60 and mood_index >= 40:
    print("再等等")
else:#mood_index<40
    print("不可以打游戏")
相关推荐
ac-er88884 分钟前
ThinkPHP中的MVC分层是什么
开发语言·php·mvc
shinelord明34 分钟前
【再谈设计模式】建造者模式~对象构建的指挥家
开发语言·数据结构·设计模式
平头哥在等你44 分钟前
Python中的正则表达式教程
python·正则表达式
黑不拉几的小白兔1 小时前
PTA部分题目C++重练
开发语言·c++·算法
Best_Me071 小时前
如何在Pycharm的终端里进入自己的环境
ide·python·pycharm
写bug的小屁孩1 小时前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3
材料苦逼不会梦到计算机白富美1 小时前
线性DP 区间DP C++
开发语言·c++·动态规划
java小吕布1 小时前
Java Lambda表达式详解:函数式编程的简洁之道
java·开发语言
sukalot1 小时前
windows C#-查询表达式基础(一)
开发语言·c#
好看资源平台2 小时前
爬虫开发工具与环境搭建——环境配置
爬虫·python