Advertisement

Python学习十:循环语句

阅读量:

一、while循环

While循环是基于一个条件判断来决定是否继续执行循环体中的语句;其语法结构如下:

复制代码
    while 条件表达式:
    循环体

如果某个条件成立时,就执行循环体内的指令;完成后再次评估该条件表达式的返回值;一旦其结果为假,则退出循环.

举个例子来说吧,在这个问题中我们需要确定是否存在这样一个数x。这个数必须满足以下条件:当它被3整除时余2;当它被5整除时余3;当它被7整除时余2。为了实现这一目标我们可以使用如下的数学表达式来表示这些条件:3x \equiv 2 \pmod{5}5x \equiv 3 \pmod{7}7x \equiv 2 \pmod{9}

复制代码
    print("一个数字是否可以除以三余二,除以五余三,除以七余二?")
    none = True                                        #作为循环条件的变量
    number = 0                                         #计数的变量
    while none:
    number += 1
    if number%3==2 and number%5==3 and number%7==2:
        print("这个数是:",number)
        none = False                               #将循环条件的变量赋值为否

是否存在这样一个数字n,使得它满足以下条件: n ≡ 2 mod 3, n ≡ 3 mod 5, n ≡ 2 mod 7?这个具体数值为:23

特别提醒:在调用while循环结构时,请确保始终正确设置循环终止条件,并且必须编写代码块来将条件设置为False。如果不这样做的话,则会导致程序运行出现死锁。

二、for循环

语法如下:

复制代码
    for 迭代变量 in 对象:
    循环体

1.进行数值循环

(1)例如,我们想要求1到100的和,可以通过以下代码实现:

复制代码
    print("计算1+2+3+......+100")
    result=0                         #保存累加结果的变量
    for i in range(101):
    result+=i                    #实现累加功能
    print(result)

结果:

在这里插入图片描述

在上述代码中调用了range()函数,在Python编程语言中该函数被定义为用于生成一系列连续的整数值,默认情况下可指定起始值、终止值以及步长值;其语法格式如下所示:

复制代码
    range(start,end,step):
  • start:指定了计数值的初始设置,默认情况下从零开始
  • end:定义了技术范围的上限(不包含此上限),例如在range(7)的情况下会生成0至6的所有整数
  • step:设定相邻两个数值之间的间隔距离,默认步长为1

(2)例如,输出10以内的所有奇数:

复制代码
    for i in range(1,10,2):
    print(i,end=' ')

输出结果:1 3 5 7 9

在Python3环境中使用print()函数时,默认无法在其后直接添加逗号;为了实现多个连续输出项的效果,在上述代码中应配置参数end为其指定适当的分隔符;具体而言,在该案例中所选择的分隔符是一个空格

(3)使用for循环解决余数问题:

复制代码
    print("一个数字是否可以除以三余二,除以五余三,除以七余二?")
    for number in range(100):
    if number%3==2 and number%5==3 and number%7==2:
        print("这个数是:",number)

是否存在一个数满足以下条件:当它被3整除时余2;当它被5整除时余3;当它被7整除时余2?这样的数实际上等于23。

2.遍历字符串

通过for循环结构实现对字符串的逐字符处理

复制代码
    string = '不要再说我不能'
    print(string)
    for ch in string:
    print(ch)

输出结果:
不要再说我不能






3.循环嵌套

打印九九乘法表(第几行就有几列)

复制代码
    for i in range(1,10):
    for j in range(1,i+1):                 #输出与行数相等的列
        print(str(j)+"X"+str(i)+"="+str(j*i)+"\t",end='')
    print("")                              #换行

输出结果:
1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
1X4=4 2X4=8 3X4=12 4X4=16
1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81

全部评论 (0)

还没有任何评论哟~