2020-9-27 Python基础学习第五天笔记

这篇博客主要介绍了Python的基础知识,包括条件语句的使用,程序优化技巧,如避免低效计算和利用局部变量,以及推导式的应用,如列表、字典、集合和生成器推导式。此外,还讲解了函数的形参和实参、return语句以及文档字符串的重要性。最后,提供了几个程序练习,如绘制同心圆和棋盘,用于巩固所学概念。
摘要由CSDN通过智能技术生成


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 子句,否则不执行。

二、优化程序

避免不必要的低效计算:

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

三、推导式

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值