Python 第三天

1.for结合range的小案例

1.求1+2+3+...+99+100

产生一个容器 容器放着1-100的数据

遍历容器取值 , 取出来一个累加器

注意: 和随着取值 会发生变化 [定义一个变量 用来接收累加加的和]

 total = 0 # 放在循环的外面 避免每次循环重置
for i in range(1,101):
  total += i  # total = total + 1 
"""
 第一次 in 的时候 i = 1
        total += i ===> total = total + i = 1
 第二次 in 的时候 i = 2
        total += i ===> total = total + i = 1
"""
print(total)

# 求 1-2+3-4+5-6+...-98+99-100
a = 0
for b in range(1, 101):
    if b % 2 != 0:
        a += b
    else:
        a -= b
print(a)

# 求 1**2 +2**2 +.... + 10** 2
d = 0
for q in range(1, 11):
    num = q ** 2
    d += num
print(d)

# 求1-100中能被3整除且个位数是5的数据的个数
e = 0
for w in range(1, 101):
    if w % 3 == 0 and w % 10 == 5:
        e += 1
    else:
        e = e
print(e)

2.关键字break和cintinue

break和cintinue

都是应用在循环结果语句中,只能对循环起作用

break的作用是中断它所在的循环[退出循环]

continue的作用[循环一次一次执行的]是,结束当前次,跳到循环判断的位置,再决定是否开启下一次[判断成立的时候,开启下一次]

# 演示continue的作用
# 打印1-10中的偶数
for x in range(1,11)
    if x % 2 == 0
    print(x)

# 换一种思路:判断是否为奇数 如果是奇数 跳过这一循环 继续拿下一个数
for m in range(1,11)
    if j % 2 == 1
        continue
    print(m)

break 是结束所在的循环

一般循环结束是

循环条件不成立或者容器中没有数据可拿时

结束循环

for n in range(1, 11):
    print(n)
    if n == 5:
        break
# 需求:
# 获取 1-100中 3的倍数且个位数为5  当获取到第二个的时候 结束获取
count = 0  # 计数器
for k in range(1, 101):
    if k % 3 == 0 and k % 10 == 5:
        count += 1  # 计算器+1
        print(k)

    # 判断计算器是否为2 结束
    if count == 2:
        break

3.while循环

while 条件判断:

循环体代码块

解读:

只要成立,程序就一直循环,知道循环成立

# 输出1-10之间的数据
#for循环的思想:  需要一个容器,容器中存放在1-10
for z in range(1,11):
    print(z)
print('===========')

while 循环 思想:

1.重复做的操作是什么 ==== 打印数据 每次打印的都是1个

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

根据这两件事情,需要哪些数据支持

打印数据 每次打印1次 数据要在原来基础上+1

也就是说要打印的数据是变化的 就得设置标记名给其进行标记[定义一个变量 记录打印的数据值]

num1 = 1
# 循环的操作
while num1 <= 10:
    print(num1)
    # 数据还在原来的基础上+1
    num1 += 1
print('循环结束时 num1的值',num1)

# 1-10中的偶数  使用while打印
定义一个数据的起始值
m = 1
# 循环 数据进行递增
while m <= 10:
    if m % 2 == 0:
        print(m)
    m += 1

# 使用while循环 完成 1+2+3+...+99+100
a = 1
b = 0
while a <= 100:
    b += a
    a += 1
print(b)

# 求 1-2+3-4+...-98+99-100
k = 1
ll = 0
while k <= 100:
    if k % 2 != 0:
        ll += k
    else:
        ll -= k
    k += 1
print(ll)

# 求1-100中能被整除 且 个数为5的数据 的个数
a = 1
b = 0
while a <= 100:
    if a % 3 == 0 and a % 10 == 5:
        b += 1
    else:
        b = b
    a += 1
print(b)

循环结束的场景:

1.明确循环次数 --- for-in循环 遍历容器,容器中有几个数据 循环就吃醒几次

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

while 循环条件:

满足条件就执行

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

# 案例: 1023个桃子,猴子每天吃桃子剩余个数的一半多一个,问多少天可以吃完
# 来操作的时候 循环次数不明确 就使用while循环
peach = 1023
day = 0
while peach > 0:
    peach = peach - (peach//2 +1)
    day += 1
print(day)

练习: 1.录入一个大于1整数

如果这个数值是偶数 将数据整除2后-1

如果这个数值是奇数 将这个数据-1 再整除2

重复操作 问多少次之后才能将数据设置为0

2.一张纸的厚度是0.8mm,假设纸张足够长, 问对折多少次可以将纸张的高度达到100m

w = int(input('一个大于1整数:'))
h = 0
while w > 1:
    if w % 2 == 0:
        w = w // 2 - 1
        h += 1
    else:
        w = (w - 1) // 2
        h += 1
print(h)

w = 0.8
h = 0
while w < 1000000:
    w = w * 2
    h += 1
print(h)

简单的思路

初学while循环的

可以while Ture的思想 【死循环】

可以分析出来结束点 判断是否达到结束点 到了的话 结束循环break

w = 0.8
h = 0
while Ture:
    w *= 2
    h += 1
    if w >= 1000 * 1000:
        break

数字炸弹: 规则:有一个出题人在1-100之间设置一个数据 然后其他人猜

猜小了 猜大了 出题人提示新范围 猜中了 就一顿暴揍

# 程序中生成随机数
# Python提供了一个工具包  random  就是来提供随即操作
import random

print(random.randint(1, 101))

完成这个游戏 是需要循环的

循环次数是不明确的, 使用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:
        print('猜大了')
        stop = guess
    elif guess < random_num:
        print('猜小了')
        start = guess
    else:
        print('猜对了 暴揍中。。。。')
        break
print('游戏结束')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DEsert__z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值