文章目录
2020-9-25 Day5
1.条件语句
练习1.九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("{0}*{1}={2}".format(i,j,i*j),end="\t")
print()
练习2.遍历字典列表组成二维数组
r1 = {"name":"高小一","age":18,"salary":30000,"city":"北京"}
r2 = {"name":"高小二","age":19,"salary":20000,"city":"上海"}
r3 = {"name":"高小五","age":20,"salary":10000,"city":"深圳"}
tb = [r1,r2,r3]
for x in tb:
if x.get("salary")>10000:
print(x)
练习3. 要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和 薪资明细,以及平均薪资
salary = []
num = 0
while (True):
s = input("请输入员工的薪资:")
if s.upper() == "Q":
print("录入完成,退出!")
break
if float(s)<0:
print("输入错误!薪资不能小于0!")
else:
salary.append(float(s))
num += 1
print("员工总数量:{0}, 平均薪资是:{1}".format(num,sum(salary)/num))
print("薪资明细:")
for i in range(0,num):
print("员工:"+ str(i+1)+"\t薪资是:"+str(salary[i]))
while、for 循环可以附带一个 else 语句(可选)。如果for、while 语句没有被break 语句 结束,则会执行else 子句,否则不执行。
二、优化程序
避免不必要的低效计算:
- 减少循环内部的计算
- 嵌套循环中,减少内层循环的计算,计算式尽可能向外提。
- 局部变量查询较快,尽量使用局部变量
- 连接多个字符串,使用 join()而不使用+
- 列表进行元素插入和删除,尽量在列表尾部操作
三、推导式
1. 列表推导式
[x*2 for x in range(1,20) if x%5==0 ]
cells = [(row,col) for row in range(1,10) for col in range(1,10)]
for cell in cells:
print(cell)
2.字典推导式
>>> my_text = ' i love you, i love sxt, i love gaoqi'
>>> char_count = {c:my_text.count(c) for c in my_text}
>>> char_count {' ': 9, 'i': 4, 'l': 3, 'o': 5, 'v': 3, 'e': 3, 'y': 1, 'u': 1, ',': 2, 's': 1, 'x': 1, 't': 1, 'g': 1, 'a': 1, 'q': 1}
#用正常语句来写
```python
my_text = ' i love you, i love sxt, i love gaoqi'
char_count1 = {}
for c in my_text:
char_count1[c] = my_text.count(c) #新增字典元素的写法
print(char_count1)
3.集合推导式
>>> {x for x in range(1,100) if x%9==0}
{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}
4.生成器推导式(元组推导式)
一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。
>>> gnt = (x for x in range(1,100) if x%9==0)
>>> for x in gnt:
print(x,end=' ')
9 18 27 36 45 54 63 72 81 90 99
>>> for x in gnt:
print(x,end=' ')
>>>
四、函数
1. 形参和实参
(1) 圆括号内是形式参数列表,有多个参数使用逗号隔开
(2) 形式参数不需要声明类型,也不需要指定函数返回值类型
(3) 无参数,也必须保留空的圆括号
(4) 实参列表必须与形参列表一一对应
2. return返回值
(1) 如果函数体中包含 return语句,则结束函数执行并返回值;
(2) 如果函数体中不包含return 语句,则返回None 值。
(3) 如果要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。
3. 文档字符串(函数的注释)
(1) 通过三个单引号或者三个双引号来实现“函数的注释,中间可以加入多行文字进行说明。(2) 调用 help(函数名.doc)可以打印输出函数的文档字符串
五、程序练习
1.画同心圆
import turtle
mycolor = ['red','green','yellow','blue']
radiar = 10
t = turtle.Pen()
for i in range(10,100,10):
t.penup()
t.goto(0,10-i)
t.pendown()
t.pencolor(mycolor[int(i/10)%4])#除法自动生成float类型
t.circle(i)
2.画18*18棋盘
import turtle
t = turtle.Pen()
for i in range(19):
t.penup() #画19条横线
t.goto(-90,-90+i*10)
t.pendown()
t.forward(180)
t.left(90)
t.penup() #画19条竖线
t.goto(90-10*i,-90)
t.pendown()
t.forward(180)
t.right(90)
turtle.done()