Python(自学之旅六)

上期我们讲到了循环,这期我们还是继续来了解一下循环有关的知识

嵌套循环

 实例:

# 嵌套循环
import time

for x in range(5):
    for y in range(5):
        print(x,end="\t")  # 制表符 把默认换行换成空格
    print()  # 起到换行的作用

# 打印九九乘法表
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()  # 换行

# 使用列表和字典存储表格的数据
tb = []
r1 = dict(name="小明",age=18,salary=30000,city="北京")
r2 = dict(name="小红",age=19,salary=10000,city="杭州")
r3 = dict(name="小刚",age=20,salary=9000,city="上海")

tb = [r1, r2, r3]

for x in tb:
    if x.get("salary")>15000:
      print(x)

break语句

实例:

# 操作break 语句
while True:
    a = input("请输入一个字符")
    if a.upper() == "Q":
        print("循环结束")
        break
    else:
        print(a)

 conyinue语句

 

实例:

 

# continue 语句
empNum = 0
salaryNum = 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))
    salaryNum += float(s)

print("员工数{0}".format(empNum))
print("录入薪资",salarys)
print("平均薪资{0}".format(salaryNum/empNum))

else语句:

实例:

 

# 测试循环中的else语句 (循环被中断不执行,正常结束执行)
for i in range(4):
    s = input("请输入员工的薪资(按Q或q结束)")

    if s.upper() == "Q":
        print("录入完成,退出")
        break
    if float(s) < 0:
        continue
    salarys.append(float(s))
    salaryNum += float(s)
else:
    print("您已经全部录入4名员工的薪资")
print("录入薪资",salarys)
print("平均薪资{0}".format(salaryNum/4))

循环代码优化

 

 实例:

# 循环代码优化测试
start = time.time()
for i in range(1000):
    result = []
    for m in range(10000):
        result.append(i*1000+m*100)

end = time.time()
print("耗时:{0}".format(end-start))

start2 = time.time()
for i in range(1000):
    result = []
    c = i*1000
    for m in range(10000):
        result.append(c+m*100)

end2 = time.time()
print("耗时:{0}".format(end2-start2))

其他的一些优化手段

使用zip()并行迭代

 实例:

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

names = ("aa", "bb", "cc", "dd")
ages = (18, 19, 30, 50)
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]))

 推导式创建序列

列表推导式 

 实例:

# 列表推导式
y = [x*2 for x in range(1, 5) ]  # 包头不包尾
y = [x*2 for x in range(50) if x % 5 == 0]  # 加if判断
y = [(a, b) for a in range(5) for b in range(5)]  # 双循环给元祖赋值
print(y)
# 列表不使用推导式
y = []
for x in range(1, 5):
    y.append(x * 2)
print(y)

字典推导式

 实例:

y = "abbcccddddeeeee"
x = {c:y.count(c) for c in y}  # 统计字符出现的次数
print(x)

集合推导式:

实例:

# 集合推导式 集合输出没有顺序
b = {x for x in range(1,100) if x % 9 == 0}
print(b)

 生成器推导式(生成元祖)

 实例:

# 生成器推导式(生成元祖)
gnt = (x for x in range(4))
# print(tuple(gnt))  # 转换成元祖

for x in gnt:  # gnt是生成器对象,生成器是可迭代的对象,只能使用一次
    print(x,end=",")

函数简介

 

 

 实例:

# 可以反复调用 函数也是对象(函数对象)
def test01():
    print("*"*10)
    print("@"*10)

test01()  # 调用函数
print(id(test01))
print(type(test01))
print(test01())

形参和实参

 

实例:

# 测试形参、实参的基本用法(形参用于定义, 实参用于调用)
# 参数与传入的参数需一一对应
def printMax(a, b):
    '''
    这个就是函数的注释
    :param a:
    :param b:
    :return:
    '''
    if a>b:
        print(a, "最大值")
    else:
        print(b, "最大值")

print(printMax(3, 2))  # 调用函数
help(printMax.__doc__)  # 打印函数的注释

 好啦我们下期见

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值