我是靠谱客的博主 辛勤大地,这篇文章主要介绍python for循环与函数函数,现在分享给大家,希望可以做个参考。

循环控制

for循环表达式

for循环通常用来遍历可迭代的对象

注意:

~for...in...属于固定格式  

~iterable表示可迭代对象

~i是变量名(可更改),代表可迭代对象里面的每个元素

while循环九九乘法表

i=1

while i <10:

       j=1

       while j<=i:

              print('*',end="")

              j +=1

i=i+1

print()

for循环九九乘法表

for i in range(1,10):

      for j in range(1,i+1):

             print(f'{j}*{i}={j*i}',end=' ')  #end='n'

       print()

while和for区别例子:

复制代码
1
2
3
4
5
6
7
8
9
10
li = [1, 2, 3, 4] l = len(li) # 4 # 设置循环结束条件 num = 0 while num<4: print(li[num]) num +=1 print('-'*100) for i in li: print(i)

函数

函数定义

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

语法格式

def 函数名 (参数1,参数2)

      代码块

函数名() # 调用函数

~先定义函数,后调用

~如果没有写调用函数,函数里面的代码不会执行

~当执行完函数里面的代码,会再次回到调用函数的位置

函数作用

提高应该模块性与代码复用性

函数参数

可变类型参数与不可变类型参数:

~不可变类型参数在函数体内对变量重新赋值,相当于重新开辟了一块内存保存值

~可变类型参数在函数体内可以改变原有值

位置参数

~位置参数也就是实参与形参顺序一一对应,不论变量名

关键字参数

~以形参=实参形式指定,不论参数位置

默认值参数

~函数定义是已经先定义值,如果不传实参,形参会使用默认值

可变长度参数

1.*args:数据类型为元组

2.**kwargs:需要以键值对的形式传参,打包成字典的数据类型

例子:

复制代码
1
2
3
4
5
6
7
8
#定义函数 def multi_table(): for i in range(1, 10): for j in range(1, i + 1): print(f'{j}*{i}={j * i}', end=' ') # end='n' print() #调用函数 multi_table()
复制代码
1
2
3
4
5
6
7
8
#不可变的参数 def text(a): # a为形参 a=10 #整数是不可变类型,改变值相当于重新开辟了内存地址 print(a) a=1 text(a) print(a)
复制代码
1
2
3
4
5
6
7
8
#可变参数 def text(a): a.extend([1,2])#列表是数据可变类型,改变是,是同一个东西 print('inner',a,id(a)) a = [1,2,3,4] text(a) print('out',a,id(a))
复制代码
1
2
3
4
5
#位置参数 def person(name,age): print(f'你的姓名是{name},年龄是{age}') person('zhangsan',18)#实参与形参位置是一一对应的
复制代码
1
2
3
4
5
#关键字参数 def person(name,age): print(f'你的姓名是{name},年龄是{age}') person(age=18,name='zhangsan')#关键字不受位置影响
复制代码
1
2
3
4
5
#默认值参数 def person(name='zhangsan',age=19): print(f'你的姓名是{name},年龄是{age}') person()#已经定义好了,传与不传没有关系 你的姓名是zhangsan,年龄是19
复制代码
1
2
3
4
5
#*args def text(*agrs):#接收是会转化为元组数据类型 print(agrs) text(1,2,3,4,5)#不传也没事,返回空元组
复制代码
1
2
3
4
5
6
7
#**kwargs dic=dict(name='zhangsan',age=18) print(dic) def text(**kwargs): print(kwargs) text(a=1,b=2)#转化为字典类型
复制代码
1
2
3
# 解包 a,b,c=(1,2,3) print(a,b,c)

函数返回值

~使用return关键字返回内容

~将内容返回到函数调用处

~函数体中没用return语句时,函数运行结束,则默认返回None,也被称为隐含返回值

例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def text(a, b): c = a + b # c 属性函数内部的值 return c # 将值返回到函数调用位置 # 拿到c的值,永久保存 num = text(1, 2) print(num) #摄氏度 def c_tem(): c_t = 18 print(f'摄氏度{c_t}') return c_t #华氏度 def f_tem(c_t): f_t = c_t/1.8+32 print(f'华氏度{f_t}') c=c_tem() f=f_tem(c)
复制代码
1
2
3
4
5
6
def text():   #局部作用域,作用域范围是函数体内 a,b,c = (1,2,3) return a,b,c print(text())#(1, 2, 3)

#全局变量

复制代码
1
2
3
4
5
6
7
8
9
10
11
例子1: a = 100 def text(): print(a)# 全局的a,如果局部没有,去全局找 def text2(): a = 200 # 局部的,全局的同时存在,优先使用局部的变量 print(a) #200 text() text2() print(a)
复制代码
1
2
3
4
5
6
7
#global a=100 def text2(): # global a #可以通过global告诉系统a是全局的 a=20 #也可以在内部声明局部 a = a+10 #系统分不清等号后的a是局部的还是全局的 print(a) #200
复制代码
1
2
3
4
5
6
7
8
9
#nonlocal def text(): b=6 def text2(): nonlocal b #父级作用域 b=7 #只在text2里面有效 text2() print(b) text()
复制代码
1
2
3
#bulit--in int float str #范围:bulit--in>global>enclosing>local # 优先使用:bulit--in<global<enclosing<local

递归函数

介绍:

函数直接或间接调用函数本身,则该函数称为递归函数

复制代码
1
2
3
4
5
6
7
8
9
def myfunc(n): if n > 1: # print(n) return n+myfunc(n - 1) else: return 1 sum = myfunc(3) print(sum)

内置文件函数

#返回1-10的奇数函数

for循环

复制代码
1
2
3
for i in range(1,11): if i%2 !=0: print(i)

#偶数则将改变range(2,11,2)

filter结果为True留下,为False排除

复制代码
1
2
3
4
def text(i): return i%2==1 print(list(filter(text,range(1,11))))

匿名函数

介绍:

当我们传入函数时,有些时候,不需要重复调用该函数,直接传入匿名函数更为方便,也无序担心函数名冲突,并且还可以将匿名函数赋值给一个变量,再利用变量来调用该函数

复制代码
1
2
3
4
5
6
7
def ad(a,b): return a+b print(ad(1,2)) f = lambda a,b:a+b print(f(1,2))

最后

以上就是辛勤大地最近收集整理的关于python for循环与函数函数的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(94)

评论列表共有 0 条评论

立即
投稿
返回
顶部