day04_08.31

while循环

语法:

​ while 条件判断:

​ 循环体代码块

解读:

​ 只要条件成立,程序就一直在此循环,直到循环条件不成立

# 输出1-10之间的数据
# for循环的思想: 需要一个容器,容器中存放在1-10
for i in range(1, 11):  #  容器的起始值是1  步长是1  结束位置是11[不包含]
    print(i)

print('================')
思想

重复做的操作是什么 ==== 打印数据,每次打印一个

做这件事情的条件 ==== 只要打印的数据没有到10 就要一直打印

# 根据这两件事情,需要哪些数据支持
# 打印数据 每打印1次 数据要在原来的基础上+1
# 也就是说要打印的数据是变化的  就得设置标记名给其进行标记 [定义一个变量 记录打印的数据值]
num = 1
# 循环的操作
while num <= 10:
    print(num)
    # 数据还在原来的基础上+1
    num += 1
print('循环结束时 num的值', num)
1-10中的偶数 使用while打印1-10中的偶数
#定义一个数据的起始值

m = 1

#循环 数据进行递增

while m <= 10:
    if m % 2 == 0:
        print(m)
    m += 1
使用while循环 完成 1+2+3+…+100
# 使用for完成
total = 0  # 记录和的
for i in range(1, 101):
    total += i
print(total)

# 使用while完成
m = 1
total1 = 0
while m < 101:
    total1 += m
    m += 1
print(total1)
求 1-2+3-4+5-6+…-98+99-100
# range(1, 101)
k = 1
total2 = 0  # 接受和
while k < 101:
    if k % 2 == 0:
        total2 -= k
    else:
        total2 += k
    k += 1
print(total2)
求1-100中能被3整除且个位数为5的数据的个数
# range(1, 101)
p = 1
count = 0  # 计数器
while p < 101:
    # 判断这个数据是否满足要求
    if p % 3 == 0 and p % 10 == 5:
        count += 1
    p += 1
print(count)
循环结束的场景
  1. 明确的循环次数 — for - in 循环 遍历容器 容器中有多少数据 循环执行几次

  2. 明确的结束状态 — while 循环

    while 循环条件:

    ​ 满足条件就执行

经过上面代码的演示 while也可以适用于循环次数,只不过使用while书写起来麻烦一点 所以建议使用for - in 循环

有1023个桃子,猴子每天吃一半多一个,多长时间吃完
  1. 重复做的事情是什么 桃子个数/2 + 1

  2. 结束做这件事情的状态[只要没有达到这个状态就不会结束] 桃子个数为0 就不用吃 【只要桃子个数不为0 就得一直吃】

需要准备的数据:

  1. 需要一个变量名 接受桃子的个数 起始值是1023

  2. 计数器 记录吃的天数

peach_count = 1023  # 桃子的个数
day = 0  # 计数器【天数】
# 开启循环
while peach_count > 0:
    # 吃完 记录的剩余的桃子的个数
    peach_count = peach_count - (peach_count//2 + 1)
    # 计数器+1
    day += 1
# 循环结束的时候 桃子被吃完
print('1023个桃子猴子需要', day, '天吃完')
练习:
  1. 录入一个大于1的整数
    如果这个数值是偶数 将数据整除2后-1
    如果这个数是奇数 将这个数据-1 再整除2
    重复操作 问多少次之后才能将数据设置为0

num = int(input('请输入一个大于1整数:'))
num1 = num  #  记录原始的数据
count1 = 0
while num > 0:
    # 判断奇偶性
    if num % 2 == 0:
        num = num // 2 - 1
    else:
        num = (num - 1) // 2
    # 计数器+1
    count1 += 1
print(num1, '经过运算', count1, '次之后置为0')
  1. 一张纸的厚度是0.8mm,假设纸足够长,问对折多少次可以将纸的高度达到1000米

重复的事情: 对折 厚度*2
做这件事情的目的: 达到1000000mm
准备数据:

  1. 记录纸的高度 起始高度是0.8mm

  2. 计数器 记录次数

paper_height = 0.8
count2 = 0
while paper_height < 1000 * 1000:
    # 重复的操作
    paper_height *= 2
    # 计数器+1
    count2 += 1
print('0.8mm的纸经过', count2, '次对折后达到千米')

简单的思路
初学while循环的
可以while True的思想 【死循环】
分析出来结束点 判断是否达到结束点 到了的话 结束循环break

paper_height1 = 0.8
count3 = 0
while True:
    # 对折
    paper_height1 *= 2
    # 计数
    count3 += 1
    # 判断 纸的高度达到千米
    if paper_height1 >= 1000 * 1000:
        break
数字炸弹

什么是数字炸弹:
规则: 有一个出题人 随便在1-100之间设定一个数据,然后其他人猜
猜小了、猜大了 出题人提示新的范围
猜中了 就一顿暴揍

    如炸弹数为 69
    
    你: 85    出题人 1-85
    他: 70    出题人 1-70
    她: 55     出题人 55-70
    我:  69    挨揍了  
# 程序中生成随机数
# Python提供了一个工具包  random  就是来提供随机操作
import random
print(random.randint(1, 101))  # 在给定的a,b之间随机选择一个整数
"""
完成这个游戏 是需要循环的
循环次数是不明确的,使用while循环
循环结束状态: 猜中了
"""
"""
数据准备
1. 准备一个1-100中的随机数
2. 猜数的范围的起始值和结束值
"""
random_num = random.randint(1, 100)  # 唯一一个包含结束位置的
# 猜数的范围
start = 1
stop = 100
# 开始猜
while True:
    # 猜的动作是重复的  所以放在循环中
    # 字符串数据可以使用+将数据拼接在一起 【只能是字符串与字符串拼接】
    # 把数据转化成字符串的操作 str(数据)  int() float()
    guess = int(input('请输入' + str(start) + '-' + str(stop) + '之间的数据,进行竞猜:'))
    # 将输入的数据与随机的数据进行对比
    if guess > random_num:
        # pass
        print('猜大了')
        stop = guess
    elif guess < random_num:
        print('猜小了')
        start = guess
    else:
        print('猜中了  暴揍中.....')
        break
print('游戏结束')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值