• 循环与分支——python


    循环结构
    程序设计中,最能发挥计算机特长的结构:循环结构
    需要重复进行某种运算,并且运算对象有规律变化的情况,使用循环结构

    使用for n in range(2,10)时,不包括10

    python中不支持直到型循环结构(后测循环实现)
    在这里插入图片描述但可以通过while语句间接实现:

    number = -1
    while	number < 0 
    	number = eval(input("Enter a positive number:"))
    

    或者

    while True:
    	number = eval(input("Enter  a positive number:"))
    	if x >= 0 : break;
    	#若数字有效跳出循环,哨兵循环
    	print("The number you entered was not positive")
    

    注意:与Java、C区别最大的地方
    <for… else: …> <while… else: …>语句与循环的搭配使用,else:后的表达式在for循环列表遍历完毕后或while 条件语句不满足的情况下执行,

    # months.py
    def main():
    	for n in range(2,10):
        	for x in range(2,n):
            	print("({},{})	".format(n,x))
            	if n%x == 0:
                	print(n,'equals',x,'*',n//x)
                	break;
        	else:
            	# loop fell through without finding a factor
            	print(n,'is a prime number')
    main()
    

    输出:
    2 is a prime number
    (3,2)
    3 is a prime number
    (4,2)
    4 equals 2 * 2
    (5,2)
    (5,3)
    (5,4)
    5 is a prime number
    (6,2)
    6 equals 2 * 3
    (7,2)
    (7,3)
    (7,4)
    (7,5)
    (7,6)
    7 is a prime number
    (8,2)
    8 equals 2 * 4
    (9,2)
    (9,3)
    9 equals 3 * 3

    分支结构

    if<condition1>:
    	<case1 statements>
    elif <condition2>:
    	<case2 statements>
    ……
    else:
    	<default statements>
    

    条件判断
    循环和分支使用的条件循环语句这里使用的不是!、||、&&,而是布尔表达式not、or、and
    布尔表达式满足或对与、与对或的分配律,满足德摩根定理

    有时候寻找一个循环终止的条件比寻找一个循环继续的条件更容易,但是条件过于复杂,解决方法:
    对布尔表达式使用几次德摩根定律

    注意不要将while rep==‘y’ or rep==‘Y’, 错写成 while rep == ‘y’ or ‘Y’, 因为’Y’是一个非空串,永远为真

    对于数字的0值默认为假,对于空字符串""默认为假,空序列默认为假。

    python的布尔运算符为短路运算符,当前面的表达式已经可以得出该布尔表达式的真假时,布尔表达式便不再进行下去。
    即x and y中,当x为假,则不在计算y的真假;
    x or y中,当x为真,就不在判断y的真假。

    举个栗子,当用户仅敲下回车键时,input()函数读入的串为空串,下面写一个函数,当用户输入为空时,将字符串赋值为vanilla

    实现方法一:

    ans = input("What flavor do you want [vanilla]:")
    if ans :
    	flavor = ans
    else:
    	flavor = "vanilla"
    

    实现方法二:
    ans = input(“What flavor do you want [vanilla]:”)
    flavor = ans or “vanilla”

    flavor=  input("What flavor do you want [vanilla]:") or "vanilla"
    

    异常处理
    当处理错误或特殊情况的分支语句过多,会导致主程序变得不清晰易读,于是,引入异常处理机制来解决程序运行时的错误。

    Python解释器遇到一个try语句,它会尝试执行try语句体内的语句
    如果没有错误,控制转到try-except后面的语句
    如果发生错误,Python解释器会寻找一个符合该错误的异常语句,然后执行处理代码

    try:
    	<body>
    except <ErrorType1>:
    	<handler1>
    except <ErrorType2>:
    	<handler2>
    except <ErrorType3>:
    	<handler3>
    except:
    	<handler0>
    
  • 相关阅读:
    插入排序
    python -- 给电视剧重命名
    程序员你为什么迷茫?
    如何把自己打造成技术圈的 papi 酱
    GitHub中国区前100名到底是什么样的人?
    Python+opencv 图像拼接
    VS2015 新Web项目(C#6)出现CS1617错误的解决
    .Net Task<T>的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)
    Xamarin Android自学和实践步骤
    跨过几个坑,终于完成了我的第一个Xamarin Android App!
  • 原文地址:https://www.cnblogs.com/createwell/p/12695593.html
Copyright © 2020-2023  润新知