python 之 while循环、break、continue的使用、循环当中else的用法、真/假值的表示——2022-4-19

本文详细介绍了Python中的while循环、continue和break的用法,通过实例展示了如何打印奇数、如何在循环中根据条件跳出循环,以及如何在循环中控制流程。此外,还解释了Python中的真值表示方法,并提供了模拟登录操作的例子。文章强调了在循环中使用条件判断和控制结构的重要性,以及避免死循环的注意事项。
摘要由CSDN通过智能技术生成

一、while循环用法

格式:

n=0  或 n=1    # 定义一个计数器

while   循环的条件:

        循环体内要执行的代码块

注:只要循环条件为真,则一直会执行循环体内的代码块。如果循环条件为假,则结束循环,不执行循环体内的代码块。

二、contiune和break的用法

continue:只要条件满足(或叫只要条件为真),就跳出这一次的循环,然后continue后面的循环代码块就自动忽略不再执行,直接进入下一次循环。———记忆:结束本次循环,开始下一轮循环。

break:只要条件满足,就结束循环,与此同时,break后面的循环代码块也将不再执行。———记忆:结束所有的循环。

举例1:打印10以内所有奇数。continue用法

# 法1
n = 0
while n < 10:
    n += 1   # 注意+1 的位置,如果放下面就会进入死循环
    if n % 2 == 0:
        continue        # continue的使用
    print(n)

结果:
1
3
5
7
9


# 法2    不推荐,不智能
n = -1
while n < 9:
    n += 2
    print(n)

结果:
1
3
5
7
9

 延申:打印1-10以内的所有偶数

# 打印1-10以内的所有偶数
number = 1  
while number < 10:
    if number % 2 == 0:
        print(number)
    number += 1


结果:
2
4
6
8

举例2: 依次输入2个整数,两个数比较大小,输出最大的,如果输入为空,则退出。break用法

while True:      # while True,只要不中断,可以一直输,实现循环
    number1 = input("请输入第一个数字:")
    number2 = input("请输入第二个数字:")
    # 判断输入的数字是否为空,如果空,则退出循环
    if len(number1) == 0 or len(number2) == 0:
        print("您没有输入任何东西,请重新输入!")
        break
    else:
        if number1.isdigit() and number2.isdigit():
            # 比较大小
            if int(number1) > int(number2):  # 输入的是字符串,需要转成数值型
                print(f"{number1}和{number2}中最大的数是:{number1}")
            else:
                print(number2)
        else:
            print("您输入的不是数字,请重输!")


结果:
请输入第一个数字:5
请输入第二个数字:6
5和6中最大的数是:6
请输入第一个数字:a
请输入第二个数字:B
您输入的不是数字,请重输!
请输入第一个数字:1
请输入第二个数字:
您没有输入任何东西,请重新输入!

 怪象:print(f"{number1}和{number2}中最大的数是:{number1}")中的字符串,时好时坏,有时能【输出数1和数2中最大的数是:】这几个字,有时不能。

# 改进
while 1:
    num1, num2 = input(), input()
    if len(num1) == 0 or len(num2) == 0:
        print(f"输入为空")
        break
    elif num1.isdigit() and num2.isdigit():
        print(int(num1)) if num1 > num2 else print(num2)  # 三目运算符
    else:
        print(f"输入的不是数字")

# 结果:
1  # 输入1
2  # 输入2
2  # 结果输出2
x  # 输入x
1   # 输入1
输入的不是数字
2  # 输入2
   # 不输
输入为空

进程已结束,退出代码 0

举例3:打印1-10,除了5之外的所有数字。continue用法

for i in range(1, 11):  因为打印的是1-10,所以,需要将range范围设定为1,11
    if i == 5:
        continue
    print(i)

结果:
1
2
3
4
6    可以看到没5
7
8
9
10

由此,可以明显的理解,continue的含义:结束本轮循环,开始下轮循环。

举例4:打印1-10的数字,如果这个数能被3整除,那么就不打印。break用法

for i in range(1, 10):
    if i % 3 == 0:
        break
    print(i)


结果:
1
2

由此,可以明显的理解,break的含义:结束整个循环。

 举例5:猜数字小游戏。谜底为20,猜对就退出循环,否则一直猜。

answer = 20
while True:
    number = int(input("请输入你的答案:"))
    if number == answer:
        print("恭喜你,回答正确!")
        break
    print("回答错误,请重输!")

结果:
请输入你的答案:35
回答错误,请重输!
请输入你的答案:2
回答错误,请重输!
请输入你的答案:20
恭喜你,回答正确!

三、python当中的 真/假 值 的表示方法

真值的表示方法有:

(1)True

(2)除0以外的所有数字

(3)除了空对象以外的其它所有对象都可以表示为真值。(其它所有对象是指:数字、字符串、列表、元组、字典、集合)

举例:

if True:
    print("该句为真值")


if 5:        # 数字5        
    print("该句为真值")


if "p":       # 字符串p
    print("该句为真值")


if "你好":    # 字符串 你好
    print("该句为真值")


if ["p"]:    # 列表
    print("该句为真值")

if (66):     # 元组
    print("该句为真值")

if {"number:", 66}:    # 字典
    print("该句为真值")

if {'apple', 2, 'banana'}:   # 集合
    print("该句为真值")


这些方式的结果都是:
该句为真值

同理,while也一样,但注意避免进入死循环。 

假值:False、0、空对象。 这个空对象中的“对象”就是指:字符串、列表、元组、集合字典。

举例:

if False:
    print("该句为假值")    #  为 False


if 0:
    print("该句为假值")     # 为 0


if "":
    print("该句为假值")   # 空字符串


if []:
    print("该句为假值")   # 空列表

if ():
    print("该句为假值")   # 空元组


if {}:
    print("该句为假值")   # 空集合,字典


结果:
没有任何输出

举例6:利用while循环模拟登录操作,如果账号密码都正确,则登录成功,否则一直输入。

username = "user"    # 定义正确的账号和密码
password = 123
while True:
    name = input("请输入账名(由小写字母构成):")
    psword = input("请输入密码(纯数字构成):")
    if name == username and int(psword) == password:     # 注意 int的加入
        print("恭喜你,登录成功!")
        break
    else:
        print("登录失败,请重输!")
        print()   # 拉开间距,以便结果更清晰


结果:
请输入账名(由小写字母构成):fsd
请输入密码(纯数字构成):65
登录失败,请重输!

请输入账名(由小写字母构成):t
请输入密码(纯数字构成):345
登录失败,请重输!

请输入账名(由小写字母构成):user
请输入密码(纯数字构成):123
恭喜你,登录成功!

 小结:

(1)如果if name == username and int(psword) == password:这句中,psword不进行int的准换,那么,字符串跟数字是无法进行比较的,此时,尽管输入的是123,但因为input()函数的缘故,结果依然为【登录失败,请重输】。

(2)循环当中else的使用:

while后面的条件表达式为真,并且循环体内没有break,则会执行else后面的代码;

while后面的条件表达式为假,则直接忽略循环体内的代码块直接执行else后面的语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值