Python基础_03

Python基础_03

一、关键字break和continue

  • break和continue:
    • 应用在循环语句中,只对循环起作用
    • break:中断他所在的循环【退出循环】
    • continue:结束当前次,跳到循环判断的位置【循环体中后面的代码不再执行】

例:

# continue的作用
# 打印1-10中的偶数
for i in range(1, 11):
    if i % 2 == 1:
        continue  # 跳到for
    print(i)

# 数7游戏(1-100)
for j in range(1, 101):
    a = j % 10
    b = j // 10 % 10
    if a == 7 or b == 7 or j % 7 == 0:
        continue
    print(j)
    
"""
break 是结束所在的循环
"""
for n in range(1, 11):
    print(n)
    if n == 5:
        break

二、while循环语句

  • 语法:
    while 条件判断:
    循环体代码
  • 解释:
    只要条件成立,程序就一直循环,直到循环条件不成立

例:

# 输出1-10之间的数据
"""
while思想:
    1.重复做的操作是什么
    2.做这件事的条件是什么
"""
# num = 1
# while num <= 10:
#     print(num)
#     num += 1
# print('循环结束时num的值', num)

"""
使用while循环完成 1+2+3+...+100
"""
num = 1
total = 0
while num <= 100:
    total += num
    num += 1
print(total)

"""
循环结束的场景:
    1.明确循环次数: for-in循环
    2.明确结束状态: while循环(循环次数不明确)
建议使用for-in循环
"""
# 有1023个桃子,猴子每天吃桃子剩余个数的一半多一个,需要多少天吃完
peach_count = 1023
day = 0
while peach_count > 0:
    peach_count = peach_count - (peach_count//2 +1)
    day += 1
print('需要', day, '天吃完')

# 简单思路  while True
# 猜数字/数字炸弹
# 程序中生成随机数 random:提供随机操作
# import random
# print(random.randint(1, 100))
#唯一一个包括结束位置的
random_num = random.randint(1, 100)
start = 1
stop = 100
while True:
    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('游戏结束')

三、循环例题(for和while的应用)

  1. 使用range生成1999年到2023年,获取其中闰年的个数
count = 0  # 记录闰年的个数
# 遍历range序列
for year in range(1999, 2024):
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        count += 1
print('闰年的个数为:', count)
  1. 录入一个正整数,判断其是否是完美数【完美数:该数所有真因子[除了自身以外的因子]之和等于该数本身 比如6的真因子有1 2 3; 1+2+3 = 6 因此6是完美数】
    提示: 我们需要获取1-N的数,找到N的真因数[相除余数为0],然后累加后判断
    遍历 获取的范围不用到N 最大真因数只到数据的一半
perfect_num = 0   # 记录真因子的和
num = int(input('请输入一个正整数:'))
for i in range(1, num):   # range(1, num // 2 +1)
    if num % i == 0:
        perfect_num += i
if num == perfect_num:
    print(num, '是完美数')
else:
    print(num, '不是完美数')
  1. 录入一个正整数,求该数的阶乘 [比如5的阶乘=5*4*3*2*1]
num = int(input('请输入一个正整数:'))
num1 = num
jc = num
while num > 1:  # 是乘的运算(不能算入0)
    jc *= (num - 1)
    num -= 1
print(num1, '的阶乘是:', jc)
  1. 每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。
    编写程序求每天平均花多少钱
apple = 0.8  
count = 2
day = 0
total = 0
average = 0
while count <= 100:
    apple *= 2   # 记录当天买苹果花的钱数
    day += 1
    count *= 2    # 记录当天买的苹果数
    total += apple   # 记录买苹果的总钱数
    average = total / day   # 计算每天平均花多少钱
print(average)
  1. 我国1991年有11.6亿人口,要求根据人口平均年增长率0.4%,计算从1991年算起经过多少年后我国的人口增加15亿
people = 11.6
year = 0
while people < 26.6:   # 因为人口要增加15亿,所以增加之后的人口数是26.6亿
    people = people * (1 + 0.004)
    year += 1
print(year)
  1. 输入两个正整数 n和 m,找它们的最大公因数
    提示:获取最小的数 从最小的数递减,找到那个能同时整除的数即为最大公因数
n = int(input('请输入一个数:'))
m = int(input('请输入一个数:'))
gys = 0
if n < m:
    for i in range(1, n+1):
        if n % i == 0 and m % i == 0:
            gys = i
    print('最大公因数为:', gys)

else:
    for i in range(1, m+1):
        if n % i == 0 and m % i == 0:
            gys = i
    print('最大公因数为:', gys)

# 最小公倍数
if n > m:
    max_num = n
else:
    max_num = m
# 遍历
for k in range(max_num, n * m + 1):
    if k % n == 0 and k % m == 0:
        print(n, '和', m, '的最小公倍数是', k)
        break
  1. 找出100到999之间的水仙花数
for n in range(100, 1000):
    ge = n % 10
    shi = n // 10 % 10
    bai = n // 100
    if n == ge ** 3 + shi ** 3 + bai ** 3:
        print(n)
  1. 将数字的反转:比如 1234====4321
    提示:逐个将每位上的数据变成个位上的数,获取个位上的数据,将记录者*10+个位数据
a = int(input('请输入一个整数:'))
b = 0  # 记录者
while a > 0:
    b = b * 10 + a % 10
    a = a // 10
print(b)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值