第一部分 for循环
for循环其实就是对列表、字典、元组、字符串的一个遍历,或者是做数学问题时的好方法。
range函数简介:
range(5)代表从0开始,遍历到4(5 - 1)结束。
range(1, 7)代表从1开始,遍历到6(7 - 1)结束
range(1, 6, 2)代表从1开始,便利到5(6 - 1),两两遍历,遍历到了1、3、5。
总结:range(开始数字, 终止数字 + 1, 间隔)。
让我们来看看for循环的样例吧!
for i in range(a,b,c):
do_something
1. 小明想求1 + 2 + 3 + …… + n的和,请你用计算机计算出来。
输入样例:10
输出样例:55
题目分析:需要用到for循环,和range函数。
n = int(input())
total = 0
for i in range(1, n + 1):
total += i
print(total)
2. 小明想求1 * 3 * 5 * …… * n的结果是多少,请你用计算机计算出来。
n = int(input())
total = 1
for i in range(1, n + 1, 2):
total *= i
print(total)
3. 输入一个字符串,小明想要遍历这个字符串,把字符串中的每个字符按空格隔开并输出。
n = input()
for i in range(len(n)):
print(n[i],end = " ")
len(x)指的是求x的长度,x可以是字符串、列表、字典、元组。
还可以直接遍历字符串。
n = input()
for i in n:
print(i,end = " ")
4. abc * bc = 2829,输出a,b,c是多少,以空格隔开。
下列代码采用枚举法(for循环枚举)去枚举a、b、c,从而得出答案,
for a in range(1,10): # 枚举a(0~9)
for b in range(1,10): # 枚举b(0~9)
for c in range(10): # 枚举b(0~9)
num_1 = a * 100 + b * 10 + c # 求出abc这个数字
num_2 = b * 10 + c # 求出bc这个数字
num_3 = num_1 * num_2 # 求出abc * bc
if num_3 == 2829: # 判断它是否是2829
print("%d %d %d"%(num_1,num_2,num_3)) # 是,就输出
第二部分 while循环
while循环就是如果满足这个条件,就会一直执行,直到不满足了为止。
让我们来看while循环的样例吧!
i = 0
while something:
do_something
i += 1
1. 小明想要求1 + 2 + 3 + …… + n的和,请你用while循环写出代码吧!
题目分析:while循环进行枚举求和
n = int(input())
i = 1
total = 0
while i <= n:
total += i
i += 1
print(total)
2. 有一组数:1、1、2、3、5、8,输入n,请你输出这组数列的第n的数是多少。
题目分析:斐波那契数列,前两个数字的和等于这个数字。
n = int(input())
i = 3
fb, fb2 = 1, 1
while i <= n:
if i % 2 == 1:
fb = fb + fb2
else:
fb2 = fb + fb2
i += 1
print(max(fb,fb2))
3. 输入字符串n,小明想要通过while循环遍历字符串n,并倒序输出,以空格隔开。
题目分析:从len(n) - 1开始遍历,遍历到0。
n = input()
i = len(n) - 1
while i >= 0:
print(n[i],end = " ")
i -= 1
4. abc + cba = 444,请你用while循环求出a,b,c的值,以空格隔开输出。
a = 1
while a < 10:
b = 0
while b < 10:
c = 0
while c < 10:
num_1 = a * 100 + b * 10 + c
num_2 = c * 100 + b * 10 + a
c += 1
if num_2 < 100 or num_1 < 100:
continue
if num_1 + num_2 == 444 and a != b and a != c and b != c:
print("%d %d %d"%(a,b,c - 1))
b += 1
a += 1
这节课就讲到这里,下节课我们来学try except语句。
下次更新时间(6月4日)



