Python之while循环

1. while循环的一般格式

while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
    ....

例如:打印三次 hello python

代码:

# 1.定义一个整数变量,记录循环的次数
i =1

# 2.开始循环
while i <= 3:
    # 满足条件时执行的代码
    print('hello python')
    # 处理计数器
    i += 1

运行结果:
Python之while循环
2.死循环

代码:

while True:
    print('hello python')

运行结果:
Python之while循环
示例1:用while循环实现: 0~100之间的数字求和

代码:

# 1.定义一个整数变量,记录循环的次数
i = 0

# 2.定义最终计算结果的变量
sum = 0

# 3.开始循环
while i<=100:
    # 等同于 sum=sum+i
    sum +=i
    # 处理计数器
    i +=1
print('0~100之间的数字求和结果为: %d' %sum)

运行结果:
Python之while循环
3.嵌套循环

例如:在控制台连续输出五行*,每一行星号数量依次增加

形如:
*
**
***
****
*****

代码:(方法1)

row = 1
while row <= 5:
    col = 1
    while col <= row:
        print('*',end='')
        col += 1
    print('')
    row +=1

运行结果:
Python之while循环
代码:(方法2)

i = 1
while i <= 5:
    print('*' * i)
    i += 1
print('')

运行结果:
Python之while循环
练习:

1.输出:
*****
****
***
**
*

代码:(方法1)

row = 1
while row <= 5:
    col = 1
    while col <= 6-row:
        print('*',end='')
        col += 1
    print('')
    row += 1

运行结果:
Python之while循环
代码:(方法2)

j = 1
while j <= 5:
    print('*' * (6-j))
    j += 1
print('')

# end表示末尾输出的信息
for i in range(5):
    print(i,end='')

运行结果:
Python之while循环
4.综合练习

需求1:

用while循环实现:

 用户登录需求:
    1.输入用户名和密码;
    2.判断用户名和密码是否正确(name='root',passwd='westos')
    3.登录仅有三次机会,超过3次会报错

代码:

print('欢迎来到用户登陆界面'.center(50,'*'))

# 记录登陆次数
trycount = 0

while trycount<3:
    # 接收用户输入的用户名和密码
    user = input('用户名:')
    passwd = input('密码:')
    # 每输入一次登陆次数便加1
    trycount += 1
    # 判断用户名是否正确
    if user == 'root':
        # 判断密码是否正确
        if passwd == 'westos':
            print('登陆成功')
            # 登陆成功则退出系统
            break
        else:
            print('登陆失败,密码错误!')
            # 总的次数为3,剩余次数即为(3-登陆次数)
            print('你还有%s次机会' %(3-trycount))
    else:
        print('登陆失败,该用户不存在!')
        print('你还有%s次机会' %(3-trycount))
else:
    print('很抱歉,三次机会已经使用完,无法再继续登陆')

运行结果:
Python之while循环
需求2:

猜数字游戏:
    1.系统随机生成一个1~100的数字;
    2.用户共有5次机会猜;
    3.如果用户猜测数字大于系统给出的数字,打印"too big"
    4.如果用户猜测数字小于系统给出的数字,打印"too small"
    5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",并退出循环

代码:

# 导入生成随机数的模块
import random

print('欢迎来到猜数字游戏'.center(50,'*'))
# 生成1-100的随机数
num = random.randint(1,100)
i = 1
# 循环5次
while i <= 5:
    nums = int(input('请输入你猜的数字:'))
    # 每输入一次数字,计数器加1
    i += 1
    # 判断是否中奖
    if nums > num:
        print('too big')
    elif nums < num:
        print('too small')
    else:
        print('恭喜中奖')
        break
else:
    print(' 很遗憾,5次机会已经用完,无法继续游戏')

运行结果:
Python之while循环
补充:

while...else... 表示当语句体中有 break,return或者异常发生时,
则不会执行else中的语句体,余情况下都会执行else中的语句体