Python中range数列与for循环

本文详细介绍了Python编程中for循环、while循环、range函数的用法,以及break和continue关键字的作用,包括循环嵌套和如何避免死循环。同时涵盖了计算阶乘和判断质数的示例。
摘要由CSDN通过智能技术生成

1.range()

range()函数用于生成一个数列,可以认为是一个等差数列。

函数具体形式为:range(start, stop, step)。start为开始,即起始数值,生成的数列包含起始值;stop为终点,即结束位置,生成的数列不包含结束位置的值;step为步长,即增量,当start>stop时,步长为负值,此时生成的数列是逆序。

参数stop终点是必须有的,在未说明start开始和step情况下,start默认为0,step默认为1。

range()函数三种使用情况:①range(stop);②range(start, stop);③range(start, stop, step)

代码案例如下:

# range(stop) 
datas = range(9)
print(list(datas))
# datas = range(9)  等同于  datas = range(0, 9, 1)
datas = range(0, 9, 2)
print(list(datas))

# range(start, stop)
datas = range(1, 9)
print(list(datas))

# range(start, stop, step)
datas = range(4, 16, 2)
print(list(datas))

# 当start > stop 时,step步长为负
datas = range(8, 2, -1)
print(list(datas))

执行结果:

2.for循环

循环就是重复多次执行,而for循环是遍历一系列的值或元素(可列举的多个内容),也就是将这些元素都打印出来。for循环遍历迭代的对象可以是range()函数生成的数列、列表、元组、字符串等,不能是整数、小数、None、True、False、一串字母数字等,如果要遍历这些,必须使用引号将这些内容引起来。

如:for i in range(10),是将range结果逐个赋予变量i。

代码案例:

案例1:

for i in range(10):
    print("醒醒", i)

此时的结果会打印十次“醒醒”。

案例2:

for c in "axvgjt":
    print(c)

执行结果:

案例3:

for e in ["吃了吗", "睡了吗", "饿了么", True, None, 40]:
    print(e)

执行结果:

案例4:

# 计算[500,1000]之间3的倍数的平均数
s = 0
# 个数
count = 0
# 获取500-1000之间的数
for i in range(500, 1001):
# 获取3的倍数
    if i % 3 == 0:
# 获取3的倍数的和
        s = s + i
#        个数+1
        count += 1
print(s / count)

3.break和continue

break--结束当前循环;continue--结束本次进入下一轮,循环不结束。

for i in range(6):
    if i == 1:
        continue
    if i == 5:
        break
    print("888")

i=0 两个if条件都不满足,直接打印888
i=1 满足第一个if条件,结束i=1,往下的代码不执行,直接继续执行i=2
i=2 两个if条件都不满足,直接打印888
i=3 两个if条件都不满足,直接打印888
i=4 两个if条件都不满足,直接打印888
i=5 满足第二个if条件,结束for循环,程序结束

运行结果:

4.for循环嵌套与案例

for循环嵌套规则:外层循环变化一次,内层循环变化一轮。

案例:计算1-5的阶乘相加的和是多少

num = int(input("请输入一个数字"))
total = 0
for i in range(1, num + 1):
    # 每次求阶乘都要从1开始算,所以s放内层
    s = 1
    # 内层循环求阶乘
    for j in range(1, i + 1):
        s *= j
    # 外层循环将五次求得的阶乘逐次相加
    total += s
print(total)

九九乘法表:

for i in range(1, 10):
    # 内层循环结束一次换行
    print()
    for j in range(1, i+1):
        print(f"{j} * {i} = {j * i}", end=" ")

执行结果:

5.while循环

while 默认条件为真,随着程序运行条件为假
while循环内部需要将条件设置为false,否则会成为死循环
结束while循环:条件为假 或者使用break

案例1:while循环打印10次醒醒了

can_open = True
count = 0
while can_open:
    print("醒醒了")
    count += 1
    if count == 10:
        can_open = False

案例2:每次输入一个整数,求输了几次,前面所有整数的和大于100了

count = 0
total = 0
while True:
    input_value = int(input("输入数字"))
    total += input_value
    count += 1
    if total > 100:
        print(count)
        break

执行结果:

6.while循环嵌套

案例:while循环实现九九乘法表

# for 循环使用的是range
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{j} * {i} = {i * j}", end="\t")
        j += 1
    print()
    i += 1

7.for与while都可以使用else

案例1:for使用else--判断一个数是否为质数

value = 11
for i in range(2, value):
    if value % i == 0:
        # 如果value能被一个i除尽,此时该数就不是质数
        # 跳出循环,下边的else不执行
        break
# 如果没有一个i能被value除尽,if条件不满足
# 此时该数是质数
else:
    print(value, "是质数")

案例2:while使用else--while循环判断质数

value = 11
i = 2
while i < value:
    # 判断是否质数条件
    if value % i == 0:
        # 如果value能被一个i除尽,i是value的一个因子
        # i是从2开始的,到value结束,不包含1和自己本身
        # 判断条件就是在求除1和自己本身还有没有其他因数
        # 除尽则证明还有除1和自己本身其他的因数
        # 所以该数不是质数,跳出循环
        break
    i += 1
# 上方if条件不满足,该数就是质数
else:
    print(value, "是质数"))

小结:

for循环的循环次数是确定的,而while循环的循环次数是不确定的。while循环在执行过程中要手动更新循环条件,使得条件为假,否则将会陷入死循环,即要有适当的退出条件。

while循环一定要写跳出循环的条件!!!

break是跳出整个循环,下方代码不执行,而continue只是将本次的值跳过,继续执行循环中的下一个值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值