一、for循环
1.for 循环结构
for 变量 in range(起始,终止,步长):
循环体
(终止位置取不到)
执行顺序:
1)定义变量
2)给变量赋值
3)变量和终止数值比较,若满足终止条件则停止循环
4)做循环体
5)变量自加一个步长
6)执行3
例:
for i in range(1,9,1):
print(i)
"""
执行顺序
1.i
2.i=0
3.i<9
4.print
5.i+=1
6.执行3
"""
#累加
sum=0
for i in range(1,9,1):
sum += i
print(sum)
#累乘
sum=1
for i in range(1,9,1):
sum *= i
print(sum)
2.嵌套循环:
外层循环:行
内层循环:列
例:
for i in range(0,4,1):
for j in range(0,i+1,1):
print("*",end=" ") #不换行打*
print() #换行
输出:
*
* *
* * *
* * * *
for i in range(0,4,1): #行
for k in range(0,3-i,1): #打印空格
print(" ",end=" ")
for j in range(0,i+1,1): #列
print("*",end=" ")
print()
输出结果:
*
* *
* * *
* * * *
3.旗帜法(立flag)
例:判断a是否为素数
a = 8
flag = False #立flag,使flag为假
for i in range(2,a//2+1): #因为一个属的因字数最大不会超过这个数本身的一半,所以终止为a//2+1
if a%i == 0: #如果a有因子数,则flag为真
flag = True
if flag : #if后加表达式,表达式的结果为bool型(flag结果也为bool型)
print("不是素数") # 因此若flag为假执行else,反之执行if
else:
print("是素数")
break:提前结束循环
abs(i):绝对值
循环最多有三层
练习:
1.盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!”
# for i in range (0,100,1):
# print('我能行!')
# 2.本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年内,每年获得的本金是多少?
# for i in range (1,5,1):
# jin = 10000*(1+0.003)**i
# print(jin)
# 3.计算出1—100之间所有能被3整除的整数的和?
# sum = 0
# for i in range (1,101,1):
# if i%3==0:
# sum+=i
# print(sum)
# 4.计算1000以内所有不能被7整除的整数之和?
# sum = 0
# for i in range (0,1001,1):
# if i%7!=0:
# sum+=i
# print(sum)
# 5. 用while做求10到20的累加和
# sum=0
# for i in range (10,21,1):
# sum+=i
# print(sum)
# 6.找出一个数的所有因子数
# num = int(input('请输入一个数:'))
# for i in range (1,num,1):
# if num%i==0:
# print(i)
# 7. 输入一个数,判断这个数是否是素数;
#法一
# flog=1
# num = int(input('请输入一个数:'))
# for i in range(2,num,1):#素数:除了自身只有1
# if num%i==0:
# flog=0
# print('不是素数')
# break #不循环
# if flog==1:
# print('是素数')
# break
#法二
# num = int(input("请输入一个数:"))
# flag=1
# if num<=3:
# pass
# else:
# for i in range(2,num):
# if num%i==0:
# flag=0
# break
# if flag==1:
# print('是素数')
# else:
# print("不是素数")
# 8定义一个正整数如:1205统计它的各位数字中零的个数,并求各位数字中的最大者。
# a = 0#零的个数
# 9.有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完
# sum = 1020
# for i in range(1,1000,1):
# sum =sum//2-2
# if sum<=0:
# print('第',i, '天卖完')
# break
# 10猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
# 第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。
# 到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
# tao = 1
# for i in range(1,10,1):
# tao = 2*(tao+1)
# print(tao)
# 11. 判断一个数是否是完全数(完数指的是一个数的所有因子数的和等于这个数本身,例如 6 = 1 + 2 + 3, 即6就是完全数)
# num = int(input('请输入一个数:'))
# sum = 0
# for i in range(1,num,1):
# if num%i==0:
# sum+=i
# if sum==num:
# print('是完全数')
# else:
# print('不是')
# 12. 循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误(使用break)
# zong=0#总分一开始为零
# flag=1#做个标记
# for i in range(1,6,1):
# score = int(input('请输入分数:'))
# if score<0:
# flag = 0
# print('录入错误')
# break
# else:
# zong+=score
# if flag==1:
# print(zong/5 )