用户:碳查看:1463 回复:32 评论:90 创建时间:2020-08-02T11:26:19
也许有很多萌(juan)新(lao)的程序有着这样的问题![]()
如果我们想要打印十次“碳”的话
那就只能把print写十遍:
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
print("碳")
#水帖成功(dooooge!)
虽然复制粘贴也是很方便的
但是如果我们要写100遍甚至上千上万遍的话
复制粘贴似乎也不是很好用了呢(恼)
这时候我们就可以用到这个语句:
for i in a:
运行语句
这个语句的意思呢是用i来遍历a
简单点就是每次循环时用i来代替a中的每一个元素,知道i为最后一个元素为止
这里套一下付费课程里面的一个例子:i就是售票员,a是买票的游客,每个游客都要去售票员那里去买票![]()
现在我们来讲一下经常跟for循环搭配的好兄弟range函数:
print(range(10))
我们可以看到运行的结果是:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
所以range函数就生成了一个从0到9的序列(也可以叫列表
)
(PS:列表是Python中最基础的多元素数据类型之一)
这里我们要注意的是:
range()函数中只有一个参数时
它生成的序列(列表)含有0但是不含有参数
range()函数中有两个参数时
它会生成一个从第一个参数到第二个参数的序列(含有第一个参数不含有第二个参数)
range()函数中有三个参数时
与含有两个参数类似,但是序列中的每个元素之间的差为第三个参数
(这个非常重要要当重难点记的嗷
)
接下来我们来举几个例子:
print(range(10))
print(range(2, 5))
print(range(0, 100, 20))
而运行的结果是:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4]
[0, 20, 40, 60, 80]
在掌握了range()函数之后呢我们就可以让range()函数与for循环结合在一起用辣
:
for i in range(5):
print("碳")
然后运行的结果就是:
碳
碳
碳
碳
碳
所以这样的话就可以省略很多彳亍代码辣![]()
(这里碳小声告诉你们一个技巧嗷)
(当有一段代码是以下语句的形式的话:)
for i in range(x):
运行语句
(这个代码的意思就是执行x回for循环中的运行语句嗷
)
像i这样的只是一个被定义的变量的名字,大多数的字符都可以当这个i(i可以不调用,而且for循环外也可以用)
比如下面的代码运行时:
for i in range(5):
print(i)
print(i)
运行结果就4:
0
1
2
3
4
4
于是这节课就到这里结束辣![]()
课后作业:
1.写出一个可以执行50次且第一个数字是1每次打印的数字之间的差都是3的程序(选做)
2.试着开发脑洞自己做出一个有趣的程序
(选做)
更新一下之前写的预告
:
预告:
大概在学到5集还是6集的时候某人会举行一个Python程序设计大赛嗷
代码范围的话就是某人教程帖里面的内容
大家可以把做好的程序放在评论区
三天过后碳会选出名次的嗷~
奖励:
第一名:250源码币(+50创意奖励)+某人做的获奖证书+包邮编程猫绝版猪年公仔![]()
第二名:150源码币(+50创意奖励)+某人做的获奖证书
第三名:100源码币(+25创意奖励)+某人做的获奖证书
幸运选手:50源码币
幸运选手抽奖方法:(用random库的randint函数随机生成一个整数并且抽取)![]()
这里奉上猪年公仔的自拍:

(不知道是某碳的拍照技术太渣还是电脑的原因总觉得有点暗
)
如果要报名的话就在本帖下面的置顶评论里面打出来自己的名字嗷![]()
这样如何?
import turtle
import random
turtle = turtle.Pen()
turtle.speed(0)
turtle.hideturtle()
n = random.randint(4, 7)
color = ['red', 'orange', 'blue', 'green', 'yellow', 'purple']
length = 400
while n:
for i in range(n):
turtle.pencolor(random.choice(color))
turtle.forward((length / n))
turtle.left((360 / n))
点赞0
评论
我们还没学到turtle哎(疑惑)
妈妈妈妈,今天我打了大佬的脸

点赞0
评论
注意下面
range生成的是range对象,既不是列表(Python2患者?)也不是迭代器
王 八编辑器是js写的,肯定有疏忽
或者不是疏忽识别的
什么鬼
谁说range生成的是列表/快乐
哦不是吧我学的Python3不是这样的(写帖子的时候还在王 八编辑器里面试了的
看来王 八编辑器还是不是很好用
233
type()呢?
应该没人知道可以这样循环吧
import sys
sys.setrecursionlimit(8)
def a():
print('看我循环!!')
try:
a()
except:
return
a()
#循环次数=上面的递归深度-4点赞1
评论
别,立马碾压我的水平(汗
递归函数……………… 最好注意点,别一下子搞个无限递归,内存分分钟爆炸
那是你电脑不行(doge)
好像Python有规定的递归次数吧...
不知道啊
NirvanaOvO切~八百年前就学会了/doge
点赞0
评论
然鹅你就不看看我的好玩模式
(下方)
他是教给萌新的
切~我也就学了一百几十节课而已(doooooge!
对对对
你确定???RE懂吗?REQUESTS懂么?PYGAL懂吗?
正则表达式爬虫画图
没看到狗头你就输了(doge)
第五期出了吗(可爱大眼睛)/doge
点赞1
评论
还霉有啊(doge)
555我要看第五集!!!
明天更!明天必须更!(确信)
上午很有可能
坐等(可爱)
马上去更嗷(确信)
耶!!!!!
啊这出现了点问题我发不了帖子了(恼)
马上去找官方解决
啸猫while True:
input()
你完全不知道input可以放外面
点赞1
评论
???
不知道你在说神魔
嗯。是的,可以放外面,只是不能记录返回值
昂,其实是不能直接放在外面滴
如果放外面,while循环内部得放个pass
为什么我就不需要pass呢?
系统就会报错
奇怪奇怪奇怪...
range()生成的东西看起来并不是列表...
print(type(range(1, 10)))
# 运行结果:<class "range">
但,这东西可以用来迭代
for i in range(1, 10 + 1) :
print(i)
# 运行结果:1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
好怪...
点赞1
评论
本来range()函数生成的是列表
但是i这个变量重复赋值为列表中的每一个函数
锁以打印出来的是纯数字昂(也许是这样解释的吧)
是,range不是list不是tuple,是一个单独的类,打印出来为range(……)。详见https://shequ.codemao.cn/community/307007
不是列表啦!
https://shequ.codemao.cn/community/329846
那我的王·八编辑器怕不是假的(doge)
才怪,range类型
这叫遍历!
对啊???(雾隐之术)
2.x的确是list, 但是3.x就是序列了
LogicMi = 1
b = 1
print(b)
for i in range(151):
b = (b + 1)
if (b % 3 == 1):
print(b)
#是个屑没错了点赞1
评论
可以了可以了(doge)
b = (b + 1)可以写成b + = 1(doge)
虐心工作间额……楼下绝对多此一举,而且还是错的
for i in range(1, 3 * 50 + 2, 3):
print(i)
点赞1
评论
所以写152他不香吗(doge)
对的吧?
range()有三个数值耶。。。
print([i*3+1 for i in range(50)])
有比这更短的吗 :(
<doge /><狗头保命 />
点赞0
评论
map(lambda i:i*3+1,range(50))
列表解析真不错
#qwq.py print([i*3+1 for i in range(50)]) #awa.py import qwq 就9个字母(doge)
麻烦了 print(range(1,151,3))
窝草,列表生成式
for i in range(1,100):
print(i,end' ')点赞0
评论
少了个等于号,应该是: for i in range(1,100): print(i, end=' ')
哦,当时没注意
这么久了,你是怎么挖到的