Python基础教程—while、for循环

本文介绍了Python中的while和for循环的基础知识,包括各自的使用场景、格式以及相关练习。while循环适用于反复执行的场景,如游戏循环、条件判断。for循环则常用于固定次数的迭代,如遍历序列。文章通过实例练习帮助读者掌握两种循环的运用,并对比了它们的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、while循环

1、使用场景

用户名和密码反复输入       计算1-100       游戏:死了重生

2、while格式

 while 条件:

          要循环执行的代码(布尔类型的条件) 

# 打印1-10之间的数字

# 初始值
n = 1
# 结束条件
while n <= 10:
    print('----n=%d' % n)
    # 变量要有变化
    n += 1

练习1:打印1-50之间能被3整除的数字             打印1-10的累计和 

# 打印1-50之间能被3整除的数字
n = 1
while n <= 50:
    if n%3 ==0:
        print('---'n)
    n += 1

while n <= 50:
    print('---',n)
    n += 3


# 打印1-10的累计和
n = 1
sum = 0
while n <= 10:
    sum += n
    n += 1
print(sum)

练习2:超市购物、价格数量,允许买多个,计算金额

# 去超市买东西:价格数量,允许买多个,计算总额

total = 0
numbers = 0

while True:
    # 先买
    price = float(input('请输入价格:'))
    number = int(input('请输入数量:'))
    # 累加
    total += price*number
    # 数量累加
    numbers += number
    # 判断是否继续购买
    answer = input('当前商品总额:%.2f,是否继续添加商品(q表示退出)' % total)
    if answer == 'q':
        # 跳出while
        break

print('商品数量:%d,所有商品总额:%.2f' % (numbers,total))

练习3:产生随机数 ,可以猜多次,直到猜对为止,如果猜错了适当给出提示,猜大还是猜小了 #               猜了几次:一次就中:快买彩票 2-5次:运气还行哦 6次以上:运气一般

import random
ran = random.randint(1, 50)
count = 0
# 循环猜多次
while True:
    guess = int(input('猜一个1-50之间的数字:'))
    #count改变
    count += 1
    #猜对就结束
    if guess == ran:
        if count == 1:
            print('快去买彩票')
        elif 2 <= count <=5:
            print('运气还可以')
        elif count >=6:
            print('运气一般')
        print('恭喜猜对啦')
        break
    elif guess>ran:
        print('猜大了')
    else:
        print('猜小了')

练习4:  猜拳游戏:3局

import random
n = 1
# 计数
p_count = 0
m_count = 0
while n<=3:
    # 猜拳
    # 机器产生数字0 1 2
    ran = random.randint(0,2)
    # 人猜数字
    guess = int(input('请输入:剪刀(0) 石头(1) 布(2)'))
    # 比较判断
    if guess ==0 and ran ==2 or guess == 1 and ran == 0 or guess == 2 and ran == 1:
       print('----我赢了!')
       p_count += 1
    elif ran == 0 and guess ==2 or ran == 1 and guess == 0 or ran == 2 and guess == 1:
        print('----机器赢了!')
        m_count += 1
    else:
        print('本轮平局')
    # n的变化
    n += 1
# 比较胜负
if p_count>m_count:
    print('最终人获胜')
elif p_count<m_count:
    print('最终机器获胜')
else:
    print('最终平局')

二、for循环

1、格式1

  for   变量名  in  range(n):

循环体中内容

range(n):默认从0到n-1结束

range(start.stop):[start.stop)

range(start.stop,step):默认从start(包含)到stop(不包含)结束,步长由step指定,默认为1

# 1-10打印
for i in range(11):
    print(i)

for i in range(5,11):
    print('---',i)

for i in range(1,10,3):
    print(i)

# 1-50累加和
sum = 0
for i in range(1,51):
    sum += 1
print(sum)

练习1:输入用户名密码,若三次没有登陆成功,提示账号被锁定

for i in range(3):
    # 提示输入用户名密码
    username = input('用户名:')
    password = input('密码:')
    # 判断输入是否 admin 1234
    if username == 'admin' and password == '1234':
        print('登陆成功')
        break
    print('用户名或密码错误\n')
if i == 2:
    print('账户锁定')

2、格式2

while,,,else       for...else      特点:不被中断则执行

if 条件:

      pass

else:

      pass

for i in range(n):

      循环体

else:

      若上面for循环0-n-1没有出现中断(break)

3、对比

for      有固定次数  

while   固定次数    不确定循环

for i in range(n):

    pass

while 条件:
    pass

while True:
    pass

练习:掷骰子两个1-6,

玩游戏要有金币;                 玩游戏赠金币1个,充值获得金币;

10元的倍数:20个金币;        玩游戏消耗5个金币;

猜大小:鼓励金2个,猜错没有奖励    超出6为大,否则是小       

游戏结束: 1.主动退出  2.没有金币退出               只要退出打印金币数,共玩了几局

import random
# 金币数
coins = 0
# 计数器
count = 0
if coins < 5:
    # 提示充值
    print('金币不足请充值再玩:')
    while True:
        money = int(input('请输入充值金额:'))
        # 10元倍数:20个金币
        if money%10 ==0:
            coins += money // 10 * 20
            print('充值成功!当前金币有%d' % coins)
            # 开启游戏
            print('----开启游戏----')
            answer = input('是否开始游戏(y/n)')
            while coins>5 and answer == 'y':
                # 扣金币
                coins -= 5
                # 赠送金币
                coins += 1
                # 产生两枚随机骰子数
                ran1 = random.randint(1,6)
                ran2 = random.randint(1, 6)
                guess = input('洗牌完毕,请猜大小:')
                # 判断比较
                if guess == '大' and ran1+ran2>6 or guess=='小' and ran1+ran2<=6:
                    print('恭喜猜对了,你赢了')
                    coins += 2
                else:
                    print('很遗憾,猜错了')
                # 玩滴次数
                count += 1
                answer = input('是否继续游戏(y/n)')
            # 打印 次数 金币数
            print('共玩了%d次' % count)
            break
        else:
            print('不是10的倍数,充值失败!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值