Python基础DAY5(9.29)

1.for循环和可迭代对象遍历

    for循环通常用于可迭代对象的遍历,语法格式如下:

            for 变量 in 可迭代对象:

                  循环体语句

for x in (10,20,30):
    print(x*3)
for y in 'asdfe':
    print(y)
a={'name':'Bob','age':18,'sex':'male'}
for b in a:  #遍历所有的key
    print(b)
for x in a.keys():  #遍历所有的key
    print(x)
for x in a.values():   #遍历所有的值
    print(x)
for x in a.items():    #遍历所有的键值对
    print(x)   #('name', 'Bob')元组

0-100求和

sum_all=0
for x in range(101):
    sum_all+=x
print(sum_all)

2.嵌套循环

for x in range(5):
    for y in range(5):
        print(x,end='\t')
    print()   #起到换行的作用
'''
0	0	0	0	0	
1	1	1	1	1	
2	2	2	2	2	
3	3	3	3	3	
4	4	4	4	4	
'''

打印九九乘法表

z=0
for x in range(1,10):
    for y in range(1,x+1):
        z=x*y
        print('{0}*{1}={2}'.format(x,y,z),end='\t')
    print()   #起到换行的作用

储存表格信息并且进行选择 

#使用列表和字典储存表格信息
tb=[]
r1={'name':'高小一','age':18,'salary':30000,'city':'Beijing'}
r2={'name':'高小二','age':19,'salary':40000,'city':'Shanghai'}
r3={'name':'高小三','age':20,'salary':50000,'city':'Shenzhen'}
tb=[r1,r2,r3]
for x in tb:
    if x.get('salary')>15000:
        print(x)

3.break语句

break语句可用于while和for循环,用来结束整个循环,当有嵌套循环时,break语句只能跳出最近一层的循环。

#测试break
while True:
    a=input('请输入一个字符(输入Q或q时退出):')
    if a=='Q' or a=='q':
        print('循环结束,退出')
        break
    else:
        print(a)

continue语句

continue语句用于结束本次循环,继续下一次,多个循环嵌套时,continue也是应用于最近的一层循环。

#测试continue
emNum=0
salarySum=0
salarys=[]
while True:
    s=input('请输入员工的工资(按Q或q结束):')
    if s=='Q':
        print('录入完成,退出。')
        break
    if float(s)<0:
        continue  #退出了这次循环进行下一次
    emNum+=1
    salarySum+=float(s)
    salarys.append(float(s))
print('员工数{0}'.format(emNum))
print('录入薪资:',salarys)
print('平均薪资{0}'.format(salarySum/emNum))

4.else语句

       while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else子句。否则不执行。 

#测试else
salarySum=0
salarys=[]
for i in range(4):
    s=input('请输入一共4名员工的薪资(按Q或q中途结束)')
    if s=='Q' or s=='q':
        print('录入完成,退出')
        break
    if float(s)<0:
        continue
    salarys.append(float(s))
    salarySum+=float(s)
else:
    print('您已全部录入4名员工的薪资')
print('录入薪资:',salarys)

5.循环代码优化(循环次数较多)

(1)尽量减少循环内部不必要的运算。

(2)嵌套循环中,尽量减少内层循环的计算,尽可能向外提。

(3)局部变量查询较快,尽量使用局部变量。

(4)连接多个字符串,使用join而不使用+。

(5)列表进行元素插入和删除,尽量在尾部进行。

6.使用zip()并行迭代

zip()函数对多个序列进行迭代

names=('张三','李四','王五')
ages=(20,17,18)
jobs=('老师','工人','程序员')

for name,age,job in zip(names,ages,jobs):
    print('{0}--{1}--{2}'.format(name,age,job))

for i in range(3):
    print('{0}--{1}--{2}'.format(names[i],ages[i],jobs[i]))

7.推导式创建序列

列表推导式

列表推导式生成列表对象,语法如下:

    [表达式  for   item   in    可迭代对象]

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

cells=[(row,col) for row in range(1,10) for col in range(1,10)]
print(cells)

字典推导式

    {key:value  for  value  for  表达式  in  可迭代对象}

my_text='I love you,i love the sunshine,i love the way you lie'
char_count={c:my_text.count(c) for c in my_text} #确定键和值
print(char_count)
#用循环实现相同功能
a={}
for i in my_text:
    a[i]=my_text.count(i)
print(a)

集合推导式

    {表达式 for  item   in  可迭代对象}

b={x for x in range(1,101) if x%9==0}
print(b)  #{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

生成器推导式(用于生成元组)

一个生成器只能运行一次,用过不可再用。

#生成器推导式生成元组,gnt是生成器,生成器是可迭代对象
gnt=(x for x in range(4))
print(gnt)   #<generator object <genexpr> at 0x0000021868F40660>
print(tuple(gnt))  #(0, 1, 2, 3)
print(tuple(gnt))  #()

8.画同心圆练习

import turtle

t=turtle.Pen()

my_color=('red','green','yellow','black','purple','orange')

t.width(4)

t.speed(0)
for i in range(50):
    t.penup()
    t.goto(0,10-i*10)
    t.pendown()
    t.color(my_color[i%len(my_color)])
    t.circle(10+i*10)

turtle.done()#程序执行完,窗口仍然在

9.函数用法和底层分析

函数是可重用的程序代码块。python中,定义函数的语法如下:

def 函数名([参数列表]):

      '''文档字符串'''

      函数体/若干语句

要点:

       使用def来定义函数,def之后是空格,然后是函数名和(),Python执行def时,会创建一个函数对象,并绑定到函数名变量上。

10.形参和实参

文档字符串(函数的注释)

#测试形参、实参的基本用法

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

11.return()详细解释

#测试返回值的基本用法
def add(a,b):
    print('计算两个数的和:{0},{1},{2}'.format(a,b,a+b))
    return a+b

def t02():
    print('sxt')
    print('gao')
    return

    print('hello')   #return两个作用:1.返回值  2.结束函数的执行

def t03(x,y,z):
    return[x*10,y*10,z*10]#输出列表

c=add(30,40)
print(add(30,40)*10)
t02()
b=t03(1,2,3)
print(b)

上一篇:红色小恐龙团队--冲刺DAY5


下一篇:ok6410 android driver(10)