python基础学习第五天———笔记

for循环和可迭代对象遍历

可迭代对象:
python包含以下几种可迭代对象:
1.序列。包含:字符串、列表、元组
2.字典
3.迭代对象
4.生成器函数

sum_all=0
sum_odd=0
sum_even=0
for x in range(101):
    sum_all += x
    if x%2==1:
        sum_odd += x
    else:
        sum_even += x
print("1-100累加和为{0},奇数和为{1},偶数和为{2}".format(sum_all,sum_odd,sum_even))

运行结果:
python基础学习第五天———笔记

嵌套循环
一个循环体内嵌入另一个循环
【操作】利用循环写出九九乘法表

for m in range(1,10):
    for n in range(1,m+1):
        print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
    print()

运行结果:
python基础学习第五天———笔记

break语句
break语句可用于while和for循环,用来结束整个循环
【操作】使用break语句结束循环

while True:
    a=input("请输入一个字符(输入Q或q结束)")
    if a=="q" or a=="Q":
        print("循环结束")
        break
    else:
        print(a)

运行结果:
python基础学习第五天———笔记

continue语句
continue语句用于结束本次循环,继续下一次。多个循环嵌套时,continue也是应用于最近的一层循环
【操作】要求输入员工的薪资,若薪资小于0则重新输入,最后还打印出录入员工的数量和薪资明细,以及平均薪资

empNum=0
salarySum=0
salarys=[]
while True:
    s=input("请输入员工的薪资(按Q或q结束)")
    if s.upper()=='Q':
        print("录入成功,退出")
        break
    if float(s)<0:
        continue
    empNum +=1
    salarys.append(float(s))
    salarySum+=float(s)
print("录入薪资:",salarys)

运行结果:
python基础学习第五天———笔记

循环代码优化
1.尽量减少循环内部不必要的计算
2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提
3.局部变量查询较快,尽量使用局部变量
其他优化手段:
1.连接多个字符串,使用join()而不用+
2.列表进行元素插入和删除,尽量在列表尾部操作

使用zip()并行迭代
可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止

#测试zip()并行迭代
names=("小A","小B","小C","小D")
ages=(18,19,20,22)
citys=("北京","上海","广州","深圳")
for name,age,city in zip(names,ages,citys):
    print("{0}--{1}--{2}".format(name,age,city))

运行结果:
python基础学习第五天———笔记
推导式

  • 列表推导式

先执行for循环,再给前面的x赋值

y=[x*2 for x in range(1,5)]
print(y)

运行结果:[2,4,6,8]

  • 字典推导式
my_text="abcdefg,higklmn,abcdkelei"
char_count={c:my_text.count(c) for c in my_text}
print(char_count)

运行结果:
python基础学习第五天———笔记

  • 集合推导式
b={x for x in range(1,100) if x%7==0}
print(b)

运行结果:
python基础学习第五天———笔记

  • 生成器推导式(生成元组)

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了

gnt=(x for x in range(4))
print(tuple(gnt))
print(tuple(gnt))

运行结果:
python基础学习第五天———笔记
综合练习

  • 绘制不同颜色的多个同心圆
import turtle
t=turtle.Pen()
my_colors=("blue","red","yellow","green")
t.width(4)
t.speed(10)
for i in range(5):
    t.penup()
    t.goto(0,-i*10)
    t.pendown()
    t.color(my_colors[i%len(my_colors)])
    t.circle(20+i*10)
turtle.done()

运行结果:
python基础学习第五天———笔记

  • 绘制一个棋盘
import turtle
width=30
num=18
x1 = [(-300,300),(-300+width*num,300)]
y1 = [(-300,300),(-300,300-width*num)]
t=turtle.Pen()
t.speed(10)
for i in range(0,19):
    t.penup()
    t.goto(x1[0][0],x1[0][1]-30*i)
    t.pendown()
    t.goto(x1[1][0],x1[1][1]-30*i)

for i in range(0,19):
    t.penup()
    t.goto(y1[0][0]+30*i,y1[0][1])
    t.pendown()
    t.goto(y1[1][0]+30*i,y1[1][1])

turtle.done()

运行结果:
python基础学习第五天———笔记

函数用法和底层分析
函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。
python函数的分类
1.内置函数
2.标准库函数
3.第三方库函数
4.用户自定义函数
函数的定义和调用

#测试函数的定义和调用
def test01():
    print("**"*5)
    print("^^^"*4)
for i in range(10):
    test01()

在python中,一切都是对象,函数一定要先定义后调用

形参和实参
参数列表
1.圆括号内是形式参数列表,有多个参数则使用逗号隔开
2.形式参数不需要声明类型,也不需要知道函数返回值类型
3.无参数,也必须保留空的圆括号
4.实参列表必须与形参列表一一对应
用三个引号引起来的字符串为函数注释

def printMax(a,b):
    '''用于比较两个数的大小,打印较大值'''
    if a>b:
        print(a,'较大值')
    else:
        print(b,'较大值')
printMax(10,20)
printMax(30,5)
help(printMax.__doc__)

运行结果:
python基础学习第五天———笔记

返回值
return返回值要点:
1.如果函数体中包含return语句,则结束函数执行并返回值。
2.如果函数体中不包含return语句,则返回None值。
3.要返回多个返回值,使用方法、元组、字典、集合将多个值“存起来”即可。

def add(a,b):
    print("计算两数之和:{0}".format(a+b))
    return a+b
c=add(20,60)

运行结果:
python基础学习第五天———笔记

上一篇:计数问题


下一篇:三体攻击(蓝桥杯省赛2018C/C++A组第七题) 暴力