Python基础知识第五天

for循环:
通常用于可迭代对象的遍历
可迭代对象可以是元组、字符串、列表,字典

for 变量 in 可迭代对象:
	循环语句

# for循环练习
for x in range(100):
    if x % 3 == 0:
        print(x, end='\t')
        
# 遍历字典
# 遍历字典所有的key
for x in d:
    print(x, end='\t')
print('\n')
# 遍历字典所有的key
for x in d.keys():
    print(x, end='\t')
print('\n')
# 遍历字典所有的value
for x in d.values():
    print(x, end='\t')
print('\n')
# 遍历字典所有的键值对
for x in d.items():
    print(x, end='\t')

print()中.format()使用:

print('{0}*{1}={2}'.format(int0, int2, int2))

嵌套循环练习:

# 九九乘法表
for x in range(1, 10):
    for y in range(1, 10):
        if y >= x:
            print('{0}*{1}={2}'.format(x, y, x*y), end='\t')
    print()

break语句:
用来中断while语句和for语句
当有嵌套,跳出最近一层循环

continue语句:
用于结束本次循环,继续下一次,当有嵌套时,作用于最近一层循环

# break练习
for x in range(1, 100):
    for y in range(1, 10):
        if y >= x:
            print('{0}*{1}={2}'.format(x, y, x*y), end='\t')
    print()
    if x >= 9:
        break

# continue练习
for x in range(1, 10):
    for y in range(1, 100):
        if y <= 9:
            if y >= x:
                print('{0}*{1}={2}'.format(x, y, x * y), end='\t')
        else:
            continue
    print()

循环else语句(else可选):
如果循环被break中断,不执行else,反之执行

循环代码优化:
尽量避免循环内部不必要的计算
嵌套循环中,尽量避免内层循环的计算,尽可能往外层放
尽量使用局部变量,速度较快
连接字符串尽量使用join()而不是+
列表插入和删除尽量在尾部操作

zip()并行迭代:
zip()函数可以对多个序列进行并行迭代,并在最短的序列用完时停止

# zip()并行迭代
r1 = ['数学', '英语', '语文', '体育']
r2 = [89, 78, 90, 'A']
r3 = ['良', '良', '优', '优']

for 科目, 分数, 评级 in zip(r1, r2, r3):
    print('{0}, {1}, {2}'.format(科目, 分数, 评级))

推导式:
推导式是从一个或多个迭代器快速创建序列的一种方法,它可以将循环和条件判断结合,从而简化代码

列表推导式:
通过推导生成列表对象

[表达式 for item in 可迭代对象 if 条件判断]

# 推导式
a = [x**y for x in range(20) if x % 5 == 0 for y in range(5)]
print(a)

# 循环
b = []
for x in range(20):
    for y in range(5):
        if x % 5 == 0:
            b.append(x**y)
print(b)

字典推导式:
通过推导生成字典对象

{key_expression:value_expression for 表达式 in 可迭代对象}

# 推导式
a = 'nfakshfaf afksjfasfhauf hafjbajskfhasoifjsa;'
b = {k:a.count(k) for k in a if k != ' '}
print(b)

# 循环
c = {}
for x in a:
    if x != ' ':
        c[x] = a.count(x)
print(c)

集合推导式:
集合包含的是字典的key值,不可重复

{表达式 for item in 可迭代对象 if 条件判断}

# 推导式
a = {x**y for x in range(20) if x % 5 == 0 for y in range(5)}
print(a)

# 循环
b = set()
for x in range(20):
    for y in range(5):
        if x % 5 == 0:
            b.add(x**y)
print(b)

生成器推导式(用来生成元组):
推导式返回的是生成器而不是元组,生成器只能使用一次
元组无法增加修改和删除

(表达式 for item in 可迭代对象 if 条件判断)

# 推导式
a = (x**y for x in range(20) if x % 5 == 0 for y in range(5)) # 生成生成器
a = tuple(a)
print(a)

练习:

# turtle绘画不同颜色的同心圆
import turtle
p = turtle.Pen()
x = 0
r = 10
s = ['red', 'blue', 'yellow']
for x in range(20):
    p.penup()
    p.goto(0, -(x * r))
    p.pendown()
    p.color(s[x%len(s)])
    p.circle((x * r) + 10)
turtle.done()

# turtle画棋盘
import turtle
p = turtle.Pen()
for x in range(20):
    p.penup()
    p.goto(0, x*15)
    p.pendown()
    p.goto((len(range(20))-1)*15, x*15)
    p.penup()
    p.goto(x*15, 0)
    p.pendown()
    p.goto(x*15, (len(range(20))-1)*15)
turtle.done()

函数的用法和底层分析:
函数是可以反复使用的代码块

python中函数分为几类:
内置函数:len(), str()等
标准库函数:通过import导入库,然后使用
第三方函数:python社区提供的库
自定义函数:用户自己定义的函数

定义函数:

def 函数名 ([参数列表]):
	'''文档字符串''' # 函数说明,相当于注释
	函数体

# 定义函数
def testfunction():
    print('test successful')

testfunction() # 调用函数

形式参数和实际参数:
当有多个参数,用逗号隔开
形式参数不需要声明类型,也不需要指定函数的返回值类型
实际参数必须与列表一一对应
形参是函数名后面括号里的参数,是在定义函数时使用的,形参的命名只要符合标识符命名规则即可
在调用函数时,实际传递的参数是实参

# a, b是形参
def whichmax(a, b):
    if a < b:
        print('{0} is max'.format(b))
    elif a > b:
        print('{0} is max'.format(a))
    elif a == b:
        print('They are equal')

whichmax(10, 90) # 10,90是实参
whichmax(10, 10) # 10是实参

文档字符串(函数的注释):
通过三个三引号或双引号来实现,中间可以加入多行文字进行说明
可以调用help()输出函数的文档字符串

help(函数名.__doc__)
help(whichmax.__doc__)

返回值:
如果函数包含return语句,则结束函数并返回值
如果函数不包含return语句,则返回None值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值