一.for循环和range函数
1.for循环
"""
for 变量 in 序列
循环体
"""
for x in [10, 20, 30]:
print('hello world!')
for x in range(6):
print('hello world!')
2.range函数 - 创建等差数列
"""
1)range(N) - 创建[0, N]的等差数列,差是1。
例:range(6):0 1 2 3 4 5
range(11):0 1 2 3 4 5 6 7 8 9 10
2)range(M, N) - 创建(M, N)的等差数列,差是1。(注意:M必须小于N,取值的时候取不到N)
例:range(5, 10):5 6 7 8 9
3)range(M, N, step) - 创建(M, N),差是step。
(当取值N的时候,N比序列最后一位+1 or -1)
range(2, 10, 2):2 4 6 8
range(10, 2, -2):10 8 6 4
"""
逻辑:等差数列通项公式 - An=A1+(n-1)d An=Am+(n-m)d d是公差
# 1 2 3 4 5
# 10 12 14 16 18
for x in range(5):
print(x) # 0 1 2 3 4 5
for x in range(-5, 5):
print(x) # -5 -4 -3 -2 -1 0 1 2 3 4
for x in range(-5, 5, 2):
print(x) # -5 -3 -1 1 3
# 没给等差值的时候,默认差值为1
# 练习:使用range函数生成以下等差数列
# 1) 0 1 2 3 4 5 6 7 8 9 10
for x in range(11):
print(x)
# 2) 9 10 11 12 13
for x in range(9, 14):
print(x)
# 3) 7 5 3 1
for x in range(7, 0, -2): # (当取值N的时候,N比序列最后一位+1 or -1)
print(x)
# 4) 5 4 3 2 1 0
for x in range(5, -1, -1):
print(x)
# 5) 12 15 18 21
for x in range(12, 22, 3): # (当取值N的时候,N比序列最后一位+1 or -1)
print(x)
3.累计求和
1) 定义变量保存最后的和,定义默认值是0
2) 通过for循环依次获取需要求和的每一个数据
3) 在循环体中取到一个需要求和的数据,就往结果中加一个值
# 案例:求1+2+3+...+100的和
sum1 = 0 # 1 + 2 -> 3 + 3 > 6 + 4 -> 10
for x in range(1, 101):
sum1 += x
print(sum1)
# 案例:求所有学生的总成绩: 98, 80, 70, 67, 55, 99, 81
scores = [98, 80, 70, 67, 55, 99, 81]
total_score = 0
for x in scores:
total_score += x
print(total_score)
# 练习1:求100+101+102+...+200的结果
sum2 = 0
for x in range(100, 201):
sum2 += x
print(sum2)
# 练习2:求nums中所有元素的和
nums = [89, 10, 22, 11, 4, 8, 9]
num1 = 0
for x in nums:
num1 += x
print(num1)
# 练习3:求nums中所有偶数的和
nums = [89, 10, 22, 11, 4, 8, 9]
sum2 = 0
for x in nums:
if x % 2 == 0:
sum2 += x
print(sum2)
4.统计个数
# 案例:统计100以内所有能被3整除的数的个数
count = 0
for x in range(1, 100): # 100以内正整数,可以从1开始
if x % 3 == 0:
count += 1
print(count)
# 练习:统计nums中奇数的个数
nums = [89, 10, 22, 11, 4, 8, 9]
count = 0
for x in nums:
if x % 2 == 1:
count += 1
print(count)
二. while循环
"""
语法:
while 条件语句:
循环体
执行过程:
先判断条件语句是否成立,如果成立就执行循环体,执行完循环体再判断条件语句是否成立,成立就再执行,
以此类推,直到条件语句的结果为False整个循环结束。
"""
# 案例:使用while循环控制程序打印5次'hello world!'
x = 0
while x < 5:
pri