• 循环语句(1)


    循环语句

    while 语句
    for 语句

    语句解决问题的方向
    问题1:
    输入一个整数n,写程序打印如下:
    这是第一行
    这是第二行
    这是第三行
    ......
    这是第n行
    问题2:
    如何让一条语句重复执行多次

    whlie 语句

    作用:
    根据一定条件,重复的执行一条或多条语句
    语法:
    while 真值表达式:
    语句块1
    else:
    语句块2
    说明:
    1.先执行真值表达式,测试布尔值是否为True或False。
    2.如果真值表达式测试值为True,则执行语句块1,然后返回到第一步,重新进行测试。
    3.如果真值表达式测试值为False,则执行else字句中的语句块2,然后结束while语句,如果没有else字句,则直接结束while语句的执行。
    注:
    else 字句部分可以省略(同if语句类似)
    见示例:while.py

    1 #while.py
    2 n = int(input("请输入一个你需要打印的行数"))
    3 i = 1
    4 while i <= n:
    5     print("这是第%d行"%i)
    6     i+=1


    1.输入一行字符串,将字符串中Unicode编码值最大的一个字符打印出来(不允许用max函数)
    (提示:while语句内可以嵌入if语句进行判断)

     1 #while-if.py
     2 # 1.输入一行字符串,将字符串中UNIcode编码值最大的一个字符打印出来(不允许用max函数)
     3 #             (提示:while语句内可以嵌入if语句进行判断)
     4 s = input("请输入")
     5 i = 1
     6 smax = s[0]
     7 smin = s[0]
     8 while i< len(s):
     9     if s[i] > smax: 
    10         smax = s[i]
    11     if s[i] < smin:
    12         smin = s[i]
    13     i+=1
    14 print(s,'编码值最大的字符是:',smax)
    15 print(s,'编码值最小的字符是:',smin)

    2.打印从零开始的浮点数,每个数增加0.5,打印出10以内的这样的数:
    如:0.0 0.5 1.0 1.5 ... 9.5

     1 #while-2.py
     2 # 2.打印从零开始的浮点数,每个数增加0.5,打印出10以内的这样的数:
     3 #             如:0.0 0.5 1.0 1.5 ... 9.5
     4 # i = 1
     5 # f = 0
     6 # while i <= 10:
     7 #     print("%.1f"%f,end=' ')
     8 #     f = 0.5*i
     9 #     i = i+1
    10 
    11 i = 0.0
    12 while i <= 10:
    13     print("%.1f"%i,end=' ')
    14     i+=0.5

    3.打印1到20的整数;

    4.打印10到0(不含0)之间的整数

    5.打印1到20的整数,打印在一行内

     1 #while-练习.py
     2 # 3.打印1到20的整数;
     3 # 4.打印10到0(不含0)之间的整数
     4 # 5.打印1到20的整数,打印在一行内
     5 i=1
     6 while i<=20:
     7     print(i)
     8     i+=1
     9 print('='*20)
    10 j=10
    11 while j>0:
    12     print(j)
    13     j-=1
    14 print('='*20)
    15 k=1
    16 while k<=20:
    17     print(k,end=" ")
    18     k+=1

    6.打印1到20的整数,每行打印5个,打印四行。

     1 #while_练习2.py
     2 i=1
     3 while i<=20:
     4     print('%3d'%i,end=' ')
     5     if i % 5 == 0:
     6         print()
     7     i+=1
     8 print("="*20)0

    while 语句的注意事项:
    要控制循环真值表达式的值来防止‘死循环’
    通常用真值表达式内的循环变量来控制循环条件
    通常在循环语句块内改变循环变量来控制循环的次数和变量的走向
    while 语句的嵌套
    while 语句本身就是语句,和其他语句一样,可以嵌套放入任何复合语句中。

    示意:
    while 真值表达式1:
    语句块1
    while 真值表达式2:
    语句块2
    else:
    语句块3
    else:
    语句块4

     1 #   输入一个数,打印指定宽度的正方形
     2 #   如:
     3 #     输入: 5
     4 #   打印如下正方形:
     5 #     1 2 3 4 5
     6 #     1 2 3 4 5
     7 #     1 2 3 4 5
     8 #     1 2 3 4 5
     9 #     1 2 3 4 5
    10 #   如:
    11 #     输入: 3
    12 #   打印如下正方形:
    13 #     1 2 3
    14 #     1 2 3
    15 #     1 2 3
    16 
    17 
    18 n = int(input("请输入一个数: "))
    19 # 先写一个循环,打印n行任意的数
    20 i = 0  # 控制外重循环的变量
    21 while i < n:
    22     # 打印其中的一行:
    23     j = 1  # 控制一行内数字的变量
    24     while j <= n:
    25         print(j, end=' ')
    26         j += 1
    27     print()  # 打印一行后的换行
    28     i += 1

    1.写程序,计算:
    1 + 2 + 3 + 4 + 5 + ...+ 99 + 100的和

     1 #     1 + 2 + 3 + 4 + ..... + 99 + 100的和
     2 s = 0  # 先创建一个变量,用来存储所有数的和
     3 i = 1  # 整数的起始数
     4 while i <= 100:
     5     s += i  # 把i的值累加到s当中
     6     i += 1
     7 
     8 print('和是:', s)
     9 
    10 
    11 #   2. 写程序,任意输入一个数n,计算:
    12 #     1 + 2 + 3 + 4 + ..... + (n-1) + n的和
    13 n = int(input("请输入结束整数: "))
    14 
    15 s = 0  # 先创建一个变量,用来存储所有数的和
    16 i = 1  # 整数的起始数
    17 while i <= n:
    18     s += i  # 把i的值累加到s当中
    19     i += 1
    20 
    21 print('和是:', s)


    2.写程序,任意输入一个数n,计算:
    1 + 2 + 3 + 4 + 5 + ...+ (n-1) + n的和


    break 语句
    问题:
    如果在循环过程中不想继续循环语句的执行,怎么办?
    作用:
    用于循环语句(while,for)中,用来终止当前循环语句的执行
    说明:
    1.当break语句执行后,次循环语句break之后的语句将不在执行
    2.break语句通常和if语句组合使用
    3.break语句终止循环是,循环语句else字句将不在执行
    4.break语句只能终止当前循环语句的执行,如果由循环嵌套时,不会跳出嵌套的外重循环
    5.break语句只能在循环语句(whlie或for语句)内部使用
    示例:break.py

     1 #break.py
     2 #此示例示意break语句的用法
     3 i = 1
     4 while i <= 6:
     5     print("循环开始时:",i)
     6     #break#当break执行,循环语句后面的语句不在执行
     7     if i == 3:
     8         break
     9     i+=1
    10     print("循环执行中",i)
    11 else:
    12     print('这是else语句')#break执行后,else语句不执行,else语句是while语句正常结束循环,才执行。
    13 print("循环结束时:",i)

    死循环
    死循环是指循环条件一直成立的循环
    死循环通常用break语句来终止循环
    死循环的else字句永远不会执行
    示例:
    1.任意输入一些数,当输入负数时结束输入,当输入完成后,打印您输入的这些数的和是多少?

    1 he = 0  # 
    2 while True:  # 开始循环做事情
    3     n = int(input("请输入一个数:"))
    4     if n < 0:
    5         break  # 结束做事情 
    6     he += n  # 开始累加
    7 
    8 print("和是:", he)

    2.写程序求:
    sn = 1 + 1/2 + 1/4 + 1/8 + ...+ 1/(2**n),求当前等同于100时,sn的值是多少?

    1 sn = 0
    2 n = 0
    3 while n <= 100:
    4     a = 1/(2**n)
    5     sn += a
    6     n += 1
    7 
    8 print("和是:", sn)

    3.用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的直角三角形:
    如:
    请输入三角形的宽度:4
    1.打印如下:
    *
    * *
    * * *
    * * * *
    2.打印如下:
    *
    * *
    * * *
    * * * *
    3.打印如下:
    * * * *
    * * *
    * *
    *
    4.打印如下:
    * * * *
    * * *
    * *
    *

     1 # 请输入三角形的宽度: 4
     2 n = int(input("请输入三解形的宽度: "))
     3 
     4 line = 1  # line 代表行数
     5 while line <= n:
     6     # 打印一行星
     7     print('*' * line)
     8     line += 1  # 行数变大
     9 # 1) 打印如下:
    10 #   *
    11 #   **
    12 #   ***
    13 #   ****
    14 
    15 print('-------------------')
    16 line = 1
    17 fmt = "%%%ds" % n
    18 while line <= n:
    19     print(fmt % ('*' * line))
    20     line += 1
    21 # 2) 打印如下:
    22 #      *
    23 #     **
    24 #    ***
    25 #   ****
    26 
    27 print('-------------------')
    28 stars = n  # 第一行星号的个数
    29 while stars > 0:
    30     # 先计算空格的个数
    31     blank = n - stars
    32     print(' ' * blank + '*' * stars)
    33     stars -= 1  # 下一行星号个数变少一个
    34 # 3) 打印如下:
    35 #   ****
    36 #    ***
    37 #     **
    38 #      *
    39 
    40 print('-------------------')
    41 stars = n  # 第一行星号的个数
    42 while stars > 0:
    43     # 先计算空格的个数
    44     print('*' * stars)
    45     stars -= 1  # 下一行星号个数变少一个
    46 # 4) 打印如下:
    47 #   ****
    48 #   ***
    49 #   **
    50 #   *
  • 相关阅读:
    nginx限流方案的实现(三种方式)
    Pthreads并行编程之spin lock与mutex性能对比分析(转)
    C/C++中float和double的存储结构(转)
    list_entry(ptr, type, member)——知道结构体内某一成员变量地址,求结构体地址
    stderr和stdout详细解说(转)
    结构体内存分配理解
    C中的C文件与h文件辨析(转)
    访问vector元素方法的效率比较(转)
    linux c中select使用技巧——计时器(转)
    thread::id
  • 原文地址:https://www.cnblogs.com/Alan-Song/p/9618890.html
Copyright © 2020-2023  润新知