今天学习了while循环嵌套、for循环以及Python函数,是Python基础中的重点。因为在后面的学习中会经常用到。
pass 占位符 :是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。
while True:
pass
下面是while循环嵌套的一个例子:
i = 0
# 外层循环
while i<5:
#内层循环
j = 0
print("这是第%d行"%i) # 外层循环执行 1 次 内层循环执行5次
while j<5:
print("----------------") #print 默认换行
j+=1 #0 1 2 3 4
#换行
print()
i+=1
练习:打印三角形
row = 0
# 外层循环打印行
while row<5:
col = 0
# 内层循环控制列
while col<=row:
print("*",end=" ")
col+=1
print(" ")
row+=1 # 增加行数
下面我们用while循环嵌套实现九九乘法表:
i = 1
#外层循环控制行数
while i<=9:
j = 1
#内层循环控制 列数
while j<=i:
print("%d * %d = %d"%(j,i,j*i),end=" ")
j+=1
print()
i+=1
假设a = "ABCDfdsafdsafds" ,下标索引 从 0 开始 len() 返回字符串的长度
可通过 len(a)-1 获取字符串最大下标
例如:统计字母下划线数字个数
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))
遍历:就是将元素一个一个取出来的过程
可迭代对象:可以进行遍历的对象 iterable(迭代)
用一个例子说明for循环的作用:
a = "1234567890%$#@"
b = 10
# i 临时变量
for i in a:
print(i,end=" ")
由上面的例子可以看出for 循环的基本结构:
for 临时变量 in 可迭代对象:
pass
range(start,end,step) (起始参数,结束参数,步长)
例如1:
for i in range(2,20): # 不包含end
print(i,end=" ")
加上步长后:
for i in range(1,10,3): # range 函数步长默认为 1
print(i,end=" ")
基本结构:
for i in range():
for j in range():
pass
for循环嵌套案例:
①实心矩阵
for i in range(5):
for j in range(5):#0 ,1,2,3,4
print("*",end=" ")
#换行
print()
②空心矩阵
# 外层控制行
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()
# format 格式化数据
import random
ret = random.randint(1,99)
# print("随机生成的: %d"%ret)
start = 0
end = 99
#用户输入的数字
while True:
boom = int(input("请输入{}到{}你要的数字:".format(start,end))) # 将输入的数字转成int类型
if boom >ret:
print("大了")
end = boom
elif boom
格式:def 函数名称():
pass
注意函数名称不能用中文!
def print_num():
print("=" * 40)
print(" 名片管理系统 v.10" )
print("1.xxx")
print("2.xxx")
print("=" * 40)
print_num()
函数的参数:
#形参
def func(num): # func被调用时 将传递过来的参数 赋值给了num ,func函数就可以使用num变量
print("传递过来的参数是%s"%num)
a = "nihao"
func(a) #实参
#传递过来的参数是nihao
def fun_ret(a,b,c): # 传递过来的参数会按照位置 找对应的形参进行赋值 (位置传参)
print("传递过来第一个参数:%s,第二个参数%s"%(a,b))
print("颜色是%s"%c)
username = input("请输入你的名字:")
password = input("请输入你的密码:")
color = "Black"
#调用函数,传递两个参数
fun_ret(username,password,color)
return返回值:具有返回功能,返回值,谁调用就返给谁
def test(num):#num = 10
ret = num * 2
a = "nihao"
# return 具有返回功能 返回值 谁调用就返给谁,
return a # return 后面不写
# 数据,默认返回None
# 此处调用函数,用变量接收返回值
# result = ret
result = test(10)
print(result) #nihao
返回多个参数 return 无返回值 注意:执行return后 这个函数就不在往下执行了
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
#用变量接收 返回的是一个 元祖对象 可迭代 就可以遍历
i,j= func(x,y)
print(i,j) #100 200
return 无返回值 注意:执行return后 这个函数就不在往下执行了
def func():
print("-----")
print("-----")
return "aa"
print("-----")
a = func()
print(a) #None
例如:
# 函数的嵌套调用
def func1():
print("func1-------start")
def func2():
print("func2-------start")
func1()
print("func2-------end")
def func3():
print("func3-------start")
func2()
print("func3-------end")
#调用 func3
func3()
函数嵌套调用应用
def print_num():
print("--------")
def func():
i = 0
while i<5:
#调用函数
print_num()
i+=1
func()
关键字参数:根据形参里面定义好的变量名称,实参名称也一样
def test(bnum,anum):
print("第一个参数%d,第二个参数%d"%(anum,bnum))
test(anum=20,bnum=30)
#第一个参数20,第二个参数30
默认参数: 已经在接收的函数中定义好的参数
def test(a,b,c=20):
print("a:%d , b%d , c%d"%(a,b,c))
test(10,20,100) #a:10 , b20 , c100
*args会将传递的元素变成一个元组 ()
def sum_nums(a,b,*args): #*args会将传递的元素变成一个元组 ()
print(a) #11
print(b) #22
print(args) #(33, 44, 55, 66, 77, 88, 99)
result = a+b
for temp in args:
result +=temp
print(result)
sum_nums(11,22,33,44,55,66,77,88,99)
**kwargs 将传递过来的数据变成字典 {} 以 : 隔开 key value 形式存储数据
def func_dict(a,b,*args,**kwargs): # : 左边 是key 一般是字符串类型
print(a) #11 # : 右边 value 值
print(b) #22
print(args) #(33, 44)
print(kwargs) # {'nn': 100, 'mm': 200}
func_dict(11,22,33,44,nn = 100,mm=200)