python 循环语句

作用:  根据一定的条件,重复的执行一个或多个语句

两种循环语句:

while 语句

for 语句

while 语句:

语法:

while    真值表达式:

语句1

。。。

else:

语句2

。。。

语法说明: else子句可以省略

执行顺序: (1) 先判断真值表达式是否为True

(2)如果第1步为True,则执行语句1后跳到第1步,否则跳到第3步;

(3)执行else 子句

(4)结束 while 语句的执行

>>> n = 1
>>> while n <= 10 :
print(n)
n += 1 1
2
3
4
5
6
7
8
9
10
>>>

练习1 :用字符串 *  运算符打印三角形;(要求输入一个整数,此整数代表三角形离左侧的字符串* 的距离)

n = int(input("请输入一个整数: "))
left = ' ' * n
print(left + ' *')
print(left + ' ***')
print(left + ' *****')
print(left + '*******') >>> ================================ RESTART ================================
>>>
请输入一个整数: 3
*
***
*****
*******
>>> ================================ RESTART ================================
>>>
请输入一个整数: 0
*
***
*****
*******
>>>

练习2  输入三行文字,让三行文字在一个方框内居中显示(输入不要输入中文);

 #!/usr/bin/python

 #输入3行文字
line1 = input("请输入第一行字符:")
line2 = input("请输入第二行字符:")
line3 = input("请输入第三行字符:") #比较出3行中最大的一行字符长度
m = max(len(line1), len(line2), len(line3)) #使3行输出的文字居中
print('+' + '-' * ( m + 2 ) + '+')
print('| ' + line1.center(m) + ' |')
print('| ' + line2.center(m) + ' |')
print('| ' + line3.center(m) + ' |')
print('+' + '-' * ( m + 2 ) + '+')
>>> ================================ RESTART ================================
>>>
请输入第一行字符:aaaaaaaaaaaaa
请输入第二行字符:aaaaaaaa
请输入第三行字符:aaaaaaaaaa
+---------------+
| aaaaaaaaaaaaa |
| aaaaaaaa |
| aaaaaaaaaa |
+---------------+
>>>

while 语句嵌套

语法:

while   a > b:

while  b > c:

......

else:

.......

 >>> i = 1
>>> while i < 10:
j = 1
while j < 10:
print("i =", i, "j =", j)
j += 1
i += 1 i = 1 j = 1
i = 1 j = 2
i = 1 j = 3
i = 1 j = 4
i = 1 j = 5
i = 1 j = 6
i = 1 j = 7
i = 1 j = 8
i = 1 j = 9
i = 2 j = 1
i = 2 j = 2
i = 2 j = 3
i = 2 j = 4
i = 2 j = 5
i = 2 j = 6
i = 2 j = 7
i = 2 j = 8
i = 2 j = 9
i = 3 j = 1
i = 3 j = 2
i = 3 j = 3
i = 3 j = 4
i = 3 j = 5
i = 3 j = 6
i = 3 j = 7
i = 3 j = 8
i = 3 j = 9
i = 4 j = 1
i = 4 j = 2
i = 4 j = 3
i = 4 j = 4
i = 4 j = 5
i = 4 j = 6
i = 4 j = 7
i = 4 j = 8
i = 4 j = 9
i = 5 j = 1
i = 5 j = 2
i = 5 j = 3
i = 5 j = 4
i = 5 j = 5
i = 5 j = 6
i = 5 j = 7
i = 5 j = 8
i = 5 j = 9
i = 6 j = 1
i = 6 j = 2
i = 6 j = 3
i = 6 j = 4
i = 6 j = 5
i = 6 j = 6
i = 6 j = 7
i = 6 j = 8
i = 6 j = 9
i = 7 j = 1
i = 7 j = 2
i = 7 j = 3
i = 7 j = 4
i = 7 j = 5
i = 7 j = 6
i = 7 j = 7
i = 7 j = 8
i = 7 j = 9
i = 8 j = 1
i = 8 j = 2
i = 8 j = 3
i = 8 j = 4
i = 8 j = 5
i = 8 j = 6
i = 8 j = 7
i = 8 j = 8
i = 8 j = 9
i = 9 j = 1
i = 9 j = 2
i = 9 j = 3
i = 9 j = 4
i = 9 j = 5
i = 9 j = 6
i = 9 j = 7
i = 9 j = 8
i = 9 j = 9
>>>

for  循环语句

for 语句可以用来遍历或者可迭代对象的每一个元素;

可迭代对象包括:

字符串str 、   列表list  、    元组tuple  、  字典dict   、   集合set   、   固定集合 frozenset  、  迭代器

for  语句的语法:

for  变量列表 in 可迭代对象

语句1

。。。。

else:

语句2

。。。。

说明: else子句部分可以省略 ;  语句1的执行次数与可迭代对象的元素个数有关;

#!/usr/bin/python

s = "Hello"
for i in s:
print("i->>", i)
else:
print("for 语句结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
i->> H
i->> e
i->> l
i->> l
i->> o
for 语句结束
程序结束
>>>

练习:  1任意输入一个字符串,计算输入的字符‘a’的个数,并打印

 #!/usr/bin/python

 s = input("请输入字符:")
print(s.count('a'))
>>> ================================ RESTART ================================
>>>
请输入字符:abcdefaa
3
>>>
 #!/usr/bin/python

 s = input("请输入字符:")
count = 0
for i in s:
if i == 'a':
count += 1
print("a的个数为:", count)
>>> ================================ RESTART ================================
>>>
请输入字符:abceaassevfaaazzz
a的个数为: 6
>>>

2   输入字符,打印出来成为一行每个字符有空格间隔;

 #!/usr/bin/python

 s = input("请输入字符:")
for i in s:
if i != 'a':
pass
else:
print(i, end=' ')
>>> ================================ RESTART ================================
>>>
请输入字符:abcdeaa
a a a
>>>

range 函数

格式:range(stop) -> range object ; range(start, stop[, step]) -> range object (step步长可以为负数,且可以省略)

range(stop):  range函数从零开始,每次生成一个整数,后加1操作,直到stop为止(不包含stop) ,返回一个可迭代对象。

例子: range(3) # 0  1   2

range(5)  # 0 1 2 3 4

for   x   in  range(10):

print(x)

range(1,  8 ,2)  #1 3 5 7

range(5, 0, -1) #5 4 3 2 1

range(5, 0, -2) #5 3 1

range(5, 0)         #空, 什么也没有

练习:打印1-10的奇数和偶数

#!/usr/bin/python

for i in range(1,11):
if i % 2 == 0:
print("i的偶数:",i)
else:
print("i的奇数:",i)
>>> ================================ RESTART ================================
>>>
i的奇数: 1
i的偶数: 2
i的奇数: 3
i的偶数: 4
i的奇数: 5
i的偶数: 6
i的奇数: 7
i的偶数: 8
i的奇数: 9
i的偶数: 10
>>>
 #!/usr/bin/python

 for i in range(1,11,2):
print(i, end=' ')
print()
for i in range(2,11,2):
print(i, end=' ')
print()
>>> ================================ RESTART ================================
>>>
1 3 5 7 9
2 4 6 8 10
>>>

练习: 计算出100-1000之间的水仙花数(Narcissistic number),(水仙花数是指 百位的立方+ 十位的立方 + 个位的立方)

例如: 153 = 1**3  +  5 ** 3 + 3 **3

 #!/usr/bin/python

 for i in range(100,1000):
a = i // 100 #百位数
b = (i % 100) // 10 #十位数
c = i % 100 % 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i, end=' ')
>>> ================================ RESTART ================================
>>>
153 370 371 407
>>>
 #!/usr/bin/python

 for i in range(100,1000):
s = str(i)
a = int(s[0]) #百位数
b = int(s[1]) #十位数
c = int(s[2])
if i == a ** 3 + b ** 3 + c ** 3:
print(i, end=' ')
print()
>>> ================================ RESTART ================================
>>>
153 370 371 407
>>>
 #!/usr/bin/python

 for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
#print(a,b,c,end=' ')
n = a * 100 + b * 10 + c
if n == a ** 3 + b ** 3 + c ** 3:
print(n, end=' ')
>>> ================================ RESTART ================================
>>>
153 370 371 407
>>>

for 语句嵌套

例子: for  x in “abc”:

for  y in "123":

print(x+y)

 >>> for x in "abc":
for y in "":
print(x+y) a1
a2
a3
b1
b2
b3
c1
c2
c3
>>>

break 语句

作用:用于循环语句(while , for)中, 用来阻止当前循环语句的执行。

说明: break语句通常和if语句组合使用;   当break语句执行后,此循环语句break之后的语句将不再执行;

break语句终止循环时,循环语句的else子句 将不再执行;  break语句只能终止当前循环语句的执行,如有循环嵌套时,不会跳出外重循环;

 i = 0
while i < 5:
print(i)
i += 1
else:
print("while程序结束")
>>> ================================ RESTART ================================
>>>
0
1
2
3
4
while程序结束
>>>
#!/usr/bin/python

i = 0
while i < 5:
break
print(i)
i += 1
else:
print("while程序结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
程序结束
>>> #当while循环遇到break语句时,else语句将不执行
 #!/usr/bin/python

 i = 0
while i < 5:
print(i)
if i >= 3:
break
i += 1
else:
print("while程序结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
0
1
2
3
程序结束
#当while循环中i =3时,break 语句执行,整个while语句停止

    嵌套循环,break语句

 i = 0
while i < 2:
j= 5
while (j < 50):
print(i,j)
if j >= 10:
break
j += 1
i += 1
else:
print("while程序结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
0 5
0 6
0 7
0 8
0 9
0 10
1 5
1 6
1 7
1 8
1 9
1 10
while程序结束
程序结束
>>>

for循环,break语句

#!/usr/bin/python

for x in range(100):
if x >= 3:
break
print(x, end=' ')
else:
print("for程序结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
0 1 2 程序结束
>>>

for循环,break语句2

 #!/usr/bin/python

 for x in range(100):
if x >= 3:
break
print(x, end=' ')
if x >= 5:
break
print(x, end=' ')
else:
print("for程序结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
0 0 1 1 2 2 程序结束
>>>

continue 语句

作用:用于(while,for)循环语句中,不再执行本次循环内continue 之后的语句,重新开始一次新的循环;

例子:

 #!/usr/bin/python

 for x in range(10):
#如果是奇数则跳过打印
if x % 2 == 1:
continue
print(x, end=' ') #x 一定是偶数
else:
print("打印结束")
print("程序结束")
>>> ================================ RESTART ================================
>>>
0 2 4 6 8 打印结束
程序结束
>>>

for语句

 x = 0
while x < 10:
if x % 2 == 1:#奇数
x += 1
continue
print(x, end=' ')
x += 1 print("程序结束")
>>> ================================ RESTART ================================
>>>
0 2 4 6 8 程序结束
>>>

while语句

说明: 在while语句中,执行continue 语句,会直接跳转的while语句真值表达式处重新判断循环条件;

在for语句中,执行continue 语句,将会从可迭代对象中移向下一个元素再次进行循环;

死循环

死循环是指循环条件一直成立的循环;死循环通常用break语句来终止;死循环的else子句永远不会执行;(死循环存在于while循环语句中,for循环不存在)

 #!/usr/bin/python

 while True:
pass print("程序结束")

最简单是死循环

 #!/usr/bin/python
i = 0
while True:
if i % 2 == 1:
i += 1
continue #死循环
if i > 10:
break #满足条件后,break结束循环
print(i)
i += 1 print("程序结束")
>>> ================================ RESTART ================================
>>>
0
2
4
6
8
10
程序结束
>>>

break结束死循环

Python的基本核心数据类型是数字类型,字符串类型,布尔类型,None
True为布尔类型,其值不是0或1,同时也是个关键词

练习:

 #!/usr/bin/python

 for i in range(1,21):
print(i,end=' ')
>>> ================================ RESTART ================================
>>>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>>>

练习1

 #!/usr/bin/python

 for i in range(1,6):
print(i, end=' ')
print()
for i in range(6,11):
print(i, end=' ')
print()
for i in range(11,16):
print(i, end=' ')
print()
for i in range(16,21):
print(i, end=' ')
print()
>>> ================================ RESTART ================================
>>>
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
>>>

练习2

Python之路,第五篇:Python入门与基础5的更多相关文章

  1. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  2. python之路第五篇之模块和加密算法(进阶篇:续)

    模块 Python中,如果要引用一些内置的函数,该怎么处理呢?在Python中有一个概念叫做模块(module) 简单地说,模块就是一个保存了Python代码的文件. 模块分类: 1)内置模块 2)自 ...

  3. python之路第五篇之递归(进阶篇:续:经典例子剖析)

    递归 在函数内部,可以调用其他函数; 如果一个函数在内部调用自身本身,这个函数就是递归函数. 例如,我们来计算阶乘: n! = 1 x 2 x 3 x ... x n, 用函数f1(n)表示,可以看出 ...

  4. python之路第五篇之装饰器:(进阶篇)

    装饰器: 学前必备知识: def f1(): print "f1" f1() #表示函数执行 f1 #表示函数,指向内存地址 f1 = lambda x: x + 1 f1() # ...

  5. 【Python之路】第九篇--Python基础之线程、进程和协程

    进程与线程之间的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其它线程共享进程所拥有的全 ...

  6. 【Python之路】特别篇--Python面向对象(初级篇)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  7. 【Python之路】特别篇--Python面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  8. Python之路【第九篇】堡垒机基础&数据库操作

    复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...

  9. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  10. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

随机推荐

  1. QAbstractItemView区分单双击

    系统不可能知道你这一次单击鼠标是为了双击指令,所以在你第一次按下鼠标时,系统会发出一个WM_XBUTTONDOWN(也就是clicked), 当你第二次单击鼠标时,系统先发送WM_XBUTTONDOW ...

  2. linux下/proc/diskstats文件详解

    每一列的含义分别为: 第一列为 设备号 (number of issued reads. This is the total number of reads completed successfull ...

  3. Hive/Hbase/Sqoop的安装教程

    Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...

  4. vue-12-渲染函数 & JSX

    render() Vue.component('anchored-heading', { render: function (createElement) { return createElement ...

  5. C/C++知识补充(2) C/C++操作符/运算符的优先级 & 结合性

    , 逗号操作符 for( i = 0, j = 0; i < 10; i++, j++ ) ... 从左到右   Precedence Operator Description Example ...

  6. jq demo—图片翻页展示效果 animate()动画

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. jdk8-stream的api

    1.stream流的概念 1.流的创建 //1. 创建 Stream @Test public void test1(){ //1. Collection 提供了两个方法 stream() 与 par ...

  8. 5.4 C++重载输入与输出操作符

    参考:http://www.weixueyuan.net/view/6382.html 总结: 在C++中,系统已经对左移操作符“<<”和右移操作符“>>”分别进行了重载,使其 ...

  9. 3.7 C++派生类构造函数调用规则

    参考:http://www.weixueyuan.net/view/6364.html 总结: 派生类构造函数可以自动调用基类的默认构造函数而无需显式调用. 生类构造函数可以自动调用基类的默认构造函数 ...

  10. 1005 继续(3n+1)猜想

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n=3 进行验证的时 ...