2023.9.25-python学习笔记day04 while循环与for循环

一.while循环

while循环基础步骤:
    1.定义变量赋初始值
    2.条件判断
    3.循环体
    4.条件控制
    


  • while循环基础格式:
  •     变量名 = 初始值
  •     while 条件判断:
  •         循环体
  •         条件控制

        



while无限循环:

  •     无限循环: 又叫死循环,恒成立的条件,循环的内容如果不设置条件不会停下来
  •     实现无限循环的方式:

        方式1: 正常的while循环,不加条件控制
        方式2: while循环条件用两个字面量比较结果是True
        方式3(建议): while循环条件直接用True
        方式4: while循环条件直接用1
    注意: True一般用数字1代表,False只能用数字0代表
    特点: 非0即为True

    None: 在python代表空的没有意义的
    注意: 循环一般要设置条件,满足对应条件跳出循环 使用关键字break

题目1:打印hello world 50次并显示循环的次数

# 1.定义变量赋初始值
i = 1
# 2.条件判断
while i <= 50:
    # 3.循环体
    print('hello world', i)
    # 4.条件控制
    i += 1

题目2:1-100求和

# 需求: while循环求1-100的和

分析:利用循环中i能够不断自增的特点
设置i初始值1,不断自增到100结束
此时打印i其实就是打印1-100

a = 1  # a为循环100次的次数
sum = 0    # sum来记录每次循环相加得到的值
while a <= 100:  # 终止循环条件,100次
    sum += a  # sum=sum+a 右边先进行计算,得出的值给左边的sum,用于下一轮循环计算
    a += 1  # 条件控制 a=a+1,每循环一次a就加一
    print(a, sum)
'''
1=s0+a1
3=s1+a2
6=s3+a3
10=s6+a4
'''

二.while无限循环


无限循环: 又叫死循环,恒成立的条件,循环的内容如果不设置条件不会停下来
实现无限循环的方式:
    方式1: 正常的while循环,不加条件控制
    方式2: while循环条件用两个字面量比较结果是True
    方式3(建议): while循环条件直接用True
    方式4: while循环条件直接用1
注意: True一般用数字1代表,False只能用数字0代表
特点: 非0即为True
None: 在python代表空的没有意义的
注意: 循环一般要设置条件,满足对应条件跳出循环 使用关键字break
 

while True:
    print('我停不下来了~')

题目3:编写猜数字游戏,每次猜的数会提示猜大了还是猜小,机会无限制,并且猜中后会提示总共猜的次数,并结束循环

'''
1.random随机生成底数
2.input获取用户猜的数
3.上述两个数比较给出提示
4.无限循环
'''
import random

num = random.randint(1, 100)
count = 0  # 计数的变量赋值要放在循环体外面
print(num)  #  偷偷显示答案
while 1:  #  设置条件为无数次
    guess_number = int(input('请输入您猜的数(范围1-100):'))
    count = (count + 1)  # 每猜一次统计一次
    if 1 <= guess_number <= 100:  # 限制可以输入的数字范围,1-100之间,以防乱猜
        if guess_number == num:
            print(f'恭喜你猜对了,总共猜的次数为{count}')
            break
        elif guess_number > num:
            print('猜大了')
        else:
            print('猜小了')
    else:
        print('输入的数值超出范围')
print(f'您一共猜了{count}次,猜中了')

题目4:打印九九乘法表

1.print函数的一些换行操作

print('rrr\nrrr')  # \n在字符串里换行
print('')  # 添加一个换行
print('rrrrrr', end='')  # 取消换行
print('bai\thei')  # 字符串内隔开
print('111111', end='\t')  # 取消换行
print('101')

2.九九乘法表规律

# a是列,b是行
b = 1  # 定义b是行数
while b <= 9:  # 九九乘法表共九行,所以设置b超过9就结束循环
    # 3.整个内层循环都是外层循环的循环体
    a = 1
    while a <= b:  # a*b a是一直小于b的,在等于b的时候进到下一个循环
        print(f'{a}*{b}={a * b}', end='\t')  # 取消换行,结果全放在同一行
        a += 1  # 每一次循环,a就加一
    # 每行内容打印完进行换行操作
    print()  # 与a<=b这行同级关系,每一次循环,也就是a=b的时候,就换行
    # 外循环条件控制
    b += 1  # 每一次循环,a=b的时候,就进到下一个循环,下一个循环b就在原有基础上加一

三.for循环

for循环: 又叫遍历循环,需要提前准备好数据集然后从中一个个取出达到循环效果
for循环基础格式:
for 临时变量 in 数据集:
    循环体

  • name = '白白的wj'
    for i in name:
        print(i)

  • count = 0
    count2 = 0
    name = 'dasdsdasincxsncuvendasdasdasdasd' \
           'csrgbrdtfvncjsenexfsnhsfhsekcgdkjh' \
           'fsagbvfnkcsrnkdrsucdhkfhsdxunfhes' \
           'gcjgnnjdgfyjbscdgebsaczxfhgvnshcfi' \
           'abegbfuxgnxfdzgcbs fhdjkxbgnfs'
    for x in name:  # 已经进行遍历循环,把每个字符都单独取了出来
        if x == 'd':  # 如果遍历循环出来之中的元素等于d,则计数器计数
            count += 1
        if x == 's':
            count2 += 1
    print(f'字母d统计有{count}个,字母s有{count2}个')

  •     range函数格式: range(x,y,z)

     x: 初始值  注意: 默认是0,如果要是其他数手动写上
     y: 结束值  注意: 不含y本身
     z: 步长    注意: 默认是1,如果要是其他数手动写上

     

  • for循环进阶格式:

for 临时变量 in range(x,y,z):
     循环体

注意: 变量作用域规范上应该仅限于当前循环内部,但是python中如果外部访问了只会警告,不会报错

for i in range(0, 6):  # 打印的是0-5
    print(i, end='')  # 取消换行,变成在同一行的遍历循环显示
print()  # 换行
for i in range(10):  # 打印的是0-9
    print(i, end='\t ')
print()
for i in range(2, 12, 2):  # 2,4,6,8,10 ,从0开始每次加2,中间为最高数(最高数不显示)
    print(i, end='\t ')
print()

a = 2  # while循环打印2,4,6,8,10
while a <= 10:
    print(a, end='\t ')
    a += 2

题目5:使用for循环计算100 - 999 之间的偶数的个数

count=0
for i in range(100,1000,2):
   count=count+1
print(f'100-999之间的偶数的个数为{count}个')

四.break和continue    

continue: 结束本次循环,继续下一次循环

break: 跳出循环,结束循环

continue和break对while和for循环都适用!

注意: 在嵌套循环中,continue和break只能作用在所在的循环上,无法对上层循环起作用

题目6:遍历循环1-20,要求4,14,18跳过不显示,其余数字正常显示

for i in range(1, 21):
    if i == 4 or i == 14 or i == 18:
        continue
    print(f'{i}层到了')

题目7:编写代码模拟用户登陆。要求:用户名为 binzi,密码 123456,如果输入正确,打印“欢迎光临”,结束循环.如果输入错误,提示用户输入错误并重新输入

while True:
    name = input('请输入您的用户名:')
    pwd = (input('请输入您的密码:'))
    if name == 'binzi' and pwd == '123456':
        print('欢迎光临')
        break  # 输入正确后,达成条件break结束循环
    else:
        print('用户名或密码错误,请重新输入')
        

题目8:设计"过7 游戏” 程序,即在 1- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过...", 否则输出 具体的数字.

参考方案

  • 使用循环获取 1-99 之间的数字

  • 判断一个数是否是 7 的倍数,即能否被 7 整除,在 python 可以使用% 运算符

    判断7的倍数: i % 7 == 0 , 除以7之后的余数为0,确定可以被7整除

  • 判断一个数字是否包含 7,可能个位是 7,也可能是十位数字是 7

    判断个位 : i % 10 == 7 , 除以7之后的余数为7,如57÷10=5......余数7

    判断十位: i // 10 == 7, 除以10之后的商取整,为7,如77÷10=7.7,取整数为7

for i in range(1, 100):  # 遍历循环1-99
        if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
            print('过')
        else:
            print(i,end='\t')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

白白的wj

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

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

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

打赏作者

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

抵扣说明:

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

余额充值