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

  • Post author:
  • Post category:python



一、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中最大的数是:】这几个字,有时不能。

举例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后面的语句






版权声明:本文为y_three原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。