循环语句(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 #   *

 

转载于:https://www.cnblogs.com/Alan-Song/p/9618890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值