day04-python基础内容三:循环结构


前言

python学习第四天内容:python中的循环:for循环和while循环;同时对range函数进行了学习和使用。


一、for 循环

循环结构—可以让代码重复执行(代码写一遍,可执行多次)
for循环是python中最重要的循环结构。

1. 语法:

for循环的语法如下:

for 变量 in 序列:
	循环体

说明:

forin 	—   关键字,固定写法
②变量     	—   变量名(符合标识符规范和要求,要见名知义等等)
③序列    	—   序列就是python中容器型数据类型(set集合、str字符串、list列表、tuple元组、迭代器、生成器、range等)对应的数据
④ :         —   冒号,固定写法,英文输入
⑤循环体   	—   和for保持一个缩进的一条或者多条语句(至少一条语句);放需要重复执行的代码,即循环体就是会被重复执行的代码

执行过程说明:

让变量到序列中取值,一个一个的取,直到取完为止,每取一个值就执行一次循环体。
for循环的循环次数和序列中元素的个数数量有关,即可以通过控制序列中元素的个数数量来控制循环的次数。

示例:

for i in "LOVE":
    print(i)

# 代码执行过程:
"""
第1次循环:i = L --->print(i) --->打印L
第2次循环:i = O --->print(i) --->打印O
第3次循环:i = V --->print(i) --->打印V
第4次循环:i = E --->print(i) --->打印E
"""
2.range()— range函数

range()函数通常是结合 for 使用的,单独使用没有什么意义。range函数是for循环的最佳拍档。
2.1 range()函数的用法

1)range(N)    —   产生一个[0,N),差是1的左闭右开的等差数列,N必须是正整数。
2) range(M,N)  —   产生一个[M,N),差是1的左闭右开的等差数列,其中M小于N。可用于在容器型数据序列中读取一段序列。
3) range(M, N, step)  —   产生一个[M,N)左闭右开且差值为step的等差数列。

2.2 求和套路

#练习:求1+2+3+4+...+100的和
sum = 0      					# 第一步:定义一个变量保存最后的和,变量默认值为0
for i in range(1, 101):         # 第二步:通过遍历序列获取到要求和的数据,通过循环获取求和的数据
   sum += i                     # 第三步:取到需要的数据就在保存和的变量中加一个数据,也就是设计计算方法
print(sum)

print("===============================")

#练习:求[60, 70, 78, 80, 98, 80, 90, 100]的和以及平均值
sum_score = 0
score = [60, 70, 78, 80, 98, 80, 90, 100]
for s in score:
   sum_score += s
   average_value  = sum_score / len(score)
print("总和:", sum_score, "\n平均值:", average_value)

2.3 统计个数的套路

# 练习:成绩低于60为不及格,求一组成绩[45, 78, 90, 45, 67, 100, 90, 98, 76]中不及格的个数,同时输出总成绩。
#1)定义一个变量保存最后的个数(定义一个变量保存最后要求的数据),默认初始值为0
count = 0
total_score = 0
score = [45, 78, 90, 45, 67, 100, 90, 98, 76]
#2)通过循环获取统计的对象
for s in score:
   total_score += s
#3)判断获取到的对象是否符合个数加1的条件(判断获取到的数据是否符合所要求的条件)
   if s < 60:
       count += 1
print("总成绩:", total_score, "\n不及格个数:", count)
# 练习:计算2*4*6*....*10的结果
accumulate = 1
for x in range(2, 21, 2):
   accumulate *= x
print("2*4*6*....*10的结果为:", accumulate)		# 3715891200
#练习:计算100以内所有能被3整除但是不能被5整除的数的和以及数的个数
sum = 0
count = 0
for i in range(3, 101, 3):
   if i % 5 != 0:
       sum += i
       count += 1
print(count, "\n100以内所有能被3整除但是不能被5整除的数的和:", sum)		
#27 
#100以内所有能被3整除但是不能被5整除的数的和: 1368

二、while 循环

whiler循环是编程语言中一种重要且灵活的循环结构。

1. 语法:

while循环的语法如下:

while 条件语句:
    循环体

说明:

while		—   关键字,固定写法
②条件语句	—   任何有结果的表达式都可以,如:具体的数据、已经赋值过的变量、运算表达式(赋值运算除外)
③   :		—   固定写法
④循环体		—   和while保持一个缩进的一条或者多条语句(至少一条);循环体就是需要重复执行的代码

执行过程说明:

先判断条件语句是否为True,如果为True就执行循环体,执行完后再判断条件语句是否为True,为True又执行循环体....
依次类推,如果判断条件语句的结果为False时循环直接结束。

注意:如果一开始判断条件语句为False时,就不执行循环直接结束循环;
如果判断条件语句结果一直是True时,则会陷入死循环。
while循环要控制次数。

练习1:

# 打印1,2,3,4,5
num = 1
while num <= 5:
    print(num)
    num += 1

练习2:

# 练习:完成猜数字游戏:游戏开始产生一个0~100的随机数,用户不断输入数字,直到输入的数字和产生的随机数相等为止,如果猜错了给出大了或者小了的提示.
i = int(input("请您输入一个数(0~100):"))
import  random                              # 引入随机数
value = random.randint(0, 100)       
# value = random.randint(a, b)产生a到b的随机数,value的值就是0—100的随机数
while i != value:
    if i > value:
        print("大了!")
    elif i < value:
        print("小了!")
    i = int(input("请您再输入一个数:"))
print("恭喜您,猜对了!", i)
2.for和while的选择

结论:如果循环次数是确定的,选择for循环;如果循环次数不确定,就选择while循环。


练习:

# 1.使用for和while循环计算50~150中所有能被3整除但是不能被5整除的数的和
# 使用for循环
sum = 0
for i in range(50, 151):
    if i % 3 == 0 and i % 5 != 0:
        sum += i
print(sum)
print("===========================")
# 使用while循环
num = 50
total_num = 0
while 50 <= num <= 150:
    if num % 3 == 0 and num % 5 != 0:
        total_num += num
    num += 1
print(total_num)
# 2.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身.# 例如:153是1个水仙花数,因为  `1³ + 5³ + 3³ ` 等于 153。
for i in range(100, 1000):
    if ((i % 10) ** 3) + ((i // 10 % 10) ** 3) + ((i // 100) ** 3) == i:
        print(i)
# 3.输出9*9口诀。
# 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
i = 1
while 1 <= i <= 9:
    j = 1
    while j <= i:
        print("%d × %d = %d" % (j, i, i * j), end=' | ')  
        j += 1
    print()
    i += 1

总结

以上就是今天学习的内容,本文初步介绍回顾了for循环和while循环的基础知识。range()函数和for循环搭档使用更为灵活。在python中如果循环次数是确定的,选择for循环;如果循环次数不确定,就选择while循环。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值