4.15while循环和循环关键字

while循环

1.while循环

语法:
while 条件语句:
    循环体
    
说明:
while   -   关键字;固定写法
条件语句    -   任何有结果的表达式(和if中的条件语句要求一致),比如:具体的数据、已经赋值过的变量、运算表达式(赋值运算除外)    
:       -       固定写法
循环体     -   结构上,和while保持一个缩进的一条或多条语句(至少一条);逻辑上,循环体就是需要重复执行的代码

执行过程:
不断判断条件语句是否为True,如果是就执行循环体,否则就结束循环
先判断条件语句是否为True,如果为True就执行循环体。执行完再判断条件语句是否为True,为True有执行循环语句..
以此类推,如果判断条件语句时为False就结束循环
练习1: 打印1~100所有整数
x = 1
while x <= 100:
    print(x, end=', ')
    x += 1
print()
练习2: 打印1~100所有偶数
x = 2
while x <= 100:
    print(x,end=', ')
    x += 2
print()
练习3: 打印100~0的所有偶数
x = 100
while x >= 0:
    print(x, end=', ')
    x -= 2
print()
打印1,2,3,4,5
for x in range(1, 6):
    print(x, end=', ')
print()

num = 1
while num < 6:
    print(num, end=', ')
    num += 1
print()
控制循环执行100遍
num = 0
while num < 100:
    print('hello', end=', ')
    num += 1
print()

2.for和while的选择

关系:for能解决的问题,while循环都可以解决;while循环能解决的问题,for循环不一定能解决
    但for循环比while循环,控制次数更简单
使用建议:能用for循环解决的问题都用for,解决不了的才考虑while。
        循环次数确定  -   for
        循环次数不确定 -   while
提示用户输入密码
user_pw = '123abc'
input_user = input('请输入密码:')

while user_pw != input_user:
    input_user = input('密码错误,请重新输入:')
print('密码输入正确,登录成功!')
练习:提示用户输入数据,直到输入的值是0为止
a = -1
while a != 0:
    a = int(input('请输入一个值:'))
猜数字游戏
系统随机产生一个0~100的随机数
用户不断输入数字,直到输入的数字和产生的数字相等,游戏结束。如果猜错了,给出大了或者小了的提示信息
假设随机数是:30
请输入数字(0~100) : 50
大了,再小点儿
请输入数字(0~100): 20
小了,再大点儿
请输入数字(0~100): 30
恭喜你猜对了!
补充:python创建随机数
import  random                      # from random import randint
value = random.randint(0, 100)      # value = randint(0, 100)
input_num = -1
while input_num != value:
    input_num = int(input('请输入你要猜的数:'))
    if input_num > value:
        print('大了!')
    elif input_num < value:
        print('小了!')
print('恭喜你,猜对了')

循环关键字

1.continue和break – 循环体中的关键字

continue和break都只能出现在循环体中

1)continue – 结束当次循环(一次) – 当执行循环体的时候遇到了continue,这一次循环结束,马上进入下一次循环

for x in range(5):
    print('xxxx')
    continue    # 结果只有五行xxxx
    print('yyyy')
    print('zzzz')

for x in range(10):
    if x % 2:
        continue
    print(x, end=', ')
print()
x = 0:if 0 % 2 -> if False;print(0)
x = 1:if 1 % 2 -> if True -> continue
x = 2:if 2 % 2 -> if False;print(2)
...
x = 0
while x <= 10:
    print(x)
    if x % 2 == 0:
        x += 3
        continue
    x += 1
x <= 10 ->0 <= 10 -> True -> print(0); if 0 % 2 =- 0 -> if True -> x += 3 ->x = 3 -> continue 
x <= 10-> 3 <= 10 -> True -> print(3); if 3 % 2 == 0 -> if False; x += 1 -> x = 4
x <= 10-> 4 <= 10 -> True -> print(4); if 4 % 2 == 0 -> if True -> x += 3 -> x = 7 -> continue 
x <= 10-> 7 <= 10 -> True -> print(7); if 7 % 2 == 0 -> if False; x += 1 -> x = 8
x <= 10 -> 8 <= 10 -> True -> print(8); if 8 % 2 == 0 -> if True -> x += 3 -> x = 11 -> continue 
x <= 10 -> 11 <= 10 -> False ->整个循环结束
num = 10
while num < 100:
    num += 2
    if num % 5 == 0:
        continue
    print(num, end=', ')
print()

2)break – 结束整个循环 – 当执行循环体的时候遇到了break,整个循环直接结束。

while循环和break的配合:
while True:
    需要重复执行的代码
    if 循环结束条件:
        break
    
for x in range(5):
    if x % 2:
        break
    print(x)
# 0 1

while True:
    value = int(input('请输入一个数:'))
    if value == 0:
        break
练习:输入任意一个正整数,求他是几位数?
num = int(input('请输入任意一个正整数:'))
count = 0

while True:
    count += 1
    num //= 10
    if num == 0:
        break
print(count)

2.else

Python中完整的for循环和while循环
# for 变量 in序列:
# 循环体
# else:
# 代码段
#
# while 条件语句:
# 循环体
# else:
# 代码段
#
# else的作用:
# 1) else 的存在不影响原来循环执行
# 2) 如果循环自然结束,结束后会执行else中的代码
# 如果循环是因为break而结束的,else中的代码不执行/
for x in range(5):
    if x == 3:
        break
    print(x, '======')
else:
    print('++++++')

for x in 'hello':
    print(x)
    if x == 'l':
        break
else:
    print('else中的代码')
求素数
num = int(input('请输入一个数:'))

for x in range(2, num):
    if num % x == 0:
        break
else:
    print(num, '是素数')
    原文作者:我叫yzq
    原文地址: https://blog.csdn.net/m0_50960783/article/details/124203712
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞