博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的条件判断与循环样例
阅读量:6593 次
发布时间:2019-06-24

本文共 5847 字,大约阅读时间需要 19 分钟。

hot3.png

一、if 判断

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

if expression:        statements(s)

这里要注意的是,Python使用缩进作为语句分组的方法,所以我们建议使用4个空格作为缩进,在同一个缩进里面的,都属于同一个代码块,当然如果用到编译器的话,在写完代码后,可以使用编译器调整好代码格式。

现在我们写一个简单的if条件如下:

#!/usr/local/python3/bin/pythonif 0<1:                                    #如果0小于1,则运行下面缩进里的代码块内容    print("Hello World !")        #    print("True")    print("False")

因为0小于1是正确的,所以该代码运行后将输出以下内容:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python 2.pyHello World !False

现在来个复杂一些的是,加入运算符优先级判断:

#!/usr/local/python3/bin/pythonif not 0>1 and 1==1:     #这里先判断逻辑非“not”,然后再判断“and”,这里结果为真,所以将运行缩进代码块的内容    print("Hello World !")#    print("True")    print("False")

我们写一个简单的判断考试成绩的等级的脚本,如下所示:

#!/usr/locscorel/python3/bin/pythonscore=int(input("Please input score number : "))  #int()是把输入的str字符串转换成int数值if score <= 100:                     #首先判断这个数是否小于等于100,符合条件则进入下一个判断    if score >= 90:                  #判断这个数是否大于等于90        print("You got A.")    elif score >= 75:                #判断这个数是否大于等于75        print("You got B.")    elif score >=60:                 #判断这个数是否大于等于60        print("You got C")    else:                            #如果以上条件都不符合,则输出下面缩进的内容          print("You got D,and not pass.")else:                                #如果输入的数大于100的输出结果    print("Please input a correct score.")

逻辑值(bool)也就是布尔值,包含了两个值(True or False):

True 表示非空的量,比如:string,tuple,list,set,dict等所有非零数

False则表示0,None,空的量等

 

二、while 循环

while与for相比

for循环用在有次数的循环上。

while循环用在有条件的控制上,和 if 比较相似。

while循环,直到表达式变为假(或者有一个break),才退出while循环,表达式是一个逻辑表达式,必须返回一个True或False。语法如下

while expression:    statement(s)

现在我们写一个while循环,让用户输入指定字符退出,如下所示:

#!/usr/local/python3/bin/pythonx=''while x != 'q':          #当字符串 x 不等于 "q" 时    print('hello')    x=input("Please input something like q for quit :")    if not x:        break    if x=='quit':        continue    print("Please continue.")else:    print("world")

运行的测试结果如下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python whileE.pyhelloPlease input something like q for quit :ePlease continue.helloPlease input something like q for quit :rePlease continue.helloPlease input something like q for quit :quithelloPlease input something like q for quit :qPlease continue.world[root@izj6cdhdoq5a5z7lfkmaeaz ~]#

 

三、for 循环

循环是一个结构,导致程序要重复一定的次数。

条件循环也是如此,当条件变为假,循环结束。

3.1 for列表

for循环可以用在序列里,可以循环遍历,其语法如下:

for iterating_var in sequence:    statements(s)

我们讲过的序列有字符串,元组和列表,比如我们定义一个字符串a,然后遍历a的各个字符并打印出来,信息如下:

In [1]: a='ABC'In [2]: aOut[2]: 'ABC'In [3]: for i in a:   ...:     print(i)   ...:     ABC

默认情况下,使用print打印出来会带有换行符,那么我们怎样让结果中不带有换行符呢,如下:

In [6]: for i in a:    print i,               # 在Python2.7.5中   ...:     A B Cfor i in a:    print(i,end='')        # 在Python3.6.1中

比如我们可以创建一个列表list1:

In [8]: list1=list()              # 生成一个空列表In [9]: list1=[1,2,3,4]In [10]: for i in list1:   ....:     print i   ....:     1234

生成一个1-9的列表,默认情况下步长为1:

In [11]: range(1,10)Out[11]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

假如设置步长为2、3分别是:

In [13]: range(1,10,2)Out[13]: [1, 3, 5, 7, 9]In [14]: range(1,10,3)Out[14]: [1, 4, 7]

比如说我们可以利用for循环加range打印十个数:

In [15]: for i in range(0,10):   ....:     print(i)   ....:     0123456789

打印一个1-10的列表,我们也可以这样写:

#!/usr/local/python3/bin/pythonprint([i for i in range(1,11)])

打印的结果如下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python a.py[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我们也可以对 i 进行一些操作,代码如下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# cat a.py   #!/usr/local/python3/bin/pythonprint([i for i in range(1,11)])print([i+1 for i in range(1,11)])         # 让遍历出来的i都加上1print([i*2 for i in range(1,11)])         # 让遍历出来的i都乘上2print([i-2 for i in range(1,11)])         # 让遍历出来的i都减去2

运行的结果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][2, 3, 4, 5, 6, 7, 8, 9, 10, 11][2, 4, 6, 8, 10, 12, 14, 16, 18, 20][-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]

比如我们也可以写一个程序,求1-100的数相加的和,如下所示:

#!/usr/local/python3/bin/pythonsum=0for i in range(1,101):    sum+=iprint(sum)

 

3.2 for字典

首先生成一个字典:

In [17]: dic={}In [18]: dic.fromkeys('abcde',100)Out[18]: {'a': 100, 'b': 100, 'c': 100, 'd': 100, 'e': 100}

利用for循环遍历字典的k值:

In [21]: for k in dict1:   ....:     print(k)   ....:     acbed

利用 for 循环遍历字典的k值,并打印出 k 值和 values 值:

In [22]: for k in dict1:    print(k),dict1[k]   ....:     a 100c 100b 100e 100d 100

进行格式化输出与output美化之后:

In [23]: for k in dict1:    print("%s : %s" % (k,dict1[k]))   ....:     a : 100c : 100b : 100e : 100d : 100

我们也可以使用items将字典输出为列表:

In [24]: dict1.itdict1.items       dict1.iteritems   dict1.iterkeys    dict1.itervalues  In [24]: dict1.items()Out[24]: [('a', 100), ('c', 100), ('b', 100), ('e', 100), ('d', 100)]

使用for循环遍历这个列表为:

In [25]: for i in dict1.items():print i('a', 100)('c', 100)('b', 100)('e', 100)('d', 100)

也可以指定两个变量接收值:

In [27]: for i,v in dict1.items():print i,va 100c 100b 100e 100d 100

直接对字典进行访问,不加任何的方法的话,遍历出来的是字典的 k 值:

In [29]: for i in dict1:print i            acbed

如果想要输出values呢,还是可以像前面一样进行取值:

In [30]: for i in dict1:print i,dict1[i]a 100c 100b 100e 100d 100

小时候背过的乘法口诀,我们通过Python也可以写出来,代码如下:

#!usr/local/python3/bin/pythonfor i in range(1,10):                      #指定有多少列    for j in range(1,i+1):                 #嵌套指定有多少行,        print("{0} * {1} = {2}".format(j,i,j*i),end='   ')  #格式化输出,当前循环结束之前以空格分割    print("\n")                                             #循环结束重新进入下一个循环的时候进行换行

最后结果如下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python nine.py1 * 1 = 1   1 * 2 = 2   2 * 2 = 4   1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   1 * 4 = 4   2 * 4 = 8   3 * 4 = 12   4 * 4 = 16   1 * 5 = 5   2 * 5 = 10   3 * 5 = 15   4 * 5 = 20   5 * 5 = 25   1 * 6 = 6   2 * 6 = 12   3 * 6 = 18   4 * 6 = 24   5 * 6 = 30   6 * 6 = 36   1 * 7 = 7   2 * 7 = 14   3 * 7 = 21   4 * 7 = 28   5 * 7 = 35   6 * 7 = 42   7 * 7 = 49   1 * 8 = 8   2 * 8 = 16   3 * 8 = 24   4 * 8 = 32   5 * 8 = 40   6 * 8 = 48   7 * 8 = 56   8 * 8 = 64   1 * 9 = 9   2 * 9 = 18   3 * 9 = 27   4 * 9 = 36   5 * 9 = 45   6 * 9 = 54   7 * 9 = 63   8 * 9 = 72   9 * 9 = 81

 

 

转载于:https://my.oschina.net/u/3314358/blog/1794257

你可能感兴趣的文章
mongodb 索引
查看>>
dhcp服务的讲解和在Linux环境下的搭建
查看>>
PHP fopen和fwrite函数实现创建html页面
查看>>
Citrix 宣布 XenServer 全面开源
查看>>
我的友情链接
查看>>
oracle 如果为空则输出0
查看>>
Mysql聚合函数count(*) 的性能分析
查看>>
[Cordova-IOS]JavaScript与Swift交互
查看>>
Spfa(最短路求解)
查看>>
用一个view来自定义tabbarController,可以实现隐藏
查看>>
使用linux-c编程实现简单的ls命令
查看>>
Q:按F12进行网络安装系统时,一直无法进入,提示加载失败?
查看>>
我的友情链接
查看>>
基于SSH框架、Oracle数据库、easyui的分页显示
查看>>
解决AutoCAD acmgd.dll ARX命令中发现异常
查看>>
[转]passport.js学习笔记
查看>>
JavaScript基础总结
查看>>
10.31T3 其他算法思想
查看>>
数据库 一步步处理 行列转换
查看>>
线程池管理的工具类,封装类
查看>>