练习:统计字母下划线的个数:
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
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,不仅结束其所在循环,还结束外层循环。