嵌套While循环及函数

嵌套While循环

练习:统计字母下划线的个数:

a= "ABCD_abcd_1234"
i = 0
#定义计数器
zm = 0
shuzi = 0
xhx = 0

while i="0" and a[i]<="9":
        shuzi+=1
    elif (a[i]>="A" and a[i]<="Z") or (a[i]>="a" and a[i]<="z"):
        zm+=1
    else:
        xhx+=1
    i+=1
print("数字是%d,下划线是%d,字母是%d"%(shuzi,xhx,zm))

注意:

a = "ABCDfdsafdsafds"   #下标 从 0 开始    

len()  返回字符串的长度
#获取字符串最大下标 len(a)-1


for循环嵌套

1.for 临时变量  in  可迭代对象

:1.可迭代对象即为可以进行遍历的对象(iterable迭代)a

       2.int不能被迭代,但字符串可以。for i in 5(X)

2.range函数

range(start,end,step)

for  i  in  range(1,5)
# 1,2,3,4

注意:range函数输出结果不包括end。

3.for循环嵌套   外层循环执行一次,内层执行多次

for i in range():
     for j in range():
        pass

案例:输出空心矩形

for i in range(5):
    #内层控制列
    for j in range(5): #第一行 *   第五行 *  第一列 * 第五列 *  其余 “ ”
        if i==0 or i==4 or j==0 or j==4:
            print("*",end=" ")
        else:
            print(" ",end=" ")
    #换行
    print()

函数

1.可通过Id()查看内存地址

2.将函数的引用赋值给一个变量

func=name
print(id(func)
#将函数的引用赋值给一个变量
func()#调用
#此处因name函数引用赋值给func
所以func()可以调用name

3.def func(num)----->num形参

   func(10)----->10 实参

注:传递过来的参数会按照位置找对应的形参进行赋值。(位置传参)

4.1函数 return 返回值

return具有返回功能,谁调用就返回给谁。

return后边不写数据,默认返回None

例1:

result=test(10)#此处调用函数,用变量接收返回值。

例2.

def num(a):
    result=a*10
    return result
ret=num(12)
print(ress)

注:return result(result必须有,如果没有则默认返回None)

4.2返回多个参数

def func(a,b): #a = x =10  b = y = 20
    m = a*10  #100
    n = b*10  #200
    return m,n  # 返回的是2个参数
x = 10
y = 20
func(x,y)

注意:

 i,j= func(x,y)
 print(i,j)

用变量接收 返回的是一个 元组对象 可迭代 就可以遍历

5.return无返回值

def func():
    print("-----")
    print("-----")
    return 
    print("-----")
a = func()
print(a) #None

注意:执行return后这个函数就i不在往下执行,退出函数

6.关键字参数

根据形参定义好的变量名称,实参名称也一样。

def  test(bnum,anum):
def test(anum=1,bnum=2)

6.1默认参数

已经在接收的函数中定义好的参数

def test(a,b,c=20):
     print("a:%d , b%d , c%d"%(a,b,c)) 
test(10,20,100)

注意:若调用时对默认参数重新传入参数值,则会将旧值覆盖掉。

7.可变参数(*args,**args)

*args会将传入参数变成元组或者字典,传入参数过多可以用*args

def func_dict(a,b,*args,**kwargs):          
    print(a)  #11                             
    print(b)  #22
    print(args) #(33, 44)
    print(kwargs) # {'nn': 100, 'mm': 200}

func_dict(11,22,33,44,nn = 100,mm=200)
可变参数 **kwargs 将传递过来的数据变成字典  
{} 以 : 隔开 ,key: value 形式存储数据

注意:**kwargs必须放在*args后面


总结

return、break、continue的区别?

return,关键字并不是专门用于跳出循环的。return的功能,是结束一个方法。

continue与return的区别:return直接结束这个方法.不管return处于多少层循环内。continue只是终止本次循环,接着开始下一次循环。

break用于完全结束一个循环,跳出循环。break,不仅结束其所在循环,还结束外层循环。

 

 

 

 

你可能感兴趣的:(嵌套While循环及函数)