文章目录
前言
本文介绍了range数列以及for循环的基础内容。
一、range数列
range函数是Python内置的一个函数,用于生成一个整数序列。
range函数是Python中用于生成指定范围内整数序列的常用工具函数。它的灵活性和简洁性使得它在编程中经常被使用。
range([start,] stop [, sep]) []中选填
start:起点,默认值是0, 包含
stop:终点,必填, 不包含
step:步长,默认值为1
扩展:第二个数比第一个数大,步长要为正;第二个数比第一个数小,步长要为负,否则结果为空。
代码实例讲解如下:
datas = range(10)
print(list(datas))# 结果为[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
datas = range(0, 10)
print(list(datas)) # 结果为[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
datas = range(5, 10)
print(list(datas)) # 结果为[5, 6, 7, 8, 9]
datas = range(5, 16, 4)
print(list(datas)) # 结果为[5, 9, 13]
# 扩展
datas = range(86, 68, -4)
print(list(datas)) # 结果为[86, 82, 78, 74, 70]
datas = range(1, 10, -1)
print(list(datas)) # 结果为[]
# 第二个数比第一个数大,步长要为正
# 第二个数比第一个数小,步长要为负 否则结果为空
二、for循环
循环是计算机编程中常用的控制结构之一,它可以让程序重复执行某些指令,直到满足某个条件才停止,循环结构:重复,多次执行
在Python中,for循环用于迭代遍历一个可迭代对象(如列表、元组、字符串等),并对其中的每个元素执行某个操作。
在循环体中,我们可以执行任何需要执行的操作,例如打印、计算、条件判断等。可以使用range()函数来生成一个序列,然后在循环中使用。循环还可以结合条件语句(如if语句)来灵活控制循环的执行过程。
其中,for循环是一种特别常见的循环结构,它通常用于在已知循环次数的情况下重复执行某些操作。其基本语法如下:
for (初始化表达式; 条件表达式; 更新表达式) {
// 待执行的代码块
}
需要缩进,和if相似。
整数、浮点、布尔、空值无法遍历,会爆错;for遍历在5种数据类型中只能用于range、字符串
- range:将range结果逐个赋予变量i
- 字符串:将字符串的内容逐个赋予c(c = char)
- range(一串数字)、for 变量名 in 内容
代码如下(示例):
# 将range结果逐个赋予变量i
for i in range(4):
print("早点睡", i)
# 字符串:将字符串的内容逐个赋予c(c = char)
for c in "早点睡":
print(c)
# 列表
for e in ["快下课了", "问一下", "吃什么", "炸酱面", True, 86]:
print(e)
习题
题目:计算1+2+3+4+…+100
total = 0
for i in range(1, 101):
total += i
print(total) # 结果为5050
可以简单求和 print(sum(range(1, 101))) ,但是现在在学习for循环和range数列,不建议使用sum函数
题目2:计算500-1000之间3的倍数的平均数
total = 0
n = 0
for i in range(500, 1001):
if i % 3 == 0:
total += i
n += 1
print(total / n) # 结果为750.0
题目3:计算:从500开始前10个13的倍数的平均数
total = 0
for i in range(500, 500+5*10, 5):
total += i
print(total / 10) # 结果为522.5
三、break与continue
四、for循环嵌套与案例
双层循环可以用于处理二维数据结构(如矩阵)或执行特定的重复操作。
外层循环变化依次,内层循环变化一轮
for i in range(3):
for j in range(3):
for m in range(3):
print(i, j)
案列1
输入一个数字,计算其的阶乘和 eg: 5! + 4! + 3! + 2! + 1!
num = int(input("请输入一个数字"))
total = 0
for i in range(1, num + 1):
a = 1
for j in range(1, i + 1):
a *= j
total += a
print(total)
案例2
打印9*9乘法表(for循环嵌套)
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j} x {i} = {i*j}", end="\t")
print()
案例3:控制图形
# i控制行 j控制列
# 基础图形
for i in range(9):
for j in range(9):
print(" * ", end="")
print()
# 空心正方形
for i in range(9):
for j in range(9):
if j == 0 or i == 0 or i == 8 or j == 8:
print(" * ", end = "")
else:
print(" ", end = "")
print()
# 两条对角线
for i in range(9):
for j in range(9):
if i + j == 8 or i == j:
print(" * ", end = "")
else:
print(" ", end = "")
print()
# 斜左上三角
for i in range(9):
for j in range(9):
if i + j <= 8:
print(" * ", end = "")
else:
print(" ", end = "")
print()
# 斜右上三角
for i in range(9):
for j in range(9):
if i <= j:
print(" * ", end = "")
else:
print(" ", end = "")
print()
# 沙漏
for i in range(9):
for j in range(9):
if (i + j <=8 and i <= j) or (i + j >= 8 and i >= j):
print(" * ", end = "")
else:
print(" ", end = "")
print()
案例4
求1000以内所有质数的平均数
n = 0
total = 0
for i in range(1000, 1, -1):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
n += 1
total += i
print(total / n) # 453.13690476190476
五、while循环
while在…期间
当while条件为真时,循环执行语句
默认开门(条件为真) 随着程序的执行,关门(条件为假)
循环内部需要将条件设置为False否则会成死循环(一直执行)
例题1:使用while循环打印10次醒醒了
n = 0
flag = True
while flag:
print("醒醒了")
n += 1
if n == 10:
flag = False
# 第2种方法,只适用于python,上一种其他语言也可以
n = 0
while n < 10:
print("醒醒了")
n += 1
例题2:每次输入一个整数,求输入了几次,前面所以整数的和大于100
total = 0
n = 0
flag =True
while flag:
num = int(input("输入一个整数"))
total += num
n += 1
if total > 100:
print(n)
flag = False
例题3:随机生成一个5-10之间的整数,请问随机多少次,数字的累加和可以大于100
import random
count = 0
total = 0
while total <= 100:
total += random.randint(5, 10)
count += 1
print(count)
六、while循环嵌套
例题4:使用while制作9*9乘法表
i = 1
while i < 10:
# 内层循环
j = 1
while j <= i:
print(f"{j} * {i} = {j*i}", end = "\t")
j += 1
print()
i += 1
七、for与while均可以搭配使用else
1、for搭配else运用
简单说明
for i in range(10):
if i == 3:
continue # 终止某一次循环 不会导致else不执行
break # 终止整个循环 导致else不会执行
print(i)
else:
print("for循环完整结束")
稍稍复杂一点:求1000以内10个最小的质数
count = 0
for i in range(2, 1000):
# 判定i是不是质数
for j in range(2, i):
if i % j == 0:
break
else:
count += 1
print(i)
if count == 10:
break
2、while+ else例题说明
while的和for用法类似
题目:1000以内最大的10个质数
value = 1000
count = 0
while value > 1:
j = 2
while j < value:
if value % j == 0:
break
j += 1
else:
print(value)
count += 1
if count == 10:
break
value -= 1
运行结果如下:
建议:写练习的时候一步步来,例如上面的题可以先写输出1000以内的数,然后判断质数、计数10个,输出,正确的部分放在那就不要动了,直接写容易出错,写一步运行一步,新手可以先慢慢来。
me就是一个鲜明的示例。(╥﹏╥)
总结:
以上就是今天要讲的内容,本文仅仅简单介绍了range数列和循环的简单应用