# range方法其实就是一个可迭代对象
使用公式:
defmy_range():
passfor i in my_range(0, 10):
print(i)
书写:
# start是起始位置,end为终点位置,step为步长默认为1defmy_range(start, end=None, step=1):
# 当没有给end传值ifnot end:
end = start
start = 0# 当第一个参数没有第二个大while start < end:
# 返回第一个参数yield start
# 每次循环增加一个步长数
start += step
for i in my_range(1, 10):
print(i) # 1 2 3 4 5 6 7 8 9# 当只有一个列表时
end 可以不传值,应该设置成一个人默认函数,end=None
end = start
start = 0# 当有两个数的时候,步长step默认1
四、生成器表达式
# 在做代码优化时,可以使用
表达式为:
res = (i for i in'owen') # 里面的值自定义print(res) # <generator object <genexpr> at 0x0000021DEF13BB30> 生成器模式#使用双下next调用print(res.__next__()) # o
1 、生成器练习题
defadd(n, i):
return n + i
deftest():
for i inrange(4):
yield i
# 把nest函数变成生成器对象
g = test()
for n in [1, 10]:
g = (add(n, i) for i in g)
""" 当第一次for循环时
g = (add(n, i) for i in g)
当第二次for循环时
g = (add(10, i) for i in (add(10, i) for i in g))
"""
res = list(g) # list 底层就是for循环,相当于对g迭代取值操作print(res)
A. res=[10,11,12,13]
B. res=[11,12,13,14]
C. res=[20,21,22,23]
D. res=[21,22,23,24]
选 c
from md import name
print(name) # owen
name = 'mary'print(name) # mary#当导入列表只有name,你使用money时from md import name
print(money) # 报错 因为from只导入name"""
1.执行当前文件产生一个名称空间
2.执行导入语句 运行模块文件产生名称空间存放运行过程中的所有名字
3.将import后面的名字直接拿到当前执行文件中
4.重复导入也只会导入一次
5.使用模块名称空间中的名字不需要加模块名前缀 直接使用即可
6.但是from...import的句式会产生名字冲突的问题
在使用的时候 一定要避免名字冲突
7.使用from...import的句式 只能使用import后面出现的名字
from...import...可以简单的翻译成中文
从...里面拿...来用 没有提到的都不能用
"""
七 、导入句式的补充说明
1.可以给模块起别名(使用频率很高)
模块名或者变量名太长或者太复杂的时候, 可以简写
import md as m
print(m.name)
from md import name as n
print(n)
2.连续导入多个模块或者变量名
import time, sys, md
from md import name, age, pwd
"""
1.连续导入多个模块 这多个模块最好有相似的功能部分 如果没有建议分开导入
2.如果是同一个模块下的多个变量名无所谓
3.使用逗号隔开的方式
"""3.通用导入
from md import *
'''
*表示md里面所有的名字,from...import的句式也可以导入所有的名字
如果模块文件中使用了__all__限制可以使用的名字 那么*号就会失效 依据__all__后面列举的名字
'''print(name)
print(age)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人