python基础,控制语句与函数

≡放荡痞女 提交于 2020-03-01 02:38:03

一,for循环
for 变量 in 可迭代对象 :
循环体语句
注意:for循环其实是将可迭代对象依此赋给变量。包含range迭代器
用for循环遍历可迭代对象,代码如下:

 for i in [1,2,3]:
	print(i)

1
2
3
>>> for i in (1,2,3):
	print(i)

1
2
3
>>> for i in {1,2,3}:
	print(i)

1
2
3
>>> d={1:2,2:3}
>>> for i in d:
	print(i)

1
2
>>> for i in d.items():
	print(i)

(1, 2)
(2, 3)
>>> for i in '123':
	print(i)

1
2
3

练习:
1,计算0到100的总和,奇数和,以及偶数和

sum=0
sum_odd=0
sum_even=0
for i in range(101):
    sum+=i
    if i%2==1:
        sum_odd+=i
    else:
        sum_even+=i
print(sum)
print(sum_even)
print(sum_odd)
print('0到100的总和为{0},奇数和为{1},偶数和为{2}'.format(sum,sum_odd,sum_even))

2,打印9*9乘法表

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

3,用字典打印一个表格

r1=dict(name='g1',age=18,salary=30000)
r2=dict(name='g2',age=19,salary=20000)
r3=dict(name='g3',age=20,salary=10000)

q=[r1,r2,r3]

for i in q:
    print(i)

#复习
for i in range(3):
    print(q[i].get('name'),'\t',q[i].get('age'),'\t',q[i].get('salary'),'\t')

二,其他语句
1,break语句:跳出循环,只能跳出一层循环
2,continue语句:结束本次循环,立即开始下一次循环
3,else语句:跟在循环体后面,则循环体正常结束的时候执行该语句,若遇break则不执行。

练习,从键盘上输入员工工资,按q或Q结束,最后统计员工数,平均薪资并打印各自的薪资

num=0
salarys=[]
salarysum=0
while True:
    salary=input('请输入一个员工的薪资(按q或Q结束):')
    if salary.upper()=='Q':
        print('输入结束')
        break
    if salary.isdigit()==0:
        print('请输入正数或Q')
        continue
    else:
        num+=1
        salarys.append(salary)
        salarysum+=float(salary)
print('总人数为{0},薪资为{1},平均薪资为{2}'.format(num,salarys,salarysum/num))

三,循环代码优化问题
1,尽量减少循环内部不必要的运算,尽量放在循环外
2,尽量减少内层循环的计算,放在外层循环
3,尽量使用局部变量,局部变量查询快
4,连接多个字符时使用join(),而不用+号
5,尽量在列表尾部进行操作

四,zip()并行迭代
注意:tuple()创建元组,里面为可迭代对象

names=('g1','g2','g3','g4')
ages=(18,19,20,21)
for name,age in zip(names,ages):
    print(tuple([name,age]))

五,推导式创建序列
1,推导式创建列表
注意:条件前加if,列表等集合不能没定义就使用

a=[x*2 for x in range(50) if x%5==0]
print(a)

# 普通方法
b=[]
for i in range(50):
    if i%5==0 :
        b.append(i*2)
print(b)
a=[(x,y) for x in range(5) for y in range(5) if x%2==0 and y%2==0]
print(a)

2,字典用推导式实现

text='123452133124132'
dict1={c:text.count(c) for c in text}
print(dict1)
#普通代码实现
a={}
for i in text:
    c=text.count(i)
    a[i]=c
print(a)

统计数字出现次数

3,集合推导式
字典推导式取消值对象即可

4,生成器推导式(元组推导式)

a=(x for x in range(5))
print(tuple(a))
#生成生成器
for x in  a :
    print(x)

第二次打印为空,因为指针已经偏移

六,海归绘图
用t=turtle.Pen()可用t代替turtle前缀
但t.done()不可行,要用turtle.done()
t.speed()可调整速度。0最快,1最慢
例子:画一个18*18的棋盘

import turtle
t=turtle.Pen()
t.speed(0)

for i in range(19):
    t.penup()
    t.goto(-180,180-20*i)
    t.pendown()
    t.goto(180,180-20*i)
for i in range(19):
    t.penup()
    t.goto(-180+20*i,180)
    t.pendown()
    t.goto(-180+20*i,-180)
turtle.done()

2,生成十个同心圆。

import turtle
t=turtle.Pen()
t.speed(0)
t.width(5)
color=['red','yellow','blue','black','green']
for i in range(10):
    t.penup()
    t.goto(0,-20*i)
    t.pendown()
    t.color(color[i%5])
    t.circle(10+20*i)

turtle.done()

七,函数(可重用的代码段)
1,python函数分类:(1)内置函数:如str(),len()
(2)标准库函数:直接用import()引入
(3)第三方库函数:下载后用import()引入
(4)用户自定义函数
2,函数定义与调用

def sum(a,b):
    c=a+b
    return c%7

sum=sum(10,20)
print(sum)


def sum(a,b):
    c=a+b
    return [c,a,b]


sum=sum(10,20)
print(sum)

要点:(1)形参与实参
(2)返回值:return语句,结束函数并返回值两个功能。
返回多个返回值用集合储存起来。
(3)文档字符串:用来说明函数功能。可用help(函数名.doc)查看
注意文档字符串虽然为注释但一定要缩进,不然程序会 报错。

def sum(a,b):
    '''求和'''
    c=a+b
    return [c,a,b]


sum1=sum(10,20)
print(sum1)
x=help(sum.__doc__)
print(x)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!