ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-01-20 21:00:15  阅读:201  来源: 互联网

标签:函数 迭代 python sum 笔记 range 循环 print 第五天


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))

运行结果:
在这里插入图片描述

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

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()

运行结果:
在这里插入图片描述

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

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

运行结果:
在这里插入图片描述

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)

运行结果:
在这里插入图片描述

循环代码优化
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))

运行结果:
在这里插入图片描述
推导式

  • 列表推导式

先执行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)

运行结果:
在这里插入图片描述

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

运行结果:
在这里插入图片描述

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

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

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

运行结果:
在这里插入图片描述
综合练习

  • 绘制不同颜色的多个同心圆
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()

运行结果:
在这里插入图片描述

  • 绘制一个棋盘
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函数的分类
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__)

运行结果:
在这里插入图片描述

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

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

运行结果:
在这里插入图片描述

标签:函数,迭代,python,sum,笔记,range,循环,print,第五天
来源: https://blog.csdn.net/weixin_45649258/article/details/122609692

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有